Secure your backend services using Basic Authentication or Digest Authentication over HTTP or HTTPS with a Proxy service deployed on the UltraESB. The credentials are verified using any Spring Security based authentication providers - including in-memory, Database, LDAP etc. The article presents the ready-to-run Sample #110 of the UltraESB that demonstrates many scenarios to secure, and to invoke secured services! The highlight of the article is a proxy service that could be used to authenticate into Amazon S3 using its REST API. A follow up article will soon demonstrate how a fixed-length COBOL file is polled from a directory or sftp, ftp/s, converted into XML and uploaded into a S3 location.. keep tuned!
HTTP Basic, Digest and Amazon S3 REST authentication
Sunday, May 30, 2010
Tuesday, May 18, 2010
Enterprise Service Bus UltraESB challenges open source and commercial equivalents on performance and ease of use
Singapore - May 17, 2010 - AdroitLogic Private Ltd. announced today the general availability of its high performance Enterprise Service Bus (ESB) UltraESB, available free of charge for perpetual and unlimited production use. AdroitLogic also launched a website dedicated to ESB performance testing - http://esbperformance.org, that hosts a benchmark used by multiple ESB vendors since June 2007.
The UltraESB utilizes Zero-copy proxying of messages using Non-Blocking IO, to scale and support extremely high numbers of concurrent connections over HTTP/S. By moving away from a canonical message format, the UltraESB natively supports multiple types of payloads over transports such as HTTP/S, JMS, File, S/FTP, FTPS, MLLP/S, TCP/S and Email (POP,IMAP,SMTP). In addition, it can act as a B2B AS2 (Applicability Statement 2) connector to integrate backend systems securely with trading partners over the Internet, and as a Health Level 7 (HL7) systems integrator over multiple transports. By developing a custom WS-Security implementation, it offers much better performance when used as a WS-Security gateway than solutions based on the WSS4J/Rampart libraries. Fully supporting REST, SOAP, JSON, XML, Binary, Hessian, EDI, Text, HTML etc as payloads, the UltraESB ships with a load of ready-to-run samples, tools & documentation and bundles everything into a download of 30MB. The UltraESB can be deployed standalone or over a JEE application server, and supports both JTA XA and local transactions - including suspend and resume - even asynchronously.
The UltraESB is configured with an XML file that allows mediation code to be written as Java or [JSR 233] scripting language (e.g. Javascript, Groovy, Ruby..) snippets. Mediation can also be written as Java classes, or POJOs without depending on any specific interfaces. The UltraESB does not require the user to learn a new programming or configuration language; or compile-bundle-and-deploy artifacts for configuration changes. The configuration could be performed with an IDE of the users' choice that supports intelligent context aware auto completion, and allows step-through-debugging and unit testing to ensure quality. The UltraESB supports JMX management and reporting with any JMX console, and could even be used as a high performance load balancer in front of Tomcat instances etc to provide sticky loadbalancing and failover.
About AdroitLogic
AdroitLogic Private Ltd. is a privately owned, innovative technology company based in Singapore. AdroitLogic believes in working closely with real enterprise users of its software, and thus invites them to participate in defining its road map, schedule, features & releases. Becoming a parter with AdroitLogic, offers users access to its source code.
The UltraESB utilizes Zero-copy proxying of messages using Non-Blocking IO, to scale and support extremely high numbers of concurrent connections over HTTP/S. By moving away from a canonical message format, the UltraESB natively supports multiple types of payloads over transports such as HTTP/S, JMS, File, S/FTP, FTPS, MLLP/S, TCP/S and Email (POP,IMAP,SMTP). In addition, it can act as a B2B AS2 (Applicability Statement 2) connector to integrate backend systems securely with trading partners over the Internet, and as a Health Level 7 (HL7) systems integrator over multiple transports. By developing a custom WS-Security implementation, it offers much better performance when used as a WS-Security gateway than solutions based on the WSS4J/Rampart libraries. Fully supporting REST, SOAP, JSON, XML, Binary, Hessian, EDI, Text, HTML etc as payloads, the UltraESB ships with a load of ready-to-run samples, tools & documentation and bundles everything into a download of 30MB. The UltraESB can be deployed standalone or over a JEE application server, and supports both JTA XA and local transactions - including suspend and resume - even asynchronously.
The UltraESB is configured with an XML file that allows mediation code to be written as Java or [JSR 233] scripting language (e.g. Javascript, Groovy, Ruby..) snippets. Mediation can also be written as Java classes, or POJOs without depending on any specific interfaces. The UltraESB does not require the user to learn a new programming or configuration language; or compile-bundle-and-deploy artifacts for configuration changes. The configuration could be performed with an IDE of the users' choice that supports intelligent context aware auto completion, and allows step-through-debugging and unit testing to ensure quality. The UltraESB supports JMX management and reporting with any JMX console, and could even be used as a high performance load balancer in front of Tomcat instances etc to provide sticky loadbalancing and failover.
About AdroitLogic
AdroitLogic Private Ltd. is a privately owned, innovative technology company based in Singapore. AdroitLogic believes in working closely with real enterprise users of its software, and thus invites them to participate in defining its road map, schedule, features & releases. Becoming a parter with AdroitLogic, offers users access to its source code.
Saturday, May 15, 2010
ESB Performance site http://esbperformance.org launched..
The Enterprise Service Bus [ESB] Performance site is now live, and hosts information about the ESB Performance Test Framework and the ESB Performance Test Suite available free of charge to benchmark the performance of different ESBs.
Along with this launch, AdroitLogic also released the Amazon EC2 AMI "ami-8bb158e2", which includes the UltraESB distribution that includes the ESB Performance Test Suite ready-to-run on the cloud.
By running the benchmark locally, or on an EC2 node, one can easily compare ESBs from many vendors. Since the ESB Performance Test Framework is configured to run on the local interfaces, network isolation will not affect the results, and one can be certain that each ESB benchmarked was tested under identical conditions on the exact same hardware - for a true apples-to-apples comparison.
AdroitLogic will be happy to provide support free of charge on using the test framework and suite, and would welcome suggestions for improvement.
Along with this launch, AdroitLogic also released the Amazon EC2 AMI "ami-8bb158e2", which includes the UltraESB distribution that includes the ESB Performance Test Suite ready-to-run on the cloud.
By running the benchmark locally, or on an EC2 node, one can easily compare ESBs from many vendors. Since the ESB Performance Test Framework is configured to run on the local interfaces, network isolation will not affect the results, and one can be certain that each ESB benchmarked was tested under identical conditions on the exact same hardware - for a true apples-to-apples comparison.
AdroitLogic will be happy to provide support free of charge on using the test framework and suite, and would welcome suggestions for improvement.
Labels:
benchmark,
esb performance
Monday, May 3, 2010
Transactional ESB use cases made simple with the UltraESB
The UltraESB provides excellent support for JTA XA transactions as well as JMS/Database local transactions, and this example shows a JTA XA transaction and a local transaction being used in the same message flow, with a JTA suspend and resume - from a different thread! The article can be compared with similar examples from JBoss ESB and the WSO2 ESB, and the ease of use and the flexibility of the UltraESB clearly seen.
The complete configuration required for this example, is less than a page of text, and does not contain hidden source code, classes, or bundles to build and deploy etc.. just edit the configuration and run!
Transactional ESB use cases made simple with the UltraESB
The complete configuration required for this example, is less than a page of text, and does not contain hidden source code, classes, or bundles to build and deploy etc.. just edit the configuration and run!
Transactional ESB use cases made simple with the UltraESB
Labels:
asynchronous,
jms,
jta,
resume,
soap,
suspend,
transaction,
xa
Monday, April 26, 2010
Message aggregation with Streaming!
We've just published an article about two of the samples that ships with the UltraESB on advanced message cloning and aggregation with streaming. This was triggered by a real user who was attempting to write this logic on their own, as most - if not all - ESBs did not support it a month back!
We've taken the challenge and delivered the first results within a few days, supporting streaming. Then we developed support for timeouts and completion of partial responses as well all within a couple of weeks.
Read the complete article here
The complete samples (i.e. sample #211 and #212) now ships with the UltraESB, and the ToolBox GUI can be used easily to test these in 5 minutes. The UltraESB also ships JUnitPerf unit tests to load test these examples along with the source for users to play and extend them.
Brief introduction to the scenario
I would like to challenge any other Open source or Commercial ESB vendor to try to simulate this scenario too and share a link!
We've taken the challenge and delivered the first results within a few days, supporting streaming. Then we developed support for timeouts and completion of partial responses as well all within a couple of weeks.
Read the complete article here
The complete samples (i.e. sample #211 and #212) now ships with the UltraESB, and the ToolBox GUI can be used easily to test these in 5 minutes. The UltraESB also ships JUnitPerf unit tests to load test these examples along with the source for users to play and extend them.
Brief introduction to the scenario
The scenario simulates multiple concurrent users issuing JSON requests of the form given below, with a request to multiply two variables v1 and v2, along with a text message:
{ "message" : "hello world, I am client N!", "v1" : 100, "v2" : 300}There are three backend service endpoints servicing such JSON requests, but each expecting a slightly different message format. Thus each such message by a user must be cloned and transformed into a format suitable to each destination backend systems In this example, the format expected by the backend services are:
{ "prefix_for_Server " : "Hello Server - hello world, I am client N!", "v1" : 100, "v2" : 300} Each backend JSON service responds to such a request within a random delay of 1200ms as follows, adding a "result" as v1 * v2:
{ "prefix_for_Server " : "Welcome to Server ", "v1" : 100, "v2" : 300, "result", 30000} These responses now needs to be aggregated and sent back to the client as one single message, where each <part i> for i=1,2,3 denotes a response as shown above.
{ "merged": [ <part 1>, <part 2 >, <part 3 > ]} I would like to challenge any other Open source or Commercial ESB vendor to try to simulate this scenario too and share a link!
Monday, April 19, 2010
Using the UltraESB to proxy and load balance requests to Tomcat
Here is a complete article that describes how the UltraESB can be used to proxy requests between multiple Tomcat instances with load balancing and fail-over using sticky sessions. The mediation.getJvmRoute() API call makes it simple to query the Tomcat jvmRoute when using a JSESSIONID cookie or a jsessionid path segment. This value can then be used to load balance with fail-over between multiple instances of Tomcat.
http://bit.ly/aZL4sU
http://bit.ly/aZL4sU
Labels:
fail-over,
load balancing,
mod_jk,
sticky sessions,
tomcat
Wednesday, April 7, 2010
Replacing an F5 and its iRules with the UltraESB
A user will soon be replacing an F5 Big IP with the UltraESB by re-writing the iRules as mediation logic. This creates a proxy service that will intercept all requests using the url pattern "*", and then use cookies for routing into two backend server pools where the load is split between two federated groups. This incidentally allows them to also replace Apache servers used to front the Tomcat servers.
The complete configuration used is along the lines of the following;
<u:proxy id="web-proxy">
<u:transport id="http-8280">
<u:property name="url" value="*"/>
</u:transport>
<u:target>
<u:inSequence>
<u:java><![CDATA[
String pool = mediation.getCookie(msg, "POOL");
if ("TWO".equals(pool)) {
mediation.sendToEndpoint(msg, "ep2");
} else {
mediation.sendToEndpoint(msg, "ep1");
}
]]></u:java>
</u:inSequence>
<u:outDestination>
<u:address type="response"/>
</u:outDestination>
</u:target>
</u:proxy>
The complete configuration used is along the lines of the following;
<u:proxy id="web-proxy">
<u:transport id="http-8280">
<u:property name="url" value="*"/>
</u:transport>
<u:target>
<u:inSequence>
<u:java><![CDATA[
String pool = mediation.getCookie(msg, "POOL");
if ("TWO".equals(pool)) {
mediation.sendToEndpoint(msg, "ep2");
} else {
mediation.sendToEndpoint(msg, "ep1");
}
]]></u:java>
</u:inSequence>
<u:outDestination>
<u:address type="response"/>
</u:outDestination>
</u:target>
</u:proxy>
Labels:
F5,
iRules,
load balancing,
ultraesb
Subscribe to:
Posts (Atom)
