altought it is not targeted for remote invocations of any sort. @x SNRG: Partly because it demotes objects to data that other code acts upon.
The name is used to emphasize that the object in question is an ordinary Java Object, not a special object, and in particular not an Enterprise Java Bean (especially before EJB 3).
So, for many people, DTOs and VOs are the same thing (but Fowler uses VOs to mean something else as we saw).
Most of time, they follow the Java Beans conventions and are thus Java Beans too. inside a class with a lot of complicated logic, for sure it is not a Java Bean, it can't be a VO as it is mutable, could it be a DTO?
The term was coined by Martin Fowler, Rebecca Parsons and Josh Mac Kenzie in September 2000: "We wondered why people were so against using regular objects in their systems and concluded that it was because simple objects lacked a fancy name.
So we gave them one, and it's caught on very nicely." The term continues the pattern of older terms for technologies that do not use fancy new features, such as POTS (Plain Old Telephone Service) in telephony, and PODS (Plain Old Data Structures) that are defined in C but use only C language features, and POD (Plain Old Documentation) in Perl.