HomeProducts
 

 

   
1st February, 2002
Flexibility in Business Entity Representations

We have built a lot of business systems and worked with existing ERP systems.All these systems model business transactions and provide representations of entities such as products, personnel and companies. It is these representations of business entities with which the business systems interact. These entities extend their influence throughout the system, as the entities dictate the interactions in the system when we apply traditional views of object-oriented design. The entities are not just the basis for the system but they also define a rigid framework to which the system attaches. 
  
Traditional systems provided perfect models of the business entities at the time of their conception. However, as time progresses information needs change. New characteristics need to be added such as another address field or information defining a new categorisation. When the object representations so closely match the physical objects, the system becomes very rigid and is resistant to change. The points of contact between the system and the business entities increase when the complexity of the representation increases, and this produces a more complex lattice work of interactions in the system. As the number of points of interaction increase, the predictability of system operation when changes are introduced decreases. 

Another source of rigidity is the translation between the physical storage and the in-memory representation of these entities. Most implementations provide a direct correlation between the representations. The effort required to add new characteristics is relatively expensive, as new physical and logical fields must be implemented and specific operations must be implemented for access to the data and for the transfer between physical and logical domains.

Business entities that tightly couple specific semantics into their structures lock the system in which they reside to a rigid specification for operation. While this provides for preciseness, it reduces the gracefulness with which a system can adapt to changing conditions. It also lacks the subtlety to represent ambiguous characteristics of entities.

These issues can be addressed if the characteristics of a business entity are abstracted so meaning is no longer assigned to fields in the object representation. Reuse is easier, as the characteristics are generalised expressions of any entity in the system and hence operations can be reduced to the general cases. Storage and retrieval of representations are performed by a single implementation for all characteristics for all entities. This is possible because it is no longer important to distinguish the meaning of the characteristics that are stored and retrieved. Whether the value is length or breadth, the interpretation is not necessary at this level. It is just a value of many values associated with an entity.

At higher levels in the system, interpretations of characteristics are made and interactions defined. Characteristics are only assigned meaning at the point they are used for decisions. In all other cases, the characteristics are purely data with no use. In this context, the business entities no longer create a rigid framework for the system. The entities can have new characteristics added, removed and ambiguities such as multiple values for a characteristic are supported. The entities are no longer constrained at the level of representation. The meaning of the characteristics is detached from the accessors of the data.

The schema of representation can be likened to XML. The aim of the representation is to describe entity data in a programmatically neutral manner; that is, without assigning importance or meaning to the data. So as XML is a language to describe data, we propose that there should be a generalised system or framework to describe entity data, whose implementation is not constrained or overly influenced by the qualities of the data. In a sense, the framework provides a container for entity characteristics, delivering a homogenous interface to the data and it's meaning, without that meaning infusing the container's operation.

We have built an operational J2EE framework that delivers these capabilities. The generalities incorporated into the framework allow definition of entities and their set of characteristics from a database. Searches can be algorithmically constructed since there is a single defining structure for characteristics. Forms can also be algorithmically constructed, which simplifies development when new characteristics are added to an entity. Re-use is extensively employed as the framework can represent any entity that has many describing characteristics. The development time for new applications using the framework is greatly reduced. In order to implement a category display for a book catalogue required an EJB with 15 lines of implementation code to perform the category search. The actual search function and the entity definition were described in the framework database, requiring no implementation programming. The servlet to display the search results consisted of 141 lines of code. The result is shown in the following display.