<!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>Implementation of a data layer for the visualization of component-based applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jaroslav Snajberk</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Premek Brada</string-name>
          <email>bradag@kiv.zcu.cz</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science and Engineering, Faculty of Applied Sciences University of West Bohemia</institution>
          ,
          <addr-line>Pilsen</addr-line>
          ,
          <country country="CZ">Czech Republic</country>
        </aff>
      </contrib-group>
      <fpage>55</fpage>
      <lpage>62</lpage>
      <abstract>
        <p>Current approaches to the visualization of component-based applications mostly use only associations and dependencies between components and provide limited supplementary information. In this paper, we introduce a data layer that is able to store and later present more information about component elements which are bound together, and through this knowledge provide more understanding about the component itself. These information could be presented in di erent ways to provide di erent views for component software developers, designers, and architects. This data layer is general and is able to visualize component based applications of any component model. It is presented here together with its structure, implementation and tooling. We share experiences obtained in the process of designing and implementing this layer. Special care is given to the implementation details which were solved in the process and relevant tools like MOF and EMF are presented. Results from the test application are also part of this paper.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Fig. 1. Address Component in UML.
ponent as shown in Example 1 and we would like to
display it in diagram. In UML this component would
look like in Figure 1.</p>
      <p>Example 1.
component AddressComponent
f
// a t t r i b u t e s
r e a d o n l y a t t r i b u t e s t r i n g d e s c r i p t i o n ;
r e a d o n l y a t t r i b u t e N e t w o r k S t a t e s t a t e ;
// f a c e t s
p r o v i d e s AddressBook book ;
p r o v i d e s A d d r e s s S e a r c h s e a r c h ;</p>
    </sec>
    <sec id="sec-2">
      <title>Many component based applications are developed in</title>
      <p>
        di erent component environments. Component mod- // e v e n t s
