Deployment Scenarios
There are several ways in which you can deploy Mule ESB. This page describes the various approaches.
Deployment Mode | Container | Pros | Cons | HA | MMC |
---|---|---|---|---|---|
Standalone |
Mule ESB |
Mule Deployment Model, Run multiple apps, Hot Deployment, Minimal Resource Requirements, Easy to Install |
Mule must be provisioned into your environment |
Mule HA Supported |
Supported |
Embedded WAR |
App Server |
Run multiple apps, All dependencies contained in webapp, Use Webapp deployment model |
Each web app runs own mule instance, Increases size of webapp |
Use App Server HA |
Supported* |
Embedded Java |
Java App / IDE |
No external container required |
No Hot Deployment |
Not Supported |
Supported* |
*When Mule is embedded in some other container, the management console cannot perform auto-discovery or server restarts.
Running Mule in Standalone Mode
The recommended approach is to run Mule ESB standalone from the command prompt, as a service or daemon, or from a script. This is the simplest architecture, so it reduces the number of points where errors can occur. It’s typically best for performance as well, since it reduces the number of layers and eliminates the inherent performance impact of an application server on the overall solution. With Mule 3, you can also now run multiple applications side by side in a Mule instance using the new deployment model can support live deployment and hot redeployment of applications. Lastly, standalone mode has full support for the Mule High Availability module and the Mule management console.
For more information on running Mule standalone, see Mule Deployment Model.
Embedding Mule in a Java Application or Webapp
You can start and stop Mule from a Java application or embed it in a Webapp (such as a JSP or servlet). For details, see Embedding Mule in a Java Application or Webapp. Following are details on specific application servers:
For details on how you can support Mule hot deployment within some application servers, see Application Server Based Hot Deployment.
Note that when you embed Mule, the Mule Deployment Model and Mule HA high availability is not supported. Furthermore, because the application server needs control of Mule, the Mule Management Console control/management capabilities are reduced. The monitoring functions work, but server restart is not supported.
Using Spring
Mule fully integrates with Spring, allowing you to take advantage of Spring’s many features, including support for JNDI and EJB session beans. You can also use Spring remoting to access Mule from an external applications. For details, see Using Mule with Spring.