The Java Platform, Standard Edition (Java SE) and the Java Platform, Enterprise Edition (Java EE) are platforms widely used for programming application servers in the Java programming language. You can use rule sessions to call Java SE or Java EE applications.
Java SE provides a foundation for building and deploying network-centric enterprise applications ranging from the PC desktop computer to the workgroup server. Java EE simplifies enterprise applications by defining and specifying a complete set of common standard services, such as naming, transaction management, concurrency, security, and database access.
Java SE
Java Platform, Standard Edition (Java SE) is a specification describing an abstract Java platform. It provides a foundation for building and deploying network-centric enterprise applications ranging from the PC desktop computer to the workgroup server. Java SE is implemented by the Java Software Development Kit (SDK).
Rule Execution Server can execute rulesets with 100% Java SE code. There are many use cases for pure Java SE execution, such as running batches or running rules from a JMS Provider or non-Java EE Enterprise Service Bus (ESB).
Java EE
Java Platform, Enterprise Edition (Java EE) is based on the Java SE specification. It represents a collaboration between numerous vendors and industry leaders and provides the infrastructure support for applications.
In the Java EE framework, you add rules:
At the application layer, to manage dynamic business logic and the task flow.
At the presentation layer, to customize the page flow and work flow, and to construct custom pages based on session state.
Java EE is portable and scalable, and supports legacy integration and EJB architecture-based components. Java EE simplifies enterprise applications by defining and specifying a complete set of common standard services, such as naming, transaction management, concurrency, security, and database access.
Java EE also defines a container model, which houses and manages instances of Java EE application components. Containers are in turn housed within Java EE servers.
Java SE versus Java EE
The following diagram illustrates Rule Execution Server stacks in Java SE and Java EE:

When an application requires services such as transaction management, web containers, or security, you can either add the necessary Java extensions to the Java SE platform or change over to a full Java EE application server. For example, Java Management Extensions (JMX) is an extension to manage the life cycle of the components and services of an application. You can also use JMX from a Java SE application. With the JMX standard, you get the benefit of remote property inspection and manipulation, which is useful for debugging and management.
If you choose to work with Java SE, the following restrictions apply:
The Execution Unit (XU) is not shared. Therefore, it consumes more memory.
You can configure XU pooling only through the ra.xml deployment descriptor. See Rule session tuning.
Only Java SE rule sessions are available, there are no EJBs or message-driven rule beans (MDB) execution components, which results in the following limitations:
No remote EJB call from the client.
No JMS support.
No transaction support. You must implement your own transaction management logic as EJB does.
In addition, if you use Java SE in most web containers, here are the limitations:
No Rule Execution Server Console.
No deployment from Rule Designer or Decision Center.
No clustering support.
No execution statistics for monitoring.
No hosted transparent decision services.
The migration path from a pure Java SE environment to a full Java EE environment is simplified by the Rule Execution Server execution components, which use a unified API. Users with web-tier requirements can develop applications using a web server and then move, with relatively few code changes, to a full Java EE application server for production. A production server is primarily for administration and quality of service (QoS) capabilities.