Patent ID: 8601490

Claim:
A non-transitory computer readable medium including program code for providing a message-based interface for exchanging business rules between parties, the medium comprising: program code for receiving via a message-based interface derived from a common business object model, where the common business object model includes business objects having relationships that enable derivation of message-based interfaces and message packages, the message-based interface exposing at least one service as defined in a service registry and from a heterogeneous application executing in an environment of computer systems providing message-based services, a first message for providing a statement of a specific condition or combination of conditions and an appropriate action to take or an object to use if the conditions are fulfilled, the first message including a first message package, the first message package hierarchically organized in memory, the first message package including: at a first hierarchical level in the first message package, a business rule message entity; and at the first hierarchical level in the first message package, a business rule package comprising, at a second hierarchical level in the first message package, a business rule entity, a change history package, an expression package, and an element code package, where the business rule entity includes, at a third hierarchical level in the first message package, a universally unique identifier (UUID), a version identifier, a status, an activation status code, a business rule application UUID, and system administration data; program code for processing the first message based on the hierarchical organization of the first message package, where processing the first message includes unpacking the first message package based on the hierarchical organization of the first message package and the first message package's derivation from the common business object model, wherein the particular hierarchical organization of the first message package is used at least in part to identify a purpose of the first message; and program code for sending a second message to the heterogeneous application responsive to the first message, where the second message includes a second message package derived from the common business object model to provide consistent semantics with the first message package.