Could I have BOM without XOM? Drawing similarities between B2X and ORM

While listening to the ZB300 course’s Unit 4 Developing business object models…again I’ve been struggling with understanding BOM and XOM development lifecycle.

Business Object Model (BOM) is the model business rules are written upon whereas Execution Object Model (XOM) is the model rules are executed upon. It’s clear that one cannot live without the other so the question I run into was “What should be developed first – BOM or XOM?” The answer turned out to be quite simple – it doesn’t really matter, and you could develop BOM first and then map it to XOM or vice versa. It could be even more complicated than just ordering scheme as BOM does not necessarily have to correspond to XOM exactly. BOM can be extended as well as XOM doesn’t have to be fully mapped to BOM. Having said that the question goes “Can I assume that I could have BOM without XOM?” Since XOM is unimportant at first and BOM can be mapped to XOM later on, and BOM can be wider (extended) than XOM, can I assume that XOM may be empty, non-existent? The course said it’s not possible, but I leave the question for a while to hear your take on that.

During the course I’ve also been able to draw similarities between the BOM-to-XOM mapping (B2X) and another technology or technique I have already understood and tried out many times – Object-Relational Mapping (ORM). The Java world is full of objects while the database world is full of relational entities. It’s very common to map one to the other using ORM solutions like Java Persistence API (JPA) or a full-fledged product based upon it – Hibernate. I can see many similarities between B2X and ORM. I’d say they’re alike – BOM is what JPA calls JPA entities and XOM is what JPA executes upon, i.e. a relational database. If you look at the acronyms – RDBMS and BRMS – you’ll notice one more similarity – they’re (almost) anagrams. ILOG Rule Language becomes JPA Query Language then, doesn’t it? It should now be easier to understand and remember the acronyms and their roles. Nice.

Tomorrow heading to Istanbul, Turkey for 3 days so if you’re nearby I’d like to hear about it. We could discuss rules or other enterprise beasts.


2 responses to “Could I have BOM without XOM? Drawing similarities between B2X and ORM

  1. For the rules to be executable you have to have a XOM, however you can have a generic XOM (sometimes called synthetic objects) capable of representing any BOM: HashMap for example. You use B2X expressions in your setters/getters to write/read the correct entry in your Map. You use B2X Testers to determine object identity. As an aside, this is quite similar to how XSD XOMs work.

    The easiest use case is definitely to start with a Java XOM, and then generate a BOM from the XOM.

    You can author rules without a XOM — in fact within RTS the XOM is not even present.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s