<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//TaxonX//DTD Taxonomic Treatment Publishing DTD v0 20100105//EN" "../../nlm/tax-treatment-NS0.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:tp="http://www.plazi.org/taxpub" article-type="research-article" dtd-version="3.0" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">109</journal-id>
      <journal-id journal-id-type="index">urn:lsid:arphahub.com:pub:3dc5f44e-8666-58db-bc76-a455210e8891</journal-id>
      <journal-title-group>
        <journal-title xml:lang="en">JUCS - Journal of Universal Computer Science</journal-title>
        <abbrev-journal-title xml:lang="en">jucs</abbrev-journal-title>
      </journal-title-group>
      <issn pub-type="ppub">0948-695X</issn>
      <issn pub-type="epub">0948-6968</issn>
      <publisher>
        <publisher-name>Journal of Universal Computer Science</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.3217/jucs-014-13-2158</article-id>
      <article-id pub-id-type="publisher-id">29128</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Research Article</subject>
        </subj-group>
        <subj-group subj-group-type="scientific_subject">
          <subject>D.1.5 - Object-oriented Programming</subject>
          <subject>D.1.6 - Logic Programming</subject>
          <subject>D.2.11 - Software Architectures</subject>
          <subject>D.2.2 - Design Tools and Techniques</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>An Adaptation Logic Framework for Java-based Component Systems</article-title>
      </title-group>
      <contrib-group content-type="authors">
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Oliva</surname>
            <given-names>Enrico</given-names>
          </name>
          <email xlink:type="simple">enrico.oliva@unibo.it</email>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Natali</surname>
            <given-names>Antonio</given-names>
          </name>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Ricci</surname>
            <given-names>Alessandro</given-names>
          </name>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="no">
          <name name-style="western">
            <surname>Viroli</surname>
            <given-names>Mirko</given-names>
          </name>
          <xref ref-type="aff" rid="A1">1</xref>
        </contrib>
      </contrib-group>
      <aff id="A1">
        <label>1</label>
        <addr-line content-type="verbatim">Università di Bologna, Bologna, Italy</addr-line>
        <institution>Università di Bologna</institution>
        <addr-line content-type="city">Bologna</addr-line>
        <country>Italy</country>
      </aff>
      <author-notes>
        <fn fn-type="corresp">
          <p>Corresponding author: Enrico Oliva (<email xlink:type="simple">enrico.oliva@unibo.it</email>).</p>
        </fn>
        <fn fn-type="edited-by">
          <p>Academic editor: </p>
        </fn>
      </author-notes>
      <pub-date pub-type="collection">
        <year>2008</year>
      </pub-date>
      <pub-date pub-type="epub">
        <day>01</day>
        <month>07</month>
        <year>2008</year>
      </pub-date>
      <volume>14</volume>
      <issue>13</issue>
      <fpage>2158</fpage>
      <lpage>2181</lpage>
      <uri content-type="arpha" xlink:href="http://openbiodiv.net/599D17B1-F16B-5E02-93A4-1FA80DD9E9AF">599D17B1-F16B-5E02-93A4-1FA80DD9E9AF</uri>
      <uri content-type="zenodo_dep_id" xlink:href="https://zenodo.org/record/7000380">7000380</uri>
      <permissions>
        <copyright-statement>Enrico Oliva, Antonio Natali, Alessandro Ricci, Mirko Viroli</copyright-statement>
        <license license-type="creative-commons-attribution" xlink:href="" xlink:type="simple">
          <license-p>This article is freely available under the J.UCS Open Content License.</license-p>
        </license>
      </permissions>
      <abstract>
        <label>Abstract</label>
        <p>This paper describes a Java-based framework for developing componentbased software systems supporting adaptation with logic laws and considering component interactions as a first-class aspect. On the one side, the framework makes it possible to specify the logic of interaction at the component-level, in terms of input and output interfaces, the events generated and observed by a component, and related information about the management of the control flow. On the other side, it is possible to specify the logic of interaction at the inter-component level, providing a modelling and linguistic support for designing and (dynamically) programming the glue among the components, enabling general forms of adaptation, observation and construction of the interaction space. As a result, the framework supports the adaptation of components at different levels: from interoperability among heterogeneous and unknown components, to the support for dynamic introduction, removal and update of components, to general coordination patterns, such as workflow. The framework uses first-order logic as the reference computational model for describing and defining the logic of interaction: the modalities adopted by components to interact, the adaptation laws gluing the components and the interaction events occurring in the system are expressed as facts and rules. They compose the (evolving) logic theories describing and defining the interaction at the system level, and can be observed and controlled at runtime to allow dynamic re-configurability.</p>
      </abstract>
    </article-meta>
  </front>
</article>
