InfoQ

News

Interview: Joseph Yoder on Adaptive Object Model Architecture

Posted by Abel Avram on May 13, 2009

Community
Architecture
Topics
Domain Specific Languages ,
Modeling ,
Object Oriented Design
Tags
MDD ,
MDA ,
Design Patterns

In this interview Joseph Yoder talks about the Adaptive Object Model (AOM) architecture, a software architecture for easily adapting to changing business requirements.

Watch: Joseph Yoder on Adaptive Object Model Architecture (27 min.)

Yoder explains the difference between the classical object model and the adaptive one. Instead of modeling the entities of a domain and their behavior with classes, one can model them with descriptive information (metadata) stored, for example, in an XML file or a database. If the behavior or the entity attributes need to change, that can be easily done by deploying a new XML file without having to touch the code.

Ralph Johnson, Gang of Four patterns co-creator, explained the role of the metadata in the adaptive object model:

    Metadata is just saying that if something is going to vary in a predictable way, store the description of the variation in a database so that it is easy to change. In other words, if something is going to change a lot, make it easy to change.

The problem is that it can be hard to figure out what changes, and even if you know what changes then it can be hard to figure out how to describe the change in your database. Code is powerful, and it can be hard to make your data as powerful as your code without making it as complicated as your code. But when you are able to figure out how to do it right, metadata can be incredibly powerful, and can decrease your maintenance burden by an order of magnitude. Or two.

The adaptive object model is not to be use anywhere, anytime. Yoder gives examples where AOM is used, talks about AOM patterns, the need for model validation and security.

Congratulations.. by aa bb Posted May 13, 2009 8:23 AM
Re: Congratulations.. by Robert Barth Posted May 13, 2009 2:15 PM
Re: Congratulations.. by Bob Harwood Posted May 15, 2009 1:20 PM
  1. Back to top

    Congratulations..

    May 13, 2009 8:23 AM by aa bb

    You've rediscovered Entity-attribute-value model

    Is anyone still using this site, there are hardly any comments anymore ?

  2. Back to top

    Re: Congratulations..

    May 13, 2009 2:15 PM by Robert Barth

    "Metadata is just saying that if something is going to vary in a predictable way, store the description of the variation in a database so that it is easy to change. In other words, if something is going to change a lot, make it easy to change."

    In another story from the famed magazine, "Obvious," apparently the sky is blue and water is (wait for it)... wet!

    The trick to the whole shebang is recognizing the areas of variability. No framework will ever help with that, that's something the human taking the requirements has to recognize.

  3. Back to top

    Re: Congratulations..

    May 15, 2009 1:20 PM by Bob Harwood

    E-A-V can play into the persistence layer for this approach. I think he's including more than just the data layer; he's also discussing the mid-tier, which could be coded in an O-O language. In that case, there's more than straight EAV modeling, since you still want to employ the o-o features in the implementation.

    People also refer to archetypes when describing this. See www.openehr.org/releases/1.0.2/architecture/ove... for another example implementation.

    It's not all bad that we rediscover the same idea and approach. It helps validate that the pattern is valid and applicable.

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.