An Architectural Model for Adapting Domain-Specific AOM Applications
-
Upload
eduardomg23 -
Category
Technology
-
view
508 -
download
0
description
Transcript of An Architectural Model for Adapting Domain-Specific AOM Applications
![Page 1: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/1.jpg)
An Architectural Model for An Architectural Model for Adapting Domain-Specific Adapting Domain-Specific
AOM ApplicationsAOM Applications
Patricia MatsumotoPatricia MatsumotoEduardo GuerraEduardo Guerra
![Page 2: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/2.jpg)
Understanding
AOM
![Page 3: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/3.jpg)
The domain model flexibility is an essencial requirement in the context of some applications.
![Page 4: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/4.jpg)
health insurance
defense communications
archeology
![Page 5: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/5.jpg)
AOMAdaptive Object Models
An architectural style where classes, attributes, relationships and behaviors
are represented at runtime as instances using metadata.
![Page 6: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/6.jpg)
Type Object
Properties
Type Square
AOM Patterns
![Page 7: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/7.jpg)
Basic AOM Structure
http://adaptiveobjectmodel.com/
![Page 8: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/8.jpg)
Problems inUsing AOM
![Page 9: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/9.jpg)
But it is very complicated to implement an AOM system,
because I need to implement all the model and all the components
that handle it.
![Page 10: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/10.jpg)
AOM ModelApplicationDomain
Persistence
Graphical Interface
Domainspecific!
![Page 11: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/11.jpg)
![Page 12: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/12.jpg)
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!
![Page 13: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/13.jpg)
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.
![Page 14: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/14.jpg)
?
How we can create domain-specific AOM models and allow the reuse of the components that deals with it?
![Page 15: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/15.jpg)
Proposed SolutionProposed Solution
![Page 16: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/16.jpg)
Aplication AOM Model
Generic AOM Model
MetadataMapping
ApplicationDomain
![Page 17: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/17.jpg)
Has some domain-specific characteristics and contains only enough flexibility.
Independent of application domain
and is used by the components.
metadata mapping
Generic AOM Model
Aplication AOM Model
![Page 18: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/18.jpg)
Integration Model
![Page 19: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/19.jpg)
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.
![Page 20: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/20.jpg)
AOM Role Mapper
http://esfinge.sf.net
![Page 21: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/21.jpg)
Metadata HandlingA 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.
![Page 22: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/22.jpg)
@EntityType
@Entity
@PropertyType
@EntityProperties
@EntityProperty
@PropertyTypeType
@PropertyValue
@CreateEntityMethod
![Page 23: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/23.jpg)
@Entity public class Account {
@EntityType private AccountType accountType; …
public AccountType getAccountType() { return accountType; }
public void setAccountType(AccountType accountType) { this.accountType = accountType; } }
![Page 24: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/24.jpg)
Solution Example
![Page 25: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/25.jpg)
Solution Example
![Page 26: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/26.jpg)
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.
AOM Model Adapters
![Page 27: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/27.jpg)
Provide a hotspot for persistence components for model and instances.
Model Manager
Has an internal map to avoid to have duplication in the model.
Entity types are identified by name and package, entities by the framework.
Has an internal map to avoid to have duplication in the model.
A Visitor is used by frameworks to build the entities and entity types.
![Page 28: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/28.jpg)
Og
hma
Mod
elTa
lk
Esfin
ge
Not coupled to a domain
Make AOM development easy
Allow domain-specific AOM
Integrate external frameworksFrameworks can be reused by different AOM models
![Page 29: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/29.jpg)
Validation
![Page 30: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/30.jpg)
Application
Domain-specific AOM Model
Generic AOM Model Adapters
MongoDBPersistenceFramework
![Page 31: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/31.jpg)
Two different AOM models were developed and mapped using the framework.
![Page 32: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/32.jpg)
Application
![Page 33: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/33.jpg)
MongoDB
![Page 34: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/34.jpg)
Modularity Analysis
![Page 35: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/35.jpg)
Domain only depends on the annotations
![Page 36: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/36.jpg)
Frameworks depends on the AOM model
![Page 37: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/37.jpg)
Applications depends on the API and AOM model
![Page 38: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/38.jpg)
It is evaluated that with this model is possible to decouple the application AOM model from the AOM frameworks allowing their reuse.
![Page 39: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/39.jpg)
However there are still However there are still many challenges in the many challenges in the AOM domain and for the AOM domain and for the
Esfinge AOM Role Mapper!Esfinge AOM Role Mapper!
![Page 40: An Architectural Model for Adapting Domain-Specific AOM Applications](https://reader033.fdocuments.net/reader033/viewer/2022042815/5585b569d8b42a695a8b486c/html5/thumbnails/40.jpg)
Thank You!