Archive for January 29, 2010

WSO2ESB Front-end Back-end Seperation Scenario

The idea behind front-end back end seperation is, having esb server in back-end esb and management console in front-end esb. Simply it is a replacement of back-end esb management console with front-end esb management console.

1. Take 2 ESBs'(one for front-end and the other one for back-end)

2. The special thing we have to do is with conf/carbon.xml of both front-end and back-end. Change,

<ServerURL>https://${carbon.local.ip}:${carbon.management.port}${carbon.context}/services/</ServerURL>

with putting relevant values.
carbon.management.port = management console listener port of back-end(specified as conf/transport.xml in back-end)

Note1: If a carbon.context is not using, no need to change carbon.xml of back-end esb.

3. Do following changes to front-end or back-end. Change management console listener port of conf/transport.xml

<transport name=”https”>
<parameter name=”port”>9443</parameter>

And http and https listener ports of esb server in conf/axis2.xml to some other port values.

<transportReceiver name=”http”>
<parameter name=”port” locked=”false”>8280</parameter>
<parameter name=”non-blocking” locked=”false”>true</parameter>
<!–parameter name=”bind-address” locked=”false”>hostname or IP address</parameter–>
<!–parameter name=”WSDLEPRPrefix” locked=”false”>https://apachehost:port/somepath</parameter–&gt;
</transportReceiver>

<!– the non blocking https transport based on HttpCore + SSL-NIO extensions –>
<transportReceiver name=”https”>
<parameter name=”port” locked=”false”>8243</parameter>
<parameter name=”non-blocking” locked=”false”>true</parameter>
<!–parameter name=”bind-address” locked=”false”>hostname or IP address</parameter–>
<!–parameter name=”WSDLEPRPrefix” locked=”false”>https://apachehost:port/somepath</parameter–&gt;
<parameter name=”keystore” locked=”false”>
<KeyStore>
<Location>resources/security/wso2carbon.jks</Location>
<Type>JKS</Type>
<Password>wso2carbon</Password>
<KeyPassword>wso2carbon</KeyPassword>
</KeyStore>
</parameter>
<parameter name=”truststore” locked=”false”>
<TrustStore>
<Location>resources/security/client-truststore.jks</Location>
<Type>JKS</Type>
<Password>wso2carbon</Password>
</TrustStore>
</parameter>
<!–<parameter name=”SSLVerifyClient”>require</parameter>
supports optional|require or defaults to none –>
</transportReceiver>

This step is done to avoid port conflicts of two esb instances.

4. Delete server folder of front-end esb and console folder of back-end esb which are in webapps/ROOT/WEB-INF/plugins

Note2: Better to do the changes in step 3 in front-end. Then according to Note1, no need to do changes of back-end except deleting of console folder. Therefore can easily have a fresh esb server whenever required.