Business object component architecture
The business object system uses a layered software approach. The Services layer that offers REST services, and the Engine layer interacts with the Counter Fraud database. The Services layer manages interaction with folio-based code and caching of metadata; the business object engine builds business objects.
Metadata
The business object component maintains metadata about business objects and metadata for several schemas in the Counter Fraud database. This metadata includes table names, column names, column types, and foreign key dependencies between tables.
Services
The Services layer contains the REST service entry points. This layer handles interaction with folio-based structures. The user interface has a folio-based paradigm, which provides a folioId and a set of business object types. The Services layer uses the folioId to access folio tables to get a list of object IDs attached to the folio; then calls the Engine layer by passing in the object type and the list of object IDs. Population of the folio-based Counter Fraud database tables occurs by other Counter Fraud processes (Analytics).
The Service layer creates and deletes business objects by direct use of the appropriate Data Access Object (DAO) calls.
Building a business object requires access to the metadata for the object and the metadata for the base Counter Fraud database tables. The metadata information is needed each time that a business object is built. The Services layer maintains a cache of metadata, passing the cached metadata to the Engine layer.
Engine layer
The business object Engine builds a JSON representation of a business object. The data in the metadata tables defines the structure of the business object; the data in the CFCONFIG.OBJECT_DEFINITIONS table contains the JSON used to build the business object.
Restrictions
- Each business object must have a unique name.
- Not all DB2® column types are supported. Common data types are supported (int, varchar, Boolean); however, blob and clob are not supported.
- A business object definition is limited to the base table, and values from any linked database tables "up to two" tables distant from the base table. For example, a business object based on the ACCOUNT table can contain values from ACCOUNT, ACCOUNT_PROPERTY, and ACCOUNT_PROPERTY_TYPE.