Friday, October 29, 2010
Thursday, October 7, 2010
You Can't Sacrifice Partition Tolerance?
There is a very nice post on http://codahale.com/you-cant-sacrifice-partition-tolerance/.
One complications to that argument is replication implemented with group communication, which is a reasonable approximation to a system with both availability and consistency. (Just thinking aloud, as these stuff needs lots of thinking to be sure). Now what happen in group communication is that if a node fails, it creates a new group excluding failed node, and although the system operation has to wait till new group is defined (rather repair the existing node ), after the repair, things will work fine given that you have enough replicas left. So does group communication contradict or works around above assertion?
One complications to that argument is replication implemented with group communication, which is a reasonable approximation to a system with both availability and consistency. (Just thinking aloud, as these stuff needs lots of thinking to be sure). Now what happen in group communication is that if a node fails, it creates a new group excluding failed node, and although the system operation has to wait till new group is defined (rather repair the existing node ), after the repair, things will work fine given that you have enough replicas left. So does group communication contradict or works around above assertion?
Wednesday, October 6, 2010
NBQSA 2010 - Overall Gold award goes to WSO2 ESB
Copied from Ruwan's Blog, NBQSA 2010 - Overall Gold award goes to WSO2 ESB: "

They had only 2 awards on that category and one Bronze and a Gold. When it is announced that WSO2 DS as the bronze award I knew that ESB is getting the Gold award. I was not that excited, to be frank, I sort of knew that we are going to get it on our category :-) I was expecting the overall gold award. ;-)


"
NBQSA (National Best Quality Software Award) is an annual award ceremony held in Sri Lanka to evaluate and award the Software developedin the country. This is hosted by BCSSL (British Computer Society - Sri Lanka)
WSO2 marketing team decided to submit 3 of our products to this award evaluation, it was just few days we had to prepare for this presentation. I initially objected to submitting WSO2 ESB (the product that I am responsible of in WSO2) for this so quickly, as my intention was to win the first price if we are to submit. Kushlani from our marketing team together with Asanka has been driving this and motivated us a lot to submit for this.
Well, we spent few hours and Miyuru, Kasun and few others get together with me and prepared a plan to execute with a presentation script and demonstration. Miyuru did the first round

