Creativeapril - Fotolia
For 10 years, application performance solution provider Alachisoft has catered to the .NET community with its NCache, an in-memory computing and data grid product for N-Tier and grid computing .NET applications. But while Alachisoft -- based in San Ramon, Calif. -- is a recognized player in the .NET field, not as many organizations know that the company has moved over to the Java side of things with its new, elastic in-memory data grid, TayzGrid. The new product is based 100% on JCache APIs, despite the fact that it was converted directly from the company's NCache offering.
At this year's JavaOne conference in San Francisco, SearchSOA got a chance to talk with Iqbal Khan, president of Alachisoft, about how and why he decided to make the move into Java after so many years in the .NET space.
Why did you want to make the move into Java?
Iqbal Khan: We understand the scalability, the in-memory computing and in-memory data grid space very well, but we've been focused on the .NET space. But .NET is probably 20 to 30% of the overall market share, and 70% of the market share is in Java.
We made an effort initially to just provide a Java API to our NCache. But people did not like a .NET-based, in-memory data grid in their stack. They wanted a native Java stack, so we took the entire NCache C# code and translated into Java. We went through a whole year of effort just converting NCache into TayzGrid.
Do you find that there are any additional challenges working with Java as opposed to .NET?
Khan: Actually, no. Java is a beautiful language. We used to be a consulting company prior to becoming a product company, and as a consulting company we did work both in Java and .NET, so that's what allowed us to very easily make this move.
And Java, of course, is a proven server side technology. That's why it's more popular than .NET. I mean, .NET is also great, and that's where we've been for the last 10 years. C# is also great. But Java is equally good or better if you just see the overall penetration of the market.
What kind of expertise is required on the company side in order to use your product?
Khan: Actually, the company that uses our product already has Java expertise because they develop high traffic, high transaction applications with it. They have already got the expertise about whatever their favorite container is, whether that's Tomcat, JBoss, WebLogic or WebSphere or anybody else.
What I found, unlike .NET -- where customers have to be educated more about what in-memory data grid is -- on the Java side, the level of awareness is much higher. The JCache standard has also helped because since there is a standard, people need to only learn one API. Once they do that, plugging in another vendor is very, very easy.
How have you incorporated the use of microservices or container technologies into your work?
Khan: So, the containers and the microservices are the application tier, so the client portion of our product is the API, the JAR files, they can work in all those environments. But we are essentially an in-memory database ... so we will live on our own [Java virtual machine], which will typically not be in any of the containers.
We are our own container on a separate [virtual machine] because it's easier to deploy that way and make the application tier totally stateless, so no data is kept on the application tier and all the data is either kept in the database or is kept in this in-memory data grid.
This deployment strategy makes life a lot easier because you can bring down any of the application servers to upgrade for maintenance and not lose any sessions, any data, any "anything" because the data is stateless.
Are you open sourced?
Khan: Yes, we're open sourced, so there's a free part. There are no limitations on the number of nodes, and it's not an open source for non-commercial only -- it's an Apache 2.0 license.
Seven tips to becoming a "Zen master" of Java development
Examining the pros and cons of an in-memory database management system