|
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.

|