1. VO: It is actually vague, usually points ValueObject and ViewObject
2. ViewObject, interface shows the objects, such as Struts FORMBEAN
3. Value Object, early as the general name of ValueObject and Transfer Object. In fact, the true meaning of Value Object is its content, not identity.
4. Transfer Object: Data transfer object, the object between the application, in a distributed application, usually improves the overall performance
5. PO: Maybe Persistent Object, basically Entity
In different architecture and implementations, these objects may be repeated, or may not overlap. If you want to make a framework for all systems, you need to strictly distinguish between each object. For example, JDO's PO cannot be used as TO, it should not be separated from PM, for example, you can choose to use ViewObject (such as struts's formbean) as TO, but it is not suitable in Tapestry and Webwork. But in many times, it is most important to be able to easily and use it.
6. Pojo is an object that is an ordinary Java object, which is different from the object with heavy container control functions such as EJB, which is not the object of Enhanced, such as JDO static enhance, nor similar Hibernate is dynamic by dynastion byte code.
That is to say, the concept of POJO is relative to the other Class of the handfoot, it is not passive.
7. BO is Bussiness Object, which contains Business Logic.