index > Visual Studio Team System - Architects > Adaptive Object Modelling

Adaptive Object Modelling


Hey,
Is there any person who know or use the "adaptive object modelling" in his/her project.

http://www.joeyoder.com/Research/metadata/OOPSLA2000/poster.htm

I think it would be good discuss



I am not a great programmer, i am a good programmer with great programming habits. From Turkey
Doga Oztuzun

Doga,

 

I'm also a Joe Yoder and Brian Foote fan, and have followed their work, and the work of Ralph Johnson, for many years.

 

An adaptive object model is effectively a software factory with an interpretive run time, instead of code generation. You can use our technology to build one. You can also follow our progress on an adaptive object model that dynamically provisions datacenter facilities and automates deployment based on metadata describing the components to be deployed and the infrastructure configuration required to support them. This work is part of our Dynamic Systems Initiative.

 

Metadata driven runtimes have been used extensively in the past, and are notoriously hard to debug. Generative techniques help address this problem, but are less responsive to change. In practice, a combination of adaptive and generative methods usually provides the best overall solution.

 

The key to both is defining the problem domain, and then developing both design time and run time assets for that domain to facilitate the development, deployment, execution, operation and maintenance of solutions.

A common design time asset is a domain specific language that captures appropriate abstractions for the domain. Models developed using the DSL can then be used to generate either code, where debugging and correctness are more important than run time adaptation, or metadata to be interpreted, where run time adaptation is more important than debugging and correctness. The run time is either a framework in the code generation case, or a run time engine in the adaptive object model case.

 

Metadata interpretation, as expressed through adaptive object models, is usually appropriate only when the domain is well understood enough that the range of possible variations in the solution can be predicted, and their correctness demonstrated, usually through formal model analysis or similar techniques. This allows the run time to be parameterized with metadata that modifies the run time in response to changes in requirements, operating conditions or other factors.

 

An adaptive object model is usually the result of prior experience in the domain based first on manual construction, from which patterns are harvested, then on manual framework completion using a framework based on the patterns, and then on a generative approach based on a domain specific language that wraps the framework. It is usually only after enough experience has been gained that the framework can then evolve into a dynamically reconfigurable run time.

 

A prime example of an adaptive object model, and of the evolutionary pathway just described, is a relational database management system. RDBMS and the SQL language were the result of prior experience with hand coded data access, frameworks providing indexed sequential access methods (ISAMs), and early data modeling efforts based on ISAMs.

For more on managing variation in product lines, I highly recommend the work of Jan Bosch, of the University of Groeningen in the Netherlands. He has written a number of papers describing trade-offs among variability management mechanisms, with several examples of run time adaptation.




Jack Greenfield | Architect | Enterprise Tools | Microsoft
Jack Greenfield
Jack Ihave question for u.we have a hard time finding information about microsoft "domain specific tools".When u say DSL tools in visual studio do u only mean the class designer or is there a toool that will help us to build AOM(adaptive object model) structures in visual studio 2005.

thanks

PS: the visual debugger and the class designer is the coolest thing that microsoft has done in vs.



erdsah88
erdsah88
Jack,
Thank you so much.

I follow Yoder, Martin Fowler, Ralp Johnson,... So Im completely in the Adaptive object modelling.
Im developing my project with AOM. but to find examples and source code are hard. But we are on a good level in the AOM. with Attribute,Accountability and behavior(Interpreter).
But before developing a project with AOM, to know design patterns make easier to develop.
Everything is complex and abstract in the AOM. I tell about AOM to other developers... but they dont understand.. and they are scaring... Their excuse is the performance.
I thought about so much about "Object Relatinal Mapping Tools".. like Should I use them ?.
But my choice is the Stored procedures in the Yukon. and beta2.

I use the following design patterns ;
FlyWeight for knowladge part of the aom to store the big collection data, Builder to create complex objects, Factory, Singleton, Interpreter for operations of the entity in the behavior part. Accountability pattern from Martin Fowler for relationships between entities..
and Facade to use a layer between UserInterface and Domain Layer.

So you say AOM is a great structure ?.

I know it is really flexible structure.. But there isnt many people use that.

Thank you
see you

