The intent of a business object is to represent a highly cohesive business concept, such as a sales order, a business contact, or a company. A business object is singular in nature but is often collected in groups, such as a collection of sales orders. Representation of business concepts through Web Services often starts by defining the object in Java. The business object is often a convenient metaphor for a physical concept from the business domain, such as a bag of coffee or a warehouse that stores the coffee. If you develop an application with the primary interface to the business concepts being Web Services, you could just as easily start by modeling the Web Service interfaces and subsequently implementing the service implementations in Java. In fact, this alternate approach will yield a more usable Web Service. Unfortunately, you will have a less object-oriented application infrastructure. By the end of this chapter, you should learn a few of the complexities that lead to this observation.
In the early object-oriented programming days, the business object also encapsulated complex logical operations. Over time, business objects encapsulate less complex logic and, instead, contain only data access operations. One can debate whether this style of programming has merit. From an object purist point of view, this style reverses one of the fundamental underpinnings of object-oriented computing ”that objects encapsulate both behavior and data.
From a practical development perspective, this style shows more and more promise. Two major data points back up the separation of data objects from process objects:
Data objects easily relate to the relational databases tasked with storing persistent representations of the objects.
New techniques and standards, such as Business Process Execution Language (BPEL), move complex business process logic into metadata rather than leaving it in a proprietary language.
Adhering to the separation of business objects from business processes, you will define your business concepts to be the data required for representation of a business concept as well as the operations that occur directly against the data, such as update and deletion operations. Chapter 8, "Exploring the Business Process Pattern" discusses business processes in more depth.