Thursday, September 24, 2009

The Adaptive Object Model Architectural Style

This Paper presents Adaptive Object-model (AOM), which are considered as a more flexible alternative to the conventional object-oriented design (OOD). Some nice examples along with advantages and disadvantages of AOM are presented. In AOM system, the object model is stored in a database and the system interprets it. AOM systems do not model the system based on the classes and their attributes and methods, but represent them as metadata, which are interpreted and translated to dictate the system’s behavior. So changing the application does not require changing the code, but the metadata. I think this is a very good feature compared to OOD systems where changing an application require changing the code and releasing a new version of the application.

The system is adaptable to changes, because any changes in the metadata are immediately interpreted and reflected in the running application.
This architectural style is very interesting and great for system where flexibility and dynamic runtime configuration are important. I never work on a large scale system requiring these characteristics, but I did a class project a couple of years ago, where a GUI was developed to read, interpret and display the products and the prices stored in a database. I am not sure if that was an AOM system, but it was very cool to see the system automatically changed whenever there was a change in the database.

I understand that Architects of AOM are very proud of their system. Who will not be proud to architect a system that adapt to modifications without requiring code changes? I think the AOM architectural style has a very interesting concept and provide a great solution. The author mentions that developers who have to use and maintain these systems usually find them hard to understand and do not think they are that great. Maybe this is an example where the architectural concept is great, but the implementation is not as great. I don’t have experience with these systems and I do not understand why this is the case. Maybe some folks with experience using AOM system can tell us why they are hard to maintain.

Among the examples provided, I especially like the User-Defined Product framework (UDP). It shows how an AOM architectural style can be used to allow users to construct new kind of components or various complex business objects from existing components without any code change.

No comments:

Post a Comment