Doga Oztuzun
Microsoft's tools for domain-specific languages:

http://lab.msdn.microsoft.com/teamsystem/workshop/dsltools

A release that works with Beta 2 will be made available soon.

-Ajay


Product Manager, Visual Studio Team System
Ajay Sudan MSFT

Well, theoretically, sounds good but when you ask some one who has implemented systems based on AOM they are really are poor in performance and maintainability. Good example is the Hartford insurance framework, where they spent millions on the project to get a workable solution for them. I tried this using the Martin Fowlers Accountability pattern and other GOF patterns like prototype etc but at the end we did through this prototype for performance reasons and increased complexity for which the ROI wasnt matching for us.

 

Thanks,

Arshad




SyedArshad
Syed Arshad
Hey,
Yeah AOM
Doga Oztuzun

 Dear Jack,
I have been writing some articles on code project about AOM, and have not yet had any good feedback on the relevance of my articles to the pattern. I would appreciate a review by someone knowledgable in the pattern. The url is
http://www.codeproject.com/gen/design/AOMMVC.asp
and it (will be) a 7 part series. Still have the Chain of responsibility and interpreter articles to write. Can you tell me if I am on the right track, or have I missed something? ThanksBig Smile

chris lasater

Chris,

I have been reading your articles on codeproject and I am looking forward
to you approach on handling relationships.  My current AOM project is also
based on XML structures that are stored in a "Native" XML db.*  So I think
you are  on the right track.   I guess I'm amazed that for as long as Yoder
and company have been talking about AOM, we are still on the cutting edge.
Keep up the good work.

Dan S



*Xpriori (www.xpriori.com) has a free download developers version.
Dan Spalding
Thanks Dan,
It is good to get some feedback on this from someone who is using the pattern. I am hoping to find the time to write this next article soon. I have been doing some furthur research on the different aspects of the pattern, especially how the Accountability pattern from Fowler fits into the picture, and how these accountabilities can be managed and used in an application format. I would be interested in any thing you would like to share about your own ideas on the subject. You can post on my blog if you like http://www.codeproject.com/script/profile/whos_who.asp?msg=1109638&vt=arts&id=314543#xx1109638xx
Or send me an e-mail chris.lasater@gmail.com
Doga Oztuzun
chris lasater
reply 10

You can use google to search for other answers

 

More Articles

Why no Library Project representation in the Application Diagram?...
Visio Enterprise Architect 2003 - Support for Sybase (DDL generat...
Latest Distributed System Designers
calling policy from orchestration.
How to design and code in different block.
Is this feasable?
SDM and WebProject
Modeling .Net Remoting or DCOM
IIS constraints
Synchronization for Element ResourceType failed
Welcome to Bokebb   New Update   Joins the collection  
 

New Articles

Update of SettingValue.Value throws exce…
SystemDefinitionModel and Databases
Problems with dots in the name of projects
WinFx and Application Designer
Hot to fix "A reference to document…
[LDD] Import IIS settings does not impor…
How to specify custom constraints?
Anyone using VISIO for Enterprise Archit…
Class Designer: XML Comments
Distributed System template
Distributed System template generates VB…
VSTS Architect vs. VSTS Developer
Sequence Diagram
Logical Datacenter
Application types

Hot Articles

WHAT IS INCLUDED IN VS For Software Arch…
error adding wsdl to a webservice
Application locked - error creating conf…
Systems Designer does not update web.con…
Hot to fix "A reference to document…
biztalk message problem
[LDD] Import IIS settings does not impor…
Windows Communication Foundation Support
calling policy from orchestration.
How to specify custom constraints?
Distributed System template generates VB…
Application Diagram doesn't like ATLAS?
application designer - generic application
Distributed System template
AD -> SD: Override settings

Recommend Articles

Error trying to add a new port to a cust…
Wildcard for version type
Correct values for Platform property in …
Problems with dots in the name of projects
Building Installer: How do I have it pro…
Visual Studio 2005
Logical Datacenter
Web services via class library - how to …
Application Designer Error
Sequence Diagram
WinFx and Application Designer
Default implementation language for dist…
Visio for Enterprise Architects 2005 - a…
SDM Industry Support
Team Suite not working -- Beta 2