JEE(G) Enterprise Service Bus
Welcome to jee(G)ESB!
Now a days SOA is puzzle word in Enterprise application development. SOA's basics is Web Services. SOA can achive by Webservice Orchestration.
Jee(G)ESB is an JAVA Enterprise Service Bus will do Webservice Orchestration by simple xml configuration. jee(G)ESB will do routing the (SOAP)Webservices by simple XML configuration without complex code.
Jee(G)ESB will act as Middleware in a Java Enterprise Application. This will do only routing the Webservices with respect to our configuration. This will not involve in creating Webservices, creating Webservices is everyone wish.
To use Jee(G)ESB, user(s) should know how to write XPath & Xquery and basic xml knowledge. Also they should know creating & deploy a Java Webservice.
- create a Proxy Webservice (We used XFire)
- Include the jar files(jeeEsb1.0.jar & schema.jar) into WEB-INF/lib
- From Webservice Implementation class call jeeESB
SimpleEsb esb = new SimpleEsb("jeeEsb.xml");
String result = esb.execute(request); //request is XmlObject
parse the result into XmlObject and then return from Webservice.
for sample configuration see jeeEsb.xml
<Esb xmlns="http://www.jeeva.com/Esb">
<services>
<BusinessService>
<serviceName>FooService</serviceName>
<serviceAddress>http://localhost:8080/simpleESB/foo</serviceAddress>
<servicePortName>FooServiceSoap</servicePortName>
<serviceNamespace>http://www.openuri.org/</serviceNamespace>
<routingAlgorithm>round-robin</routingAlgorithm>
</BusinessService>
</services>
<router>
<IfCondition>
<condition>declare namespace env='http://www.jeeva.org/Envelope'$this/env:EaiEnvelope/env:Service=foo</condition> <IfData>
<condition>declare namespace xg='http://www.jeeva.org/Envelope'; declare namespace cus='http://com.foo.jeeva/Foo'$this/xg:EaiEnvelope/xg:Payload/cus:Foo/cus:Request/cus:Operation_Name=sayHello</condition> <servicecall>
<serviceName>FooService</serviceName>
<operationName>sayHello</operationName>
<input>declare namespace xg='http://www.jeeva.org/Envelope'$this/xg:EaiEnvelope/xg:Payload</input>
</servicecall>
</IfData>
</IfCondition>
</router>
</Esb>
Features
- Load Balancer for Business services. So we can pass more than one URL for our Business Services
- Logging enabaled for ESB
- GUI editor for Configuration XML in Web Browser.
We can easily ADD or UPDATE services and routing functions, without stop & start Server
Note:
jeeESB1.0 Beta has released
Please try this and give me comments.
To download please click here: https://jeeesb.dev.java.net/
Thanks,
Jeeva P