els like EJB [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], CORBA [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], OSGi [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and more can be p u b l i s h e s C h a n g e S t a t e s t a t e N o t i f y ;
found in commercial applications and even more
component models { for example SOFA [19] or CoSi [20] g
{ are the subject of research.
      </p>
      <p>
        The diversity of component models or even ap- UML only supports displaying attributes and
inproaches to components [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] poses problem when one terfaces the component provides. The CORBA-speci c
needs to visually represent a component or compo- ag \readonly" assigned to the attributes is missing
nent-based application. UML 2.0 [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] component dia- on this diagram and could only be added using
stereogram is often used for the visualization of component types, which would make the diagram clumsy. Events
dependencies. The problem is that dependencies alone which the component publishes bring di culties for
do not provide much information about the component the UML component diagram, because it provides no
itself. simple way how to represent them.
      </p>
      <p>It would be bene cial if there was a way to know If we would like to capture such additional
informore about the elements that make up the bindings mation in the visualization of component based
applibetween components. Based on the diversity of compo- cations, appropriate speci c meta information would
nent models we can say these elements should bear the need to be available for its concrete component model.
information relevant in the concrete component model. That would lead to as many representations as there
This means that general visualization approaches like are component models, leading to signi cant
fragmenUML can't represent this extra information. tation of visual notations. A better solution is to have</p>
      <p>
        This problem is best presented on a short example a generic meta-model which can be instantiated for
of a CORBA component. Let us presume there is com- individual component models. This means a new data
layer implementing this meta-meta level has to be
designed. The representation of this problem based on
MOF (Meta Object Facility) layers [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] is in Figure 2.
      </p>
      <p>On the M3 level there is a data structure able to
hold information about both component models and
component based application. On the M2 level there is
a de nition of a component model (de ned manually
for each component model to provide meaningful
representation) which explains the information stored on
the M1 level. The M1 level should support automated
walking through component-based applications.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] we introduced the ENT meta-model which
brought understandable component representation for
both automated software agents and humans. It
contains support for a classi cation applicable to
component models, description of components and several
views to represent this data based on user's point of
interest.
1.1
      </p>
      <sec id="sec-2-1">
        <title>Goal and structure of this paper</title>
        <p>In this paper we focus on the design and
implementation of a data layer meeting the above requirements
on storing and using of these additional information
for visualization of component-based applications. The
layer implements the ENT meta-model as a MOF
structure, using Eclipse Modeling Framework as the
underlying technology. Besides describing the data
layer itself, we also want share the experiences gained
in the process of designing its implementation.</p>
        <p>In the next section we brie y review the related
standards and research works in the areas of
(component) meta-modeling and visual representation. An
overview of ENT meta-model is provided in Section 3
to understand the rest of the paper, including the
extensions introduced for the description of component
models and component based applications.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>To build a data container according to the ENT</title>
      <p>
        speci cation, a MOF model [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] was created in which
key features of the meta-model were identi ed and
model elements were designed. Implementation
characteristics were considered in this phase and the
metamodel was slightly modi ed. The structure of the
MOF model and the description of design steps can
be found in Section 4.
      </p>
      <p>For its good t with the data layer needs, the
Eclipse Modelling Framework (EMF) was chosen as
a model generator. More information about EMF, the
generated model and editor can be found in Section 5.</p>
      <p>As a proof that the MOF model of ENT
metamodel was designed correctly, we implemented
representations of several component models. The list of
these component models and a case study can be found
in Section 6.
2</p>
      <sec id="sec-3-1">
        <title>Component meta-modeling</title>
        <p>
          The diversity of component models or even approaches
to components [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] has been mentioned in several
studies, e.g. [
          <xref ref-type="bibr" rid="ref12 ref13">12, 13</xref>
          ]. There are di erences in terms of the
target use of the component model (desktop GUI,
enterprise applications, embedded or real-time systems),
the richness of the interface contract type (from a
single interface through a set similar to CORBA
components, to an extensible model as represented by the
iPOJO [14] research framework) as well as between at
models like OSGi and hierarchical ones like SOFA.
        </p>
        <p>
          The domain of meta-models is best represented
by the Meta-Object Facility (MOF) standard [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. As
described in the Introduction, it uses a layered
approach to create progressively more speci c structures
de ning the terms of a particular domain, their
attributes and relationships. MOF itself has been a
subject of rich research. An interesting contribution is
Poernonomo's work [15] on providing type-theoretical
foundation for the meta-models.
        </p>
        <p>
          UML [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] component diagram is often used to
visualize component based applications and since
version 2.0 of the notation it doesn't su er from problems
presented in [17] { mainly the inability to clearly
distinguish provided and required interfaces. The UML
component diagram is nowadays a common tool for
the visualization of component dependencies. An
alternative visualization of component-based
applications is presented in [16], this approach supports EFP
(extra functional properties) on top of a classical
component diagram.
3
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Overview of the ENT meta-model</title>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>The ENT meta-model is a MOF M3 model whose main characteristic is the use of faceted classi cation</title>
      <p>
        approach [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] to classify characteristic traits of compo- Each trait de nition is classi ed using ENT classi
nent models. The ENT meta-model is structured into cation giving di erent meaning to these trait de
nitwo levels. On the Component model level the main tions. For example, CORBA components (cf.
Examcharacteristic features of a given component model are ple 1) have traits facets (provided interfaces),
receptade ned and the characteristic traits of components de- cles (required interfaces), event sinks, etc.
      </p>
      <p>ned in this model are classi ed. On the Application For other information that are important for the
level the previous de nitions are used and the inter- component model and cannot be described
usface elements belonging to individual components are ing traits, tags are used. Tags can expand information
identi ed. To support additional information, tags are about component types or about elements in traits,
provided which can be added to components or single for instance to keep track about version, accessibility,
component elements. The faceted view is used to rep- range and other additional parameters. Tag de nitions
resent components in way better readable to humans. are de ned on the component model level in order to</p>
      <p>
        For complete ENT meta-model speci cation, be available on the application level.
please refer to [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Compared to this base speci cation When the component model level is designed, set of
the meta-model was extended in this work to support data structures for its component-based applications
relations and dependencies between components, see is prepared. These data structures can fully describe
Section 3.5. all applications implemented in the given component
model.
3.1
      </p>
      <sec id="sec-4-1">
        <title>Classi cation system 3.3</title>
      </sec>
      <sec id="sec-4-2">
        <title>Application level</title>
        <p>The ENT classi cation system has eight facets called
\dimensions". These dimensions have prede ned val- Components, from which an application is built from,
ues and each dimension represents a di erent point of are represented on this level. The component model
view on a component. Some facets can have more then has to be already de ned on the component model
one value, for instance Role which says if an element level because the application level references its
eleis provided or required { in some cases an element can ments. By creating these references on higher level,
exhibit both provided and required roles, as e.g. the the meaning is given to the application elements.
SOFA behaviour protocol [18]. It means a concrete component is assigned a
corresponding component type and based on that, a set
{ Nature = fsyntax, semantics, nonfunctionalg of its traits is gained. Traits alone do not say
any{ Kind = foperational, datag thing about the particular component, but elements
{ Role = fprovided, required, neutralg that belong to the given trait do. Each trait has its
{ Granularity = fitem, structure, compoundg own element set { the interfaces, classes, events, etc.
{ Construct = fconstant, instance, typeg found on the component's surface. The component is
{ Presence = fmandatory, permanent, optionalg thus described by several sets of elements grouped
to{ Arity = fsingle, multipleg gether by their characteristic traits. The trait has only
{ Lifecycle = fdevelopment, assembly, deployment, grouping purpose and through the reference to its trait
setup, runtimeg de nition gives meaning to all elements contained in
it. Concrete values of tags can be set on the component
3.2 Component model level sacnrdipittisoenl.ements, thus providing their more precise
deFor example, the \facets" trait of the component
from Example 1 is a set f (book,AddressBook), (search,
AddressSearch) g and the (description,string) element
has a tag set f (access,readonly) g.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Complete characteristic features of a given component</title>
      <p>model are identi ed on this level of understanding.</p>
      <p>Identi cation of di erent component types is the
rst step, because the component model consists of
one or more component types. As an example, there
is only one component type in OSGi (called Bundle); 3.4 Category sets
in EJB on the other hand several di erent
component types can be identi ed because EJB applications The level of traits and elements could contain a lot
can be built from SessionBeans, EntityBeans or Mes- of unwanted information for some sorts of users. For
sageDrivenBeans. example software architects are interested in other
in</p>
      <p>Every component type has its traits de nitions formation than programmers of component-based
apthat de ne the kinds of elements (features) the con- plications. By using such data layer there could be
crete component can have on its surface. Traits thus a danger of confusion when representing big and
comhelps to fully characterize component of such a type. plex applications.</p>
      <p>
        After representing a component-based application The ENT meta-model already contained lists of all
according to the Application level, the received infor- elements that can be bound, as element sets contained
mation can therefore be organized using category sets. in traits. This modi cation only allows to add
inforThese sets are de ned by selector operators on the mation which elements are actually bound to other
trait classi cation, and can be supplemented by any elements and does not create any new element.
user of the ENT meta-model if another point of view The list of components which constitute a
hieraris needed. In [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] ve category sets are presented, from chical component was added as an attribute to the
parwhich we introduce here only the rst one (E-N-T) ent component structure. This modi cation together
that gave name to the ENT meta-model. with element bindings allows to represent
hierarchi
      </p>
      <p>Category sets say how to group and display traits. cal components. This kind of components can add its
The E-N-T category has three groups. In the rst own elements and export/import only some of the
elgroup are elements that are contained in traits with di- ements that are contained by components it is built
mension frole = providedg, this means those elements from. These inner components are restricted in that
which the component exports. Required elements are they can only bind with each other within the
boundsimilarly grouped as needs and elements that can be aries of their parent hierarchical component. In every
both provided and required are called ties. other respect they are normal components.
4</p>
      <sec id="sec-5-1">
        <title>ENT model in MOF</title>
        <p>E-N-T (Exports-Needs-Ties)
f E = C:(C:role = fprovidedg)
f N = C:(C:role = frequiredg)
f T = C:(C:role = fprovided; requiredg)</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>This section introduces the data structures which form</title>
      <p>a concrete implementation of the ENT meta-model, to
be used in visualization of component-based
applications. The explanations in this section use the
descripFig. 3. ENT category set. tion of the process of creating this design and
implementation, as it provides a way to share experiences
that other projects can draw from.</p>
      <p>
        For example, the attributes and facets of the COR- The MOF is a Domain Speci c Language used to
BA component in Example 1 belong to the \E" cat- de ne meta-models. The core of MOF is shared with
egory set, while the stateNotify event belongs to the UML and its meta-models can be de ned using UML
\N" set (because it signals the component requires an class diagram. This means the ENT meta-model can
event sink to which it needs to be connected). be de ned using MOF and the product of this de
nition will be UML class diagram which can later be
3.5 Extensions of the ENT meta-model processed. Entities de ned in this section can be
implemented in speci c programming language and used
The original ENT meta-model [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] was concerned only as data layer in any other project.
with the representation of standalone components. We The creation of a MOF model is most easily started
wanted the ENT meta-model to be able to visualize from a formal de nition of the corresponding domain
whole component based applications with dependen- abstractions. We have to keep in mind that there can
cies between components and we further wanted to be changes introduced by this MOF model because
add support for hierarchical components. The exten- the formal description doesn't consider
implementasions of ENT meta-model are presented in this section. tion limitations and details like references on objects.
      </p>
      <p>A new meta-model entity Binding=(Element local, We will present the ENT model thus created in
Element alien, direction 2 fprovided, requiredg) was three separate parts. The Classi cation system is
modcreated to represent bindings between components. eled as a simple class ENTClassification with
atBindings are realized through concrete elements that tributes corresponding to classi cation facets. These
are physically linked to each other, with additional facets are modeled as enumerations, which is
appropriinformation about the binding direction { provided ate given their needs. The facet attributes were
idenmeans \from local to alien", required means oppo- ti ed as mandatory, with \single" multiplicity except
site. Every component has its own list of bindings, for Life-cycle and Role which have \multiple"
multithis list contains all bindings involving the elements plicity.
of the component. This means a Binding between ele- The component model level is represented by four
ments of components A and B is in the lists of both elements. ComponentModel entity is the main one and
these components. This method has the advantage of is designed to keep all instances together on one place.
ensuring that the binding list is complete in any com- ComponentTypes and TraitDe nitions will be
acponent's representation. cessed via references gained from arrays stored in</p>
    </sec>
    <sec id="sec-7">
      <title>ComponentModel. This level quite corresponds to its</title>
      <p>formal description. The \note" attribute was added to
all these elements, to provide for descriptive
information about the implemented component model in this
data structure.</p>
      <p>
        The application level is represented by ve elements
and it is the most changed part of the ENT
metamodel compared to its formal description in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The
changes were due to the extensions described in
Section 3.5. Component, Trait and Tag entities contain
references to their descriptors at the component model
level. Binding and Element entities are component
model independent.
      </p>
      <sec id="sec-7-1">
        <title>EMF implementation</title>
      </sec>
    </sec>
    <sec id="sec-8">
      <title>The MOF model could be converted to a concrete</title>
      <p>implementation manually, but EMF (Eclipse
Modeling Framework) was chosen instead. EMF is used for
Model Driven Development and o ers additional
services such as generating the model classes from UML,
and editors for the model in the form of an plugin for
the Eclipse integrated development environment. This
section describes the advantages brought by the use of
EMF.</p>
      <p>EMF was used to generate a Java implementation
of the data layer from the MOF model of the ENT
meta-model. This implementation is called ENTMM
as an abbreviation for ENT meta-model. ENTMM
consists of interfaces and classes corresponding
directly to the model entities presented in the previous
section. This implementation thus forms a run-time
ENT representation of any given component model
and its applications and will be used in every project
that uses the ENT meta-model; for some such future
projects see Section 7.</p>
      <p>An editor of ENTMM data was created to
provide GUI for component model de nition described in
Section 3.2; it is very similar to editor displayed in
Figure 6. This editor is implemented as Eclipse plugin
and can't be used without the Eclipse IDE.</p>
      <p>EMF however o ers more than just the advanced
code generator and Eclipse plug-ins to support
modeling. One of its features is advanced work with the XML
format. Editors automatically save all model data in
an XML le which can be easily accessed using
EMFgenerated resource classes. This brought us very usable
form of automated storing and loading representations
of various component models. This EMF ability goes
both ways so in the future there is the possibility of
using EMF buit-in features to save current application
models in XML.</p>
      <p>Eclipse Modeling Framework is able to set many
features of the generated model in its editor and it is
strongly recommended to use this opportunity instead
of manual changes to generated code. EMF transforms
the UML diagram into its internal format of
\ECORE" le, where all information and settings
related to the model are stored. Similarly there
is a \GENMODEL" le which is used to store
settings for the editors of the generated model and for
the generating process itself.</p>
      <p>The base model created automatically had several
limitations mainly from practical point of view.
Fortunately, EMF is able to set many features for the
component model representation created in its editor.
After an automated transformation of UML into the
EMF basic ECORE format, a few additional changes
had to be performed.</p>
    </sec>
    <sec id="sec-9">
      <title>The most important one was to con gure</title>
      <p>the ECORE editor so that entity references are used
(instead of instances) for many model class attributes.
This prevented the undesired e ect that the same trait
de nition could not be shared by several component
representations.
6</p>
      <sec id="sec-9-1">
        <title>Creating component model representations</title>
        <p>model. SOFA [19] is a research component model from
Charles University, Prague. A SOFA component is
interacting with other components only via designated
provided and required interfaces. A component can be
viewed as both a black-box and gray-box entity.</p>
        <p>
          De nition of SOFA component model in ENT is
provided in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], and repeated below for understanding
of this case study.
        </p>
        <p>
          De nition of SOFA component model in ENT:
The ENTMM editor for Eclipse was used to create the SOFA component framework de nes one kind of
comrepresentation of several component models, namely ponents, with no component-level and element-level
OSGi, EJB, CORBA, and SOFA (which have been al- tags and with four traits.
ready de ned) and the CoSi [20] and MVE [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] models
(their de nitions were newly created). In this process, provides - provided interfaces
the plugins created by EMF and described in Section 5 metatype = interface,
were used. classi er = (fsyntaxg, foperationalg, fprovidedg,
        </p>
        <p>By adding these plugins, a new le type appears fstructureg, finstanceg, fpermanentg, fmultipleg,
in Eclipse while creating new le, named \ENTMM Lifecycle),
Model". To start de ning the representation, the user requires - required interfaces
has to choose this le type and select \Component metatype = interface,
Model" as an \Model Object" when asked. ENTMM classi er = (fsyntaxg, foperationalg, frequiredg,
editor like the one in Figure 6 will appear and by using fstructureg, finstanceg, fpermanentg, fmultipleg,
its simple interface, the user is able to de ne a new Lifecycle),
component model easily.
properties - provided interfaces
metatype = property,
classi er = (fsyntaxg, fdatag, fprovidedg, fitemg,
finstanceg, fpermanentg, fmultipleg, fdevelopment,
assembly, runtimeg),
protocol - provided interfaces
metatype = protocol, and
classi er = (fsemanticsg, foperationalg, fprovided,
requiredg, fitemg, ftypeg, fpermanentg, fnag,
fdevelopment, assembly, runtimeg).</p>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>The representation of the SOFA component model</title>
      <p>was created in ENTMM editor and the nal view of
this implementation can be seen in Figure 6. As
mentioned in Section 5, EMF stores data in XML format.
XML version of the SOFA component model
representation is given in Example 2. This representation
can be recreated by intuitive use of editor and lling
data from the formal de nition to the prepared data
structure.</p>
      <p>The generated XML structure does not follow all
rules of good XML data but EMF does not support
XML customization. This disadvantage is the only tax
to pay for automated storing and loading of
component models.</p>
      <p>Fig. 6. ENTMM editor in Eclipse IDE.
6.1</p>
      <sec id="sec-10-1">
        <title>Case study of SOFA</title>
        <p>As a case study, the representation of the SOFA com- Example 2.
ponent model is presented below to show how sim- &lt;?xml v e r s i o n ="1.0" e n c o d i n g="UTF 8"?&gt;
ple it is to create a de nition of a new component &lt;ENTMM: ComponentModel xmi : v e r s i o n ="2.0"
xmlns : xmi="http : / /www. omg . org /XMI"
xmlns :ENTMM="http : / / /ENTMM. e c o r e "
name="SOFA"&gt;
&lt; t r a i t S e t name="p r o v i d e s "</p>
        <p>metatype=" i n t e r f a c e "&gt;
&lt; t r a i t C l a s s i f i e r g r a n u l a r i t y=
" s t r u c t u r e " a r i t y =" m u l t i p l e "
c o n s t r u c t =" i n s t a n c e "
p r e s e n c e="permanent"&gt;
&lt;r o l e &gt;provided &lt;/ r o l e &gt;
&lt; l i f e c y c l e &gt;development &lt;/ l i f e c y c l e &gt;
&lt; l i f e c y c l e &gt;assembly &lt;/ l i f e c y c l e &gt;
&lt; l i f e c y c l e &gt;deployment &lt;/ l i f e c y c l e &gt;
&lt; l i f e c y c l e &gt;setup &lt;/ l i f e c y c l e &gt;
&lt; l i f e c y c l e &gt;runtime &lt;/ l i f e c y c l e &gt;
&lt;/ t r a i t C l a s s i f i e r &gt;
&lt;/ t r a i t S e t &gt;
&lt; t r a i t S e t name=" r e q u i r e s "</p>
        <p>metatype=" i n t e r f a c e "&gt;
&lt; t r a i t C l a s s i f i e r . . . &gt;
&lt;/ t r a i t C l a s s i f i e r &gt;
&lt;/ t r a i t S e t &gt;
&lt; t r a i t S e t name=" p r o p e r t i e s "</p>
        <p>metatype="p r o p e r t y"&gt;
&lt; t r a i t C l a s s i f i e r . . . &gt;
&lt;/ t r a i t C l a s s i f i e r &gt;
&lt;/ t r a i t S e t &gt;
&lt; t r a i t S e t name=" p r o t o c o l "</p>
        <p>metatype=" p r o t o c o l "&gt;
&lt; t r a i t C l a s s i f i e r . . . &gt;
&lt;/ t r a i t C l a s s i f i e r &gt;
&lt;/ t r a i t S e t &gt;
&lt;/ENTMM: ComponentModel&gt;
provide component application visualization for many
component models and with multiple views based on
ENT philosophy.</p>
        <p>All these e orts should result in advanced
visualizer of component based applications ful lling these
points:</p>
      </sec>
    </sec>
    <sec id="sec-11">
      <title>1. Dynamic loading of any component based application no matter which component model is used. 2. Component displayed with additional information. 3. Support of di erent views, based on user needs.</title>
    </sec>
    <sec id="sec-12">
      <title>The visualized component should look similar to component visualized in Figure 7. This kind of visualization will meet all requirements discussed in this paper.</title>
      <p>Fig. 7. AddressComponent visualized in ENT style.
8</p>
      <sec id="sec-12-1">
        <title>Conclusion</title>
        <p>7 Future work This paper presented an extended ENT meta-model
with the support for inter-component dependencies.</p>
        <p>Having created the ENTMM implementation, work is The process of creating the MOF-based
representacurrently under way on the implementation of compo- tion of this model was described to share as much
nent application loaders for the OSGi and CoSi frame- experience as possible, including relevant class
diaworks. These loaders should analyze component ap- grams. Based on these diagrams a EMF-generated tool
plication based on the used component model and was presented which is used to create representations
load information we are interested in. This informa- of concrete component models, with a discussion of
tion will be stored in the implemented ENT meta- its advantages and several interesting points we met
model data structures. In future we will extend the in the process of generating the implementation Java
supported component models to include EJB, SOFA, code from the class diagrams.
etc. based on actual needs. Finally we presented component models that were</p>
        <p>We concurrently work on Component model visu- implemented using the generated Eclipse IDE plugin.
alizer based on ENT faceted views and of course on the Brief description how to use this plugin is also
proENT meta model EMF implementation. This applica- vided and supplemented with a case study of the
reption will support multiple ENT views and automated resentation of the SOFA component model. Both the
application loading using implemented component ap- XML format and the graphic view of the nal product
plication loaders. This should give us a tool able to were presented.</p>
        <p>The key contribution of this paper is the descrip- 14. C. Esco er and R.S. Hall: Dynamically adaptable
aption of a MOF-based data layer able to hold and inter- plications with iPOJO service components.
Proceedpret rich information about various component mod- ings of 6th International Symposium on Software
Comels and their concrete components. This layer can be position, Braga, Portugal, 2007.
used in many scenarios, including representing visually 15. I. Poernomo: A type theoretic framework for formal
complex component-based applications. metamodelling. In: Architecting Systems with
Trustworthy Components, Lecture Notes in Computer
Sci</p>
        <p>This paper can also be used to learn experiences we ence 3938/2006, Springer-Verlag 2006.
gained in the process of the transformation from for- 16. R. Monge, C. Alves, C. and A. Vallecillo: A graphical
mal model de nitions to this implementation. These representation of COTS-based software architectures.
experiences can be used as a whole, providing tuto- Proceedings of IDEAS, April 2002.
rial how to transform meta-model from paper to real 17. Ch. Luer, and D.S. Rosenblum: UML component
dilife application, or separately when the reader is inter- agrams and software architecture { experiences from
ested only in some parts like creating a MOF model the WREN project. 1st ICSE Workshop on Describing
or using the EMF tool. Software Architecture with UML, 2002.
18. F. Plasil, and S. Visnovsky: Behavior protocols for
software components. IEEE Transactions on Software
EnReferences gineering, 28 (10), 2002.
19. T. Bures, P. Hnetynka and F. Plasil: SOFA 2.0:
Balancing advanced features in a hierarchical component
model. Proceedings of SERA 2006, IEEE CS, 2006.
20. P. Brada: The CoSi component model: reviving the
black-box nature of components. Proceedings of the
11th International Symposium on Component Based
Software Engineering, October 2008, Springer Verlag,
LNCS 5282.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Szyperski: Component software: beyond objectoriented programming, 2nd edition</article-title>
          . Addison-Wesley
          <string-name>
            <surname>Professional</surname>
          </string-name>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>P.</given-names>
            <surname>Brada</surname>
          </string-name>
          <article-title>: The ENT Meta-Model of Component Interface, version 2</article-title>
          .
          <source>Technical report DCSE/TR-2004- 14</source>
          , Department of Computer Science and Engineering, University of West Bohemia,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>R.</given-names>
            <surname>Prieto-Diaz</surname>
          </string-name>
          , P. Freeman:
          <article-title>Classifying software for reusability</article-title>
          .
          <source>IEEE Software 18 (1)</source>
          ,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Object Management Group:
          <article-title>Meta Object Facility (MOF) Core Speci cation</article-title>
          ,
          <source>Version 2.0. OMG specication formal/06-01-01</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Object Management Group:
          <article-title>UML Superstructure Speci cation</article-title>
          ,
          <source>Version</source>
          <volume>2</volume>
          .2. OMG speci cation formal/2009-02-02.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. Object management Group:
          <source>CORBA Components, Version 3.2. OMG Speci cation formal/02-12-06</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>D.</given-names>
            <surname>Steinberg</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Budinsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Paternostro</surname>
          </string-name>
          , and E. Merks:
          <article-title>Eclipse modelling framework, Second Edition</article-title>
          .
          <source>Addison Wesley</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Sun</given-names>
            <surname>Microsystems</surname>
          </string-name>
          , Inc.:
          <article-title>Enterprise JavaBeans(TM) Speci cation</article-title>
          ,
          <source>Version</source>
          <volume>2</volume>
          .0.
          <string-name>
            <surname>Sun</surname>
            <given-names>Microsystems</given-names>
          </string-name>
          , Inc.
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>OSGi</given-names>
            <surname>Alliance: OSGi Servise Platform Core</surname>
          </string-name>
          <article-title>Speci cation</article-title>
          .
          <source>OSGi Alliance</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>F.</given-names>
            <surname>Plasil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Balek</surname>
          </string-name>
          , and
          <string-name>
            <surname>R.</surname>
          </string-name>
          <article-title>Janecek: SOFA/DCUP: architecture for component trading and dynamic updating</article-title>
          .
          <source>Proceedings of ICCDS'98</source>
          ,
          <string-name>
            <surname>Annapolis</surname>
          </string-name>
          , Maryland, USA,
          <year>1998</year>
          . IEEE CS Press.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>M.</given-names>
            <surname>Rousal</surname>
          </string-name>
          and
          <string-name>
            <given-names>V.</given-names>
            <surname>Skala</surname>
          </string-name>
          :
          <article-title>Modular visualization environment - MVE</article-title>
          .
          <source>Proceedings of International Conference ECI</source>
          <year>2000</year>
          , Herlany, Slovakia.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>N.</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.N.</given-names>
            <surname>Taylor</surname>
          </string-name>
          :
          <article-title>A classi cation and comparison framework for software architecture description languages</article-title>
          .
          <source>In: IEEE Transactions on Software Engineering</source>
          <volume>26</volume>
          (
          <issue>1</issue>
          )
          <year>2000</year>
          ,
          <volume>70</volume>
          {
          <fpage>93</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. I. Crknovic,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chaudron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sentilles</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Vulgarakis</surname>
          </string-name>
          :
          <article-title>A classi cation framework for component models</article-title>
          .
          <source>Proceedings of the 7th Conference on Software Engineering and Practice in Sweden</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>