InfoQ

Interview

Recorded at:
Recorded at

Joseph Yoder on Adaptive Object Model Architecture

Interview with Joseph Yoder by Srini Penchikala on May 12, 2009

Community
Architecture
Topics
Domain Specific Languages ,
Modeling ,
Object Oriented Design
Tags
MDD ,
Design Patterns ,
MDA ,
QCon San Francisco 2008 ,
QCon
Summary
In this interview Joseph Yoder talks about the Adaptive Object Model (AOM) architecture, a software architecture for easily adapting to changing business requirements.

Bio
Joseph Yoder is a founder and principle of The Refactory, Inc., a company focused on software architecture, design, implementation, consulting and mentoring on all facets of software development. He is co-author of the Big Ball of Mud pattern, which illuminates many fallacies in the approach to software architecture.

About the conference
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community. QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
My name is Srini Penchikala. I'm here with Joseph Yoder from the Refactoring Inc. Joe, can you tell us a little bit about what you are currently working on?
What is adaptive object model and how does it differ from a traditional object model?
You mentioned about the insurance domain as an example. What are the other domains or the other real world examples where the adaptive object model can be used?
Regarding the dynamic nature of the adaptive object model you mentioned, for example, that the properties of an object can be changed at run time. What are the constraints in that? How far can the developers go to exploit the dynamic nature?
It's a good point, because too much flexibility always brings in complex DSLs also.
What are the main elements of adaptive object model if someone wants to start learning about AOM in more detail?
Speaking of learning the model and also documenting the model, usually we use the UML - Unifying Model Language - to document the traditional object models. Can we still use UML for the adaptive object model or are there other modeling notations?
In more traditional applications some of the properties of the objects are stored in database tables and fields and some of them are indexed and have constraints to enforce some business rules. How do you match that with the greater flexibility of an adaptive model in which all properties are stored in the same way, so you can't distinguish between one particular property that needs certain constraints or needs to be indexed for performance?
How do you validate the adaptive object model? Someone starts using it and to complete the feedback cycle, is there a way to validate the model?
That's a good point, managing the versions of the adaptive model. How do you usually do that? Is there a way to store the snapshot of an object model if there are any changes?
Going back to financial applications, have you found that those types of clients are open to the idea of having the functionality and the behavior of the application able to be changed once the system has been deployed? Thinking in terms of security, are they concerned that the possible malicious individual would enable or would insert some rules into the system that, at least for a short period of time, would break havoc with the data?
What do you see as the future of adaptive object modeling and where it's going or what might be coming up in the future?
show all  show all
  • This article is part of a featured topic series on QCon
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

Security for the Services World

Chris Riley presents security issues threatening service based systems, examining security threats, presenting measures to reduce the risks, and mentioning available security frameworks.

Navigating The Rapids:Real-World Lessons in Adopting Agile

This talk investigates technical issues encountered when moving to an Agile process.

Codename "M": Language, Data, and Modeling, Oh My!

Don Box and Amanda Laucher present “M”, a declarative language for building data models, domain models or external DSLs. Don Box's demos show some of M’s features and latest changes of the language.

SOA Manifesto - 4 Months After

It is four months since the SOA manifesto was announced; InfoQ interviewed the original author’s to get insight into the motivations and the process behind the initiative.

Memory Barriers and JVM Concurrency

This article explains the impact memory barriers, or fences, have on the determinism of multi-threaded programs.

7 Fundamentals of Mission-Critical Service Testing

Schneider on 7 service testing fundamentals: thoroughly testing, large amounts of realistic data, security testing, high productivity, tracking test results, realistic loads, and proper governing.

Agile Infrastructure

This talk outlines innovations in tools, process, planning and culture emerging at the front lines of continuous delivery.

Pragmatic F# in Action

Amanda Laucher and Josh Graham introduce the audience to F# basics showing some of its main features, emphasizing what makes it better than imperative languages, and also showing F# code samples.