An Adaptive Object Model (AOM) is a common architectural style for systems in which classes, attributes, relationships and behaviors of applications are represented as metadata consumed at runtime. This allows them to be very flexible and changeable at runtime not only by programmers, but also by end users, improving system time-to-market. Nevertheless, this flexibility comes with a cost of a greater complexity when developing the system, and therefore one usually uses a bottom-up approach, adding flexibility only when and where it is needed. As a consequence, many AOM applications are tied to the specific domain to which they were developed and this fact makes it difficult to develop and use generic and reusable AOM frameworks that properly handle specific requirements of the AOM architecture. This work presents an architectural model that aims to adapt domain-specific AOM core structures to a common core structure by identifying AOM roles played by each element through custom metadata configuration. By doing this, this model allows the integration of domain-specific AOM applications and AOM frameworks, making it feasible to develop reusable components for the AOM architecture. This model is evaluated by creating an AOM framework and performing a modularity analysis on a case study based on it.
Presentation of a paper published on SBCARS 2012 and available on http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6394972&contentType=Conference+Publications&sortType%3Dasc_p_Sequence%26filter%3DAND%28p_IS_Number%3A6394968%29
3. The domain model flexibility
is an essencial requirement in
the context of some
applications.
4. health insurance archeology
defense communications
5. AOM
Adaptive Object Models
An architectural style where classes,
attributes, relationships and behaviors
are represented at runtime as
instances using metadata.
12. An application usually creates an
AOM specific to their domain,
and this fact make difficult the
creation of more general
frameworks!
The components
are stuck to their
domain!
13. But the flexibility of an
AOM should be only
enough! We don't want a
new programming
language!
It is good to have the
domain model close to our
domain, because that can
improve code readability
on the business rules.
14. How we can create domain-specific
AOM models and allow the reuse of
the components that deals with it?
?
16. Metadata
Mapping
Generic
AOM Model
Application Aplication
Domain AOM Model
17. metadata
mapping
Aplication Generic
AOM Model AOM Model
Has some domain- Independent of
specific characteristics application domain
and contains only and is used by the
enough flexibility. components.
19. Metadata is used to map
the roles of each element to
the AOM generic model.
AOM generic model is used
to adapt the domain-
specific AOM model.
Frameworks only depends
on the generic model and
can be reused.
21. Metadata Handling
A Metadata Descriptor is used to
represent metadata at runtime.
A Metadata Reader is used to read
annotations, but others can be
implemented.
A Metadata Repository is used
to avoid unnecessary readings.
26. AOM Model Adapters
Fixed properties on classes can be
mapped to AOM properties.
Relationships are mapped using a
different property implementation.
The AOM objects can be created
using factories that instatiate the
appropriate classes.
27. Model Manager
Provide a hotspot for persistence
components for model and instances.
Has an internal map to avoid to have
duplication in the model.
Entity types are identified by name and
package, entities by the framework.
A Visitor is used by frameworks to build
the entities and entity types.
28. ModelTalk
Esfinge
Oghma
Not coupled to a domain
Make AOM development easy
Allow domain-specific AOM
Integrate external frameworks
Frameworks can be reused by
different AOM models