Introducing the business object model (BOM)

The BOM is the basis for the vocabulary used in business rules. It is an object model similar to a Java™ object model, and contains elements that map to those of the XOM.

You use the BOM to make business rule editing user-friendly by providing tools to set up a natural language vocabulary. With this vocabulary, policy managers can describe their business logic in a business rule language.

A BOM contains the classes and methods that rule artifacts act on. As an object model, the BOM is very similar to a Java object model. It consists of classes grouped into packages. Each class has a set of attributes, methods and, possibly, other nested classes.

BOM-to-XOM mapping defines the correspondence between the BOM and the execution object model (XOM) used at runtime.

Overview of the business object model and Vocabulary

System BOM

By default, the BOM always includes classes that map to specific JDK classes, and basic date and time-related classes. This set of classes is called the System BOM. For example, to compare the parts of a date, the System BOM contains the following classes, which map to the parts of a java.util.Date and have associated value editors:

  • ilog.rules.brl.SimpleDate

  • ilog.rules.brl.Time

  • ilog.rules.brl.DayOfWeek

  • ilog.rules.brl.Month

  • ilog.rules.brl.Year

If you have a BOM member of type java.util.Date, you can change that type to one of the System BOM date types. The mapping is carried out automatically.

BOM entries

A business object model comprises one or more BOM entries. A BOM entry defines a set of business elements in the business object model.

You can order BOM entries so that if you have two business elements with the same name in two BOM entries, the one in the first BOM entry in the path overrides the other.

A BOM entry comprises:

  • A BOM file, which describes the structure of the BOM

  • A VOC file, which is locale-specific and describes the vocabulary associated to the BOM

  • A B2X file, which describes the mapping between the BOM and the XOM

You can manipulate the BOM by API with the package ilog.rules.bom. This package contains mainly interfaces.