July 24, 2006
Naked Objects
I just saw (via K. Bhagvan's "Architect's Corner") that Naked Objects Version 2.0 has been officially released and a Version 3.0 is under development.
Naked objects, the brainchild of Richard Pawson, is an approach to building software which is based on domain modeling and automatic generation everything else (i.e. persistence and user interface) so that once you finish with the business logic you have all you application running (and less maintenance to worry about). I think the approach can be beneficial when you do domain-driven design as you can get to play with or demonstrate the domain object as you design them. This will especially be true with Version 3.0 (which will use POJOs).
I would be wary of releasing a finalized solution that is solely based on naked objects as it also has several limitation (e.g. the UI is, obviously, very limited), but there are situations where it can be made to work. I didn't have a chance to work or review a lot of architectures based on naked objects. One architecture I did review (about a year an a half ago) was for the Irish Department Of Social and Family Affairs and found few risks in regard to the O/R mapping, heavy use of reflection, scalability, and security. It seems that recently the application has been successfully deployed (which prompted release 2.0 of naked objects), but not without problems -- or as the naked object site states:
Based on this highly successful deployment of a mission critical application, .... However, it must also be stated that the project involved a substantial effort of systems integration to link Naked Objects 2.0 to the other elements of their distributed architecture, and to the database in particular.
To sum things up, naked objects in an approach which is worth knowing about and it can save you a lot of time if its ground rules fits your application needs or you decide to use it to help model you domain model. In most cases I wouldn't use naked objects as the base for a released product. I guess the most disturbing thing for me is thatI believe that UI entities and business entities should be two separate things (maybe I'll write more about this in another post)
Posted by Arnon Rotem-Gal-Oz at 08:55 AM Permalink
|