presentation and we got through to the second round easily. Hiranya took it over and we delivered the second presentation, to which we got a very good response from the judges.
Then, we were waiting to see the results and we had to app
arently wait till, day before yesterday (1st of October 2010) for that.
From WSo2 8 of us got invited and we all went on time with a lot of enthusiasm as all 3 of our products were on the wining cycle. The award ceremony got started and the first
to get an award from the 3 products was the WSO2 Gadget Server which got the Silver award under the RnD software category.Then I was so waiting till the Infrastructure and Tools category to be awarded since both the WSO2 Data Services and WSO2 ESB was on that category.
They had only 2 awards on that category and one Bronze and a Gold. When it is announced that WSO2 DS as the bronze award I knew that ESB is getting the Gold award. I was not that excited, to be frank, I sort of knew that we are going to get it on our category :-) I was expecting the overall gold award. ;-)Then they came to announcing the final overall awards, before which they have given out some special awards, but ESB was no where on those special awards. I was waitin
g and waiting and waiting... so does all of us from WSO2.Finally they have announced the Bronze and Silver awards and those are the folks who won some special awards and I was 90% sure about my expectation now. And they finally announced WSo2 ESB as the Overall Gold winner at NBQSA 2010. I was so excited to accept the best award on that ceremony as the product manager of WSO2 ESB. I got down from the stage holding the most valuable award of the nite as the most proud man on that nite, though I must say that this price is for the whole WSO2 team including the past members of our team.
All of us who participated for the event from Left, Samisa, Asanka, Kushlani, Miyuru (holding the Gadget Server silver award), Me (holding the overall gold for ESB), Hiranya (holding the ESB Gold award on Infrastructure and Tools category), Sumedha (holding Data Service Server bronze award) and Azeez.
Now we are about to head towards APICTA in next week at Malaysia, Kuala Lumpur. Will update on that as well. :-)
Monday, September 20, 2010
Saturday, September 18, 2010
Zero Copy pass through in WSO2 ESB
There have been some confusion on Zero Copy pass through scenario (we call that Binary Relay) implementation at WSO2 ESB. Let me try to clarify that.
To implement Binary Relay, we use Axis2 architecture. Axis2 works only with SOAPEnvelope as the input to its pipeline, but users can add Formatters and builders against different content types. Job of a Builder is to build a SOAP envelope from anything (e.g. HTTP SOAP Message, from fast XML, from Jason message etc.) and pass it in to Axis2 pipeline, and job of a Formatter is to take a envelope and write it out in any expected form (write it as a text message, to fast XML, to Jason message etc).
To implement Binary Relay, we wrote a builder, that takes the input stream and and hides it inside a fake SOAP message without reading it, and wrote a formatter that takes the input stream and writes it directly to a output stream. (of course, we take a small buffer and use that to move data between two streams).
Now if you want to understand how it works, best way is to look at the code.
When you look at the code, it is important to note following. Pass through works only if no one access the content of the message. However, there are many cases where user wants to cache (e.g. logging or any other intermediate use), and we detect that and handles it. If you look at BinaryRelayBuilder.java, you will see that we create a DataHandler, hides the input stream inside the DataHandler, and passes it in. To understand how we stream the data, you should look StreamingOnRequestDataSource.java. There, if that is the last use, we just take the input stream and stream it.
If you just look at BinaryRelayBuilder.java, readAllFromInputSteam(..) method can be misleading, and the real code that does the streaming is at StreamingOnRequestDataSource.java. We do cache. But that is ONLY IF something tried to access the SOAP body, and if nothing reads the SOAP body, it is zero copy, as we pass over the input stream as it is to next code.
To implement Binary Relay, we wrote a builder, that takes the input stream and and hides it inside a fake SOAP message without reading it, and wrote a formatter that takes the input stream and writes it directly to a output stream. (of course, we take a small buffer and use that to move data between two streams).
Now if you want to understand how it works, best way is to look at the code.
When you look at the code, it is important to note following. Pass through works only if no one access the content of the message. However, there are many cases where user wants to cache (e.g. logging or any other intermediate use), and we detect that and handles it. If you look at BinaryRelayBuilder.java, you will see that we create a DataHandler, hides the input stream inside the DataHandler, and passes it in. To understand how we stream the data, you should look StreamingOnRequestDataSource.java. There, if that is the last use, we just take the input stream and stream it.
If you just look at BinaryRelayBuilder.java, readAllFromInputSteam(..) method can be misleading, and the real code that does the streaming is at StreamingOnRequestDataSource.java. We do cache. But that is ONLY IF something tried to access the SOAP body, and if nothing reads the SOAP body, it is zero copy, as we pass over the input stream as it is to next code.
Sunday, September 12, 2010
WSO2 Con Tomorrow
First WSO2 Con will be starting tomorrow, and to make things better, this is also our 5th year celebration. Refer to Sanjiva's blog to find out more about the topic. There is lot to say, but I am going to put that off for later. Let me just say that in my opinion, what we have done so far is nothing compared to the potential of next five years to come.
I will be doing a session on Doing Enterprise Business with Processes and Rules, and the abstract of the talk is given below.
Business logic describes how a business functions and how it would react to the different conditions arise within the organizations and market. They are typically carefully developed and refined, and often holds the competitive advantage of an organization. Ability to keep track and change the business logic in response to changing conditions is an invaluable assert to any agile organizations. In this talk, Srinath Perera presents Business Processes and Business Rules, which are two alternative approaches to represent and manage business logic instead of embedding them within programming logic and discuss when each of these three modes should be used within the enterprise.
I will be doing a session on Doing Enterprise Business with Processes and Rules, and the abstract of the talk is given below.
Business logic describes how a business functions and how it would react to the different conditions arise within the organizations and market. They are typically carefully developed and refined, and often holds the competitive advantage of an organization. Ability to keep track and change the business logic in response to changing conditions is an invaluable assert to any agile organizations. In this talk, Srinath Perera presents Business Processes and Business Rules, which are two alternative approaches to represent and manage business logic instead of embedding them within programming logic and discuss when each of these three modes should be used within the enterprise.
Friday, July 23, 2010
Multi-Tenant SOA Middleware for Cloud Computing
Following are the slides for my talk on WSO2 carbon multi-tenancy architecture at Cloud 2010, two weeks back. The paper describes the WSO2 Statos multi-tenancy Architecture .
Multi-Tenant SOA Middleware for Cloud Computing
The full paper can be found here. The citation of the paper is given below.
Afkham Azeez, Srinath Perera, Dimuthu Gamage, Ruwan Linton, Prabath Siriwardana, Dimuthu Leelaratne, Sanjiva Weerawarana, Paul Fremantle, "Multi-Tenant SOA Middleware for Cloud Computing" 3rd International Conference on Cloud Computing, Florida, 2010.Abstract
Enterprise IT infrastructure incurs many costs ranging from hardware costs and software licenses/maintenance costs to the costs of monitoring, managing, and maintaining IT infrastructure. The recent advent of cloud computing offers some tangible prospects of reducing some of those costs; however, abstractions provided by cloud computing are often inadequate to provide major cost savings across the IT infrastructure life-cycle. Multi-tenancy, which allows a single application to emulate multiple application instances, has been proposed as a solution to this problem. By sharing one application across many tenants, multi-tenancy attempts to replace many small application instances with one or few large instances thus bringing down the overall cost of IT infrastructure. In this paper, we present an architecture for achieving multi-tenancy at the SOA level, which enables users to run their services and other SOA artifacts in a multi-tenant SOA framework as well as provides an environment to build multi-tenant applications. We discuss architecture, design decisions, and problems encountered, together with potential solutions when applicable. Primary contributions of this paper are motivating multitenancy, and the design and implementation of a multitenant SOA platform which allows users to run their current applications in a multi-tenant environment with minimal or no modifications.
Multi-Tenant SOA Middleware for Cloud Computing
The full paper can be found here. The citation of the paper is given below.
Afkham Azeez, Srinath Perera, Dimuthu Gamage, Ruwan Linton, Prabath Siriwardana, Dimuthu Leelaratne, Sanjiva Weerawarana, Paul Fremantle, "Multi-Tenant SOA Middleware for Cloud Computing" 3rd International Conference on Cloud Computing, Florida, 2010.
Enterprise IT infrastructure incurs many costs ranging from hardware costs and software licenses/maintenance costs to the costs of monitoring, managing, and maintaining IT infrastructure. The recent advent of cloud computing offers some tangible prospects of reducing some of those costs; however, abstractions provided by cloud computing are often inadequate to provide major cost savings across the IT infrastructure life-cycle. Multi-tenancy, which allows a single application to emulate multiple application instances, has been proposed as a solution to this problem. By sharing one application across many tenants, multi-tenancy attempts to replace many small application instances with one or few large instances thus bringing down the overall cost of IT infrastructure. In this paper, we present an architecture for achieving multi-tenancy at the SOA level, which enables users to run their services and other SOA artifacts in a multi-tenant SOA framework as well as provides an environment to build multi-tenant applications. We discuss architecture, design decisions, and problems encountered, together with potential solutions when applicable. Primary contributions of this paper are motivating multitenancy, and the design and implementation of a multitenant SOA platform which allows users to run their current applications in a multi-tenant environment with minimal or no modifications.
Subscribe to:
Posts (Atom)