RuleApps and RuleApp projects

A RuleApp is a deployable management unit that contains one or more rulesets which typically share the same object model. A RuleApp is described in an XML file named a RuleApp descriptor. In Rule Designer, RuleApps are handled inside projects.

At the development stage, rules are written and tested in Rule Designer, then deployed inside a RuleApp. A RuleApp is a deployable management unit that contains one or more rulesets. As a best practice, RuleApps should normally contain rulesets that share the same object model. You can deploy and manage files that correspond to a Java™ execution object model (XOM). A managed Java XOM is dependent upon a RuleApp. For more information, see Managed Java XOM.

Each ruleset contained in a RuleApp is itself contained within an archive. This is similar to the way EJB-JAR files are included in an EAR file.

Each ruleset in a RuleApp can be called by means of its ruleset path. The ruleset path acts as the entry point for clients to access the business logic encapsulated in the RuleApp. RuleApps deployed on a supported application server can be accessed by multiple, concurrent, distributed clients. An application can call one or more rulesets contained in different RuleApps.

A RuleApp is described in an XML file named a RuleApp descriptor. This file is specified in an XML schema which defines the Rule Execution Server model. All executable resources are defined as elements of the RuleApp descriptor.

In Rule Designer, RuleApps are handled inside RuleApp projects. A RuleApp project includes:

archive.xml

The RuleApp descriptor.

.ruleappproject

Contains information such as the rule project dependencies and the ruleset archive paths.

The format of the .ruleappproject file is as follows:

<RuleApp>
   <ruleset>
      <kind>ruleproject</kind>
      <display-name>[ruleproject name]</display-name>
      <name>[rule project name in ruleset format name]</name>
      <version>[ruleset version]</version>
      <fullpath>[/[ruleappname]/runtime/[name].jar]</fullpath>
      <extractor> [name of the rule extractor to use, optional] </extractor>
      <export>[true|false]</export>
   </ruleset>
   <ruleset>
      <kind>rulesetarchive</kind>
      <display-name>[filename with .jar]</display-name>
      <name>[filename name without .jar in ruleset format name]</name>
      <version>[ruleset version]</version>
      <fullpath>[/[projectname]/[path]/[displayname] in the workspace or  
[path]/[displayname] if it is on the disk ] </fullpath>
      <location>[[path]/[displayname]</location>
      <export>[true|false]</export>
   </ruleset>
</RuleApp>