If you've ever wondered how we build the worlds best Free and Open Source ESB, in terms of performance, features and ease of use; then read about it all on Thanking great Open Source projects and teams!
To build the best Open Source ESB, we *had* to select; and only depend on; the best Open Source components - and not the old cupboards or the stinking kitchen sinks, that some vendors cannot yet entangle themselves from!
Did I mentioned that our complete distribution is just ~35MB? Compare it to some others who call 135MB upto ~1G ESB's as light. I guess after putting lipstick on the Pig, they now like to call it "light-weight" like a damsel too ;) But sadly, some are still stuck in the days of hub-and-spoke messaging, and some made the whole world around them too SOAPy and slippery too soon as they didn't take enough REST at the right time.
Being the youngest ESB in town, and to Win! - we had no choice but to select the best technologies and open source projects that we would depend on and use.
Introducing true Zero-Copy proxying, with memory mapped files and Non-Blocking IO was killer in performance. Some even tried to copy the keywords without implementing the code, and even without understanding what Zero-Copy was :)
We also introduced the concept of using Java (classes or just fragments) or any JSR 223 scripting language (such as Javascript, Groovy, Ruby) for mediation. Although many vendors falsely claim that their ESB is "configuration" only - the configuration language they use is no different from a programming language. However, someone new must learn that "XML"ish language to "program business logic" - and no one is going to tell him the equivalent of a try {} catch {} finally block that can be reliably used in that context :)
Our approach was to let the user decide the way he is going to mediate, using a language and/or technologies he is already aware of. But unlike some ESBs where you write Java code, then use some script to compile, bundle and deploy - the UltraESB just requires you to write the lines - and the compilation is hidden! You can even debug your mediation from within your favourite IDE - either IDEA, Eclipse or Netbeans.
When we wanted to introduce clustering almost an year back, we looked at Apache ZooKeeper and knew at first sight that it was the right one for us - call it link at first sight ;) !
Selecting a UI framework was the most time consuming.. and we looked at GWT based, and other frameworks, based on the servlet model but did not find the right balance. We wanted to use the best of HTML5/CSS3 and be in control always.
The combination of HTML5/CSS3/JQuery/datatables - connected via JSON using Pure - to a Wink REST application secured by Shiro and implemented via JMX with direct calls to the remote ESB was one of the main introductions in this last release! But it was all worth it! Except for a few issues on the IE browser (which statistically a lot fewer people use now) everything has been smooth. But we will follow up a 1.4.1 release with these fixes for IE too.
Showing posts with label zero copy. Show all posts
Showing posts with label zero copy. Show all posts
Friday, May 6, 2011
Tuesday, September 14, 2010
WSO2 falsely claims support for Zero copy
A few minutes ago, Asanka Abeysinghe the Director of Solutions Architecture of WSO2 claimed that the WSO2 ESB supports "Zero Copy", at the WSO2Con held in Colombo, 14th September 2010
However, this statement is false, and can be easily proved by just looking at the implementation source code of the BinaryRelayBuilder, which copies the complete input stream into a byte[] in Heap memory via traditional CPU copying into user space.
In-fact, when WSO2 announced this "Binary Relay" in December 2009, even the author of this "feature" did not state that its anything near "Zero Copy". Even a search on Google for WSO2 and Zero copy returns no results!
"Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another." - Wikipedia
The AdroitLogic UltraESB is the FIRST and still the ONLY Open Source ESB (or most possibly "the only ESB") that supports True Zero-Copy proxying.
Thats why its the fastest ESB out there!
However, this statement is false, and can be easily proved by just looking at the implementation source code of the BinaryRelayBuilder, which copies the complete input stream into a byte[] in Heap memory via traditional CPU copying into user space.
In-fact, when WSO2 announced this "Binary Relay" in December 2009, even the author of this "feature" did not state that its anything near "Zero Copy". Even a search on Google for WSO2 and Zero copy returns no results!
"Zero-copy" describes computer operations in which the CPU does not perform the task of copying data from one memory area to another." - Wikipedia
The AdroitLogic UltraESB is the FIRST and still the ONLY Open Source ESB (or most possibly "the only ESB") that supports True Zero-Copy proxying.
Thats why its the fastest ESB out there!
Labels:
ESB,
Performance,
WSO2,
zero copy
Subscribe to:
Posts (Atom)
