Frequently asked Questions

1. General

Q: Where do I find the source code of the ESB?
A: The router is the core project of the monitor. It is an Eclipse RCP plugin named com.predic8.membrane.core. The project contains an ant build file named build-router.xml. By using this ant file you can build the router distribution.
You'll find the source code via svn on the Download page.

2. Deployment

Q: Does Membrane ESB support Hot Deployment?
A:Yes. You can add and modify service proxies during the execution of Membrane ESB. Just modify the proxies.xml file and save it. An instant later the new configuration should be deployed. To activate or deactivate hotdeployment edit the monitor-beans.xml in the conf directory.

<?xml version="1.0" encoding="UTF-8"?>

<spring:beans xmlns="http://membrane-soa.org/router/beans/1/"
	xmlns:spring="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
					    http://membrane-soa.org/router/beans/1/ http:/www.predic8.com/schema/router/conf/router-conf.xsd">


	<router/>

	<transport 
			coreThreadPoolSize="5" 
			socketTimeout="30000" 
			tcpNoDelay="true" 
			httpClientRetries="5" 
			autoContinue100Expected="true">
		<ruleMatching />
		<dispatching />
		<userFeature />
		<httpClient />
	</transport>

</spring:beans>
        
Listing 1: monitor-beans.xml Configuration File

3. Integration

Q: What Message Exchange Patterns are supported by Membrane ESB?
A: The synchronous Request/Response message exchange pattern over HTTP is supported. One way HTTP invocations using the 201 and 202 status codes are also supported.

Q: Why does Membrane ESB only support the HTTP protocol?
A: Because HTTP is the protocol for REST resources and is the main protocol for SOAP based Web Services. The focus on HTTP allows to use optimizations that gives Membrane ESB an outstanding performance.

Q: Is Membrane ESB really an ESB?
A: An ESB typically provides a reliable bus and provides adaptors for a buch of protokolls. Membrane ESB has no reliable bus and the only supported protocol is HTTP. By these criteria Membrane is not an ESB. During ESB consulting we worked in a lot of projects where HTTP was used in more than 90% of the time and most services invocations were synchronous. So we developed an ESB that provides only HTTP transport but all the other features of an ESB like support for EAI patterns, service monitoring and provisioning. So a better name would be Membrane (E)SB or synchronous ESB or Highspeed ESB.

4. Security

Q: Can Membrane ESB be used as SOAP Firewall?
A: Yes. Place Membrane inside your DMZ. Then configure a service proxy to forward HTTP and SOAP requests from the outside to an internal server. How to do that is described in the firewall tutorial.

5. Performance

Q: How big is the Time Delay caused by the ESB?
A: It depends on the configuration and what the ESB should do with the messages. Used as a simple Router, Membrane has a latency that is lower than 1 ms (3 KByte message size on a Pentium Centrino Notebook).

6. Development

Q: Where do I find the source code?
A: On our subversion server.

7. Troubleshooting

Q: The ESB keeps crashing after consuming all available memory. Is this a bug?
A: Membrane ESB cannot detect circular requests. The ESB calling itself over and over again floods the memory with requests that cannot be completed. Make sure that no service proxy accidentally routes calls to itself.