Naked Objects
By Richard Pawson and Robert Matthews

Extending Naked Objects

Will naked object systems scale?

One of the questions we get asked most frequently is: "Will naked object systems scale up to large numbers of users?" Right now, the only honest answer is "We don't know for sure." We haven't yet seen any systems implemented using Naked Objects that service a large number of simultaneous users, although we have already seen applications that involve large amounts of data and must deliver the performance equivalent of mainframe transactional systems (for example at Safeway).

As we've made clear in this section, we've designed the basic architecture of the naked objects with the intention that it will scale up to very large applications. But we haven't developed all the pieces yet. We're quite sure that as bigger systems are built, new problems will emerge that we haven't explicitly foreseen and that we will need to address with new extensions or modifications.

The fact that we haven't yet seen very large systems developed in Naked Objects is hardly surprising. Any significant new technology involves a learning curve: it is right and proper that organizations will want to start by applying it to smaller problems, where there are fewer variables. (In fact many first applications of Naked Objects are in areas where traditional systems approaches have failed badly, and there is arguably nothing to lose by trying a radical approach).

So we welcome the question, provided that it represents a genuine desire to understand whether the architecture has the capability to scale up with increasing demand - fuelled by increasing experience. We have no interest in responding to those who use such questions merely as an excuse to maintain the status quo. We recall that the pioneers of the relational database, client-server architecture, peer-to-peer networks, asynchronous messaging, and, of course, object-orient techniques in general have faced similar scepticism.

Much of our confidence lies in the fact that Naked Objects is open source. As the development community grows we will get offers of help from people who have very substantial expertise in this area. In fact it's already started to happen. Many people have told us that they regard Naked Objects as fundamentally 'the right way to design software' and have offered their support. We find that very motivating. One thing is true of software development in general and community-based open source development in particular: where there is a will, there is almost always a way.

The most encouraging thing is that people who have a great deal of experience of scaleability of distributed objects have been very supportive. We're delighted to give the last word in this book to Oliver Sims, author of 'Business Objects'[Sims1994], co-author of 'Building Business Objects'[Eeles1998] and 'Business Component Factory'[Herzum2000], and a widely-respected authority in the field of large-scale distributed-object and componentized business systems:

"I think that Naked Objects is both exciting and important. Although there are some technical concerns about scalability that will need to be addressed, I can see nothing in the fundamental concepts behind Naked Objects that would prevent it from scaling up to very large numbers of users. And most importantly I believe that it will be possible to address these issues in a way that does not compromise the fundamental philosophy of Naked Objects."