-
uses the Mule Deployment Model
-
can run multiple apps
-
supports hot deployment
-
requires minimal resources
-
easy to install
Deployment Scenarios
The table below lists the way in which you can deploy Mule ESB on premise, and some of the characteristic of each method.
Deployment Mode | Container | Pros | Cons | HA | MMC |
---|---|---|---|---|---|
Standalone |
Mule ESB |
|
Supported |
Supported |
|
Embedded |
App Server |
|
|
App Server HA |
Supported* |
Embedded Java |
Java App / IDE |
|
|
Not Supported |
Supported* |
*When Mule is embedded in some other container, the Mule Management Console cannot perform auto-discovery or server restarts.
Running Mule in Standalone Mode
The recommended approach is to run Mule Standalone from the command prompt, as a service or daemon, or from a script. As the simplest architecture, 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.
You can also run multiple applications side-by-side in a Mule instance using the Mule Deployment Model. This model supports live deployment and hot redeployment of applications. Further, Mule Standalone fully support for Mule High Availability module and use of the Mule Management Console.
For more information on running Mule standalone, see Mule Deployment Model.
Mule Standalone vs. Application Server Listed below are some of the advantages of running Mule standalone vs running it as a web application deployed in an application server (Tomcat, WebSphere, JBoss, etc.)
|
Embedding Mule in a Java Application or Web app
You can start and stop Mule from a Java application or embed it in a Webapp (such as a JSP or servlet). For general instructions, see [Embedding Mule in a Java Application or Webapp]. Listed below are links to documentation which offer application server-specifc information regarding Mule application deployment.
-
Geronimo (The Geronimo application server uses ActiveMQ as its default JMS provider. For details, see ActiveMQ Integration.)
For details on how to support Mule hot deployment within some application servers, see Application Server Based Hot Deployment.
Note that when embedded, Mule does not support the Mule Deployment Model or High Availability. Furthermore, because the application server needs control of Mule, the Mule Management Console’s capabilities are reduced; specifically, you cannot restart the server via the Mule Management Console.
Using Spring
Mule fully integrates with Spring, allowing you to take advantage of Spring’s many features, including JNDI and EJB session beans. You can also use Spring remoting to access Mule from an external application. For details, see Using Mule with Spring.