Vice President of Development in Oracle's Fusion Middleware group
Cameron Purdy is a Vice President of Development in Oracle's Fusion Middleware group. He was the founder, president and CEO of Tangosol and has over ten years of experience with Java and Java-related technology. As a software visionary and industry leader, Mr. Purdy has received a number of awards in recognition of his contribution to the Java community. He regularly participates in industry standards development and is the specification lead for JSR 107 (jCache).
Joseph: So, Cameron Purdy. We have never met you before but can you tell us a little bit about yourself and what are you doing here at JavaOne and what sort of things your company has been doing recently?
Cameron Purdy: Well, Joseph. I am…
Joseph: Call me Al.
Cameron Purdy: I am very upset that you do not remember last night. We did meet at the party, the Tangosol party at JavaOne. So, Cameron Purdy, I am the CEO of Tangosol for another three weeks until I take a demotion at Oracle and become a VP running the Coherence product group and we were acquired by Oracle earlier this year and we are in the Fusion Middleware Division. So, basically, Coherence becomes a product now offered by Oracle and continues to be a standalone product and will also probably be integrated into a number of other Oracle products as well.
Joseph: So, let us start off like from the very beginning, because some of our members might not know what Coherence does. So what is Coherence? I mean, Enterprise HashMap, cache what?
Cameron Purdy: Well, Coherence is a clustering software for information. So, it takes the data that your application is actually using so you can use it as a cache, for example, to load information into memory and in a clustered environment where you have lots of servers. All those servers have access to that information. It is what we call a single-system image. So this concept that regardless of how many servers you have or how the information is actually organized by those servers, all the information is always available to all the servers all the time and it looks the same across all the servers, which is coherent caching, which is why we call it Coherence. That is like the very basic level of functionality that we provide and then on top of that, there is what we call data grid functionality. Data grid takes the ability to manage this information, manage it transactionally, consistently, reliably. So, add servers at load bouncers, you kill a server you do not lose any information but it adds to it, the ability to actually distribute processing across that information and across so you can do parallel searches, queries, aggregations, calculations, analysis, transactions, processing, etc. So, you have the ability to use the entire grid infrastructure as just a giant pool of information management, both for actually holding on to the information and making it available but also for processing it, manipulating it and searching it, etc.
Joseph: Okay. So, we have this data cache, putting it very, very simply, how is that different from say, a JavaSpaces grid. You get a lot of the same capability out of that but what differentiates you from literally a JavaSpace?
Cameron Purdy: Well, JavaSpace itself is an API. So, it does not necessarily dictate an implementation. There are commercial implementations. There is open source implementations. A good friend of mine, Dan Creswell, wrote Blitz, an open source implementation for JavaSpace. For example, JavaSpaces are based on a client/server model. So, regardless of the actual implementation, the concept is that there is a server whether it is in process, out of process does not matter. There is service being provided. The service manages data, makes it available through a space API and we have had customers that have put space APIs on top of our software. It is relatively easy to do. What you cannot do is build Coherence on top of spaces. What Coherence provides is a finite state machine that is actually spread across any number of servers and so the information, the ability to actually achieve coherency across potentially 1000s of servers requires consensus. In other words, all the servers have to know at all times what the correct value of a particular piece of information is and that is how you achieve coherency in recoverable models, such as the space’s concept is built on, when a server dies, you do not have a concept of consensus across those servers. So the failover, for example, is done by the client. So, you get information consistency if you are trying to do transactions across multiple servers. So even though it has transactions as part of the API, there is nothing actually supporting the concept of consensus and that is what we do that actually no other product can provide in a distributed space.
Joseph: So, when did the transition occur? What started the whole transition to Oracle?
Cameron Purdy: Well, in December, we started receiving some pretty serious offers to buy the company from a number of different organizations and we were evaluating them for some pretty specific criteria. We knew at the time that we had some pretty serious offers on the table and we wanted to make a really good choice and we have employees that have invested years in the company. We have customers who have really just trusted us with amazing responsibility and partners including all the major application server vendors and all other major open source projects and such as... We wanted to make sure that whatever choice we made would be true to the principles of our company, would allow us to take care of our customers, would allow us to continue our partner relationships and also, strategically, we wanted to see the product really thrive so that we take care of the customers that count on us to solve their problems. So, we looked at a whole bunch of attributes and Oracle really rose to the top of that and part of the reason why is that the group that we’re going into, the Middleware Division under Thomas Kurian, who actually spoke today the keynote of JavaOne, the Division is extremely well run. It is got a really common sense approach to building the organization and a very good management team and this management team has messed up acquisitions in the past but they really understood. They looked at what happened and they really built themselves into a position where they know how to bring a company on and make it successful within their organization and so there is nothing simple about an acquisition. There is nothing simple about a transition. It is very difficult and every employee is going to be worried about what is happening and every customer is going to want to know what is going to happen to them and partners are never sure what it means to them, but going into an organization that had a pretty clear strategy and upfront about their desire to see the partnerships thrive and to take care of the customers and to keep every employee, for us this signified that this was the type of organization we are going to be part of so…
Joseph: Well, did you have to sell? Couldn’t you have the option of staying independent?
Cameron Purdy: Well, we did have a choice because we were completely employee owned. So, there were no outside VCs or investor or anything like that, but the offers were serious enough that we could not ignore them.
Joseph: Well, how is the transition going? I know it is not complete yet, but…
Cameron Purdy: It is pretty exciting. I mean it is a big company. So we are learning a lot of things as we go. But there are lot of resources available to us and we are keeping our entire team, the product itself is staying intact and we have a lot of work we have already we have been planning to do for a long time and it is already in progress and we will have to release this summer so we are continuing in a full throttle on the sales side. The product is just doing amazingly well and it looks like we are quadrupling sales so far from last year. It is just an incredible growth rate and then in June, I get 5000 new sales people at Oracle that all want to sell Coherence. So, this is I think really pretty incredible.
Joseph: Well, you mentioned the release this summer, what should we look for in that release?
Cameron Purdy: Well, like a lot of the releases we do, most of the work goes into stuff that no one ever notices. We really go back and shore up the infrastructure at every stage of the product evolution because when you are building a significant piece of infrastructure and one has to sustain critical systems, every small mistake that you made is amplified as the product grows and matures and so, we go back at every stage and we look at how we can improve the product. So, we have customers like Betfair in UK, whose message volume on the background is just incredibly high. They asked us to find a way to reduce the volume of this without actually trading off any quality as a service, which sounds impossible at first but we have some pretty good rocket scientists and so we are doing packet bundling, for example. So, you can dynamically bundle information into different size packets and adjust it dynamically based on the feedback we are getting from the system itself. So, it is a self-tuning system. In fact, worst case scenario, it is the same speed as the previous release. So, there is never yet for it and on the positive side, we can cut the volume of packets sometimes by 8 or 10 so literally in order of magnitude. So, in a system like theirs where they have just massive, massive, massive load on the backbone it makes an incredible difference.
Joseph: Who are the typical customers for Coherence?
Cameron Purdy: Well, most of our revenue for the past couple of years has come from financial services, almost every large bank investment company, etc. They are using Coherence for things like real-time risk, risk management systems or credit derivatoves, pricing, fraud detection, trading systems or the management systems, analytic systems. We are doing things like algo trading, algorithmic-based trading so we run stock exchanges and systems, there are a number of those and so just a lot of, lot of stuff, the bond market. So financial services, they have the benefit of always wanting bigger, more expensive systems, and I think we do a really good job of helping to make them big and expensive, but they are very successful in that industry, Telco as well just because of the needs for real-time information, not losing information, and things like that. They really like when their systems work. So, we have done very well there. Online e-commerce is huge for us, online travel, so reservation systems, flights, all the big services in the US use our software for doing flight stuff and all the backbones for the reservation systems I think they now are using Coherence so we have done very well and it is mainly because what they do needs lots of data and needs it fast. So, they end up always wanting to build a system that gets more data, processes it faster. They want everything at the same time. They want continuous availability. It is like they can never go down and they want always to be making their algorithms more complex and which, of course, needs more information and so the end result, it is a very good match for us because what we do is we basically solve that data bottleneck, we scale out, the information management, and we make it run nonstop.
Joseph: So, you talk about them needing data immediately and needing coherence and consistency in their data. Well, as an Application Programmer, I am going to put on my developer hat, which is kind of dusty right now but how do I see Coherence? You mentioned someone using a space-based API on top of it, do you access it like you would JDBC or the Enterprise HashMap idea or … that it is never going to die but really how do you preserve the API to Coherence?
Cameron Purdy: Well, at the simplest level, we do represent it as key value pairs, which is the basis for the map interface in Java, part of the Java Collections API and so it is a very simple way to think of information where every piece of information that you want to identify, you register based on its identity and so developers know HashMap and HashTable which is where this “Enterprise HashMaps” joke came from, but our API is based on that and it is just as easy to use. So, developers can quite often just yank out a HashTable and throw in a Coherence cache and have their data clustered that they were sticking in it. On the other hand, there are lot of architectural changes that applications often do to take advantage of what we do, for example, to spread out of processing of information across lots of servers. So, while they can spread out the information and keep the same code that it is actually processing it, if they can take the processing, bundling it up as an agent and spreading it out across the information, they can actually get all those servers to process it in parallel. So there are some things that are architectural changes while there are some things that are simply drop-in replacements and it really varies. If you want to take full advantage of what we do, if you want a 1000 servers processing terabytes of information, you are going to build a system a little differently than if you are just caching some inventories or something for an e-commerce site.
Joseph: How does Coherence compare to an in-memory object database?
Cameron Purdy: An in-memory object database, well, it is a tough question because I do not really know of any.
Joseph: Well, let us pretend. Let us just say that we have an object database that persists a tree of information, any kind of hierarchical information.
Cameron Purdy: Okay.
Joseph: Is that appropriate for Coherence or is Coherence really going to be more like literally the key value pair abstraction?
Cameron Purdy: Well, I guess the answer is that you can certainly build trees quite easily, trees of information with Coherence and most of our customers do in one form or another, do that. We are not trying to replace the database though. I mean what we are, is information management, but information management in memory. So the information that we do manage is often found in a database or backed up to a database or persisted to a database and what we do is we make it available across the servers that are actually running the application, not storing the data, and that is where we focus and that is where we excel. So, on the durability side, databases are very good at that and we are not trying to jump in there. If you want to be doing something durable, my new Oracle friends can sell you Oracle Database or Berkeley DB or any of the number of products that they have to do all that stuff but our focus is in-memory high scale, high speed, continuous availability.
Joseph: Well, that is an interesting point that you just brought up. Where does Coherence fit inside the Fusion Middleware stack and how does it integrate? How well does it integrate?
Cameron Purdy: Well, if you think about our typical customers for the past five years, I mean it is WebLogic customers, WebSphere customers, Oracle application server customers, Sun App Server customers, JBoss customers, Tomcat customers running on, sometimes just spraying on a JVM, on the DOS box. So, it is basically anything into Java that you want to manage information across multiple servers. So, if you ask the developer, okay, which one of these things don’t you want? You want to give up reliability or do you want to give up scalability or do you want to give up performance. I mean they can always answer I want all three or if you say, which one of these is not important to you or which one of these would you not worry about? They are going to worry about all of them. They want to worry about them up front in their architecture and so that is what Coherence provides is it kind of takes that worry out because it handles those three things and it handles them not independently, it handles them simultaneously. So, it’s as if all the hard stuff of building a scale of that application. It is bundled up and taken care of and then you have the ability to maximize based on the architecture you choose.
Joseph: Well, how does that fit into Fusion, I mean…?
Cameron Purdy: That is an easy question, how does that fit into Fusion? Which of those Oracle products do not want a scale? Which of those Oracle products do not want to perform? Which of those Oracle products do not need availability? If you have the ability to achieve those things, you are always going to take it. The only question is what does it cost to integrate and what does it cost to deploy and so as an upsell option, a lot of other software companies in the world use our software embedded sometimes as an option. I mean look at Atlassian. They have Confluence Massive, which is the Coherence-enabled version of their wiki and there’s a product from Tibco that uses it. We have, our software is used in a lot of places where they want to achieve these capabilities, sometimes it is an option, sometimes it is just built-in but there is not a lot of products that are sold in the enterprise space where people do not want availability, where they do not want scalability or they do not want performance.
Joseph: Do you expect the tie with Oracle will change some business relationships?
Cameron Purdy: I hope not. I mean it certainly it has caused our partners to wonder what it’s going to look like but we asked point blank during the process of negotiation with Oracle, we said we have customers who compete directly against you and the answer was well, we are used to that. I mean Oracle licenses Berkeley DB to BEA and BEA licenses JRockit to Oracle. I mean so as much as you read in the press about how one company is doing something to another or something, at the end of the day, all these companies are so broad in what they do, their stacks are so large in terms of the software that they provide that they compete with every one and if you compete with everyone, in a way, you do not really compete with any one. So…
Joseph: That is interesting way to look at that because I am not sure that… I think if you compete with everyone, you still compete with every one.
Cameron Purdy: I have lots of interesting ways of looking at things.
Joseph: As long as we are not all up…so what should we expect of Coherence in the next year or two years? What kind of cool things do you have?
Cameron Purdy: I think product wise, the market itself is changing pretty rapidly. We are seeing the adoption is no longer rocket scientists if you will, grabbing it and doing whatever they need to make it successful. We have business level people using it now and large numbers of application developers who are not specialized in distributed programming. We did programming and things like that so our concern is that if a product does not lose sharp edges so to speak. It is a powerful product and any product that is so powerful has areas that are easy to use incorrectly and so when you have taken 1000 machines and plugging them together and using them to do something, you make small choices incorrectly, it can have big repercussions. So our goal is to continue obviously to improve the reliability to software and the scalability to software and all those things, and also to show people how to take effective use of it, to provide better training, to provide better documentation, better examples, and the product itself I think really has to over the next few years, really has to address lot of these things intrinsically. I mean it has to be easier to use in the sense that it has to present the problems and the solutions to the problems to the developer just like they are thinking about them. So, instead of…products often take the approach that they present the solutions in terms of how the product’s built, not in terms of how the developer wants to use it and so internally I refer to is project iPod. I mean it is so easy. I pick up an iPod and I press the button and it just works. Now, enterprise software does not have to be as easy as an iPod but we have to think about how do we design an interface that actually reflects how people want to use it. They do not need 1000 options and if they do need 1000 options, maybe, they do not need all of the 1000 to be on one list that they pick from. You know maybe, 10 is enough and they can always go and dive into the more advanced detail somewhere else. So having those configurations be presented to them in the way that they are thinking about, managing information and the way they are thinking about managing servers and memory, and having the software, everything about it, be selectively monitorable, manageable at runtime, having operations. People have the ability to drill in at any point and see as much information as they need to diagnose a problem or to understand what is occurring under the covers and these are all very hard things to do. We have a lot invested in getting them done and over the next few years, I think you will see surprising amount of capability in those areas.
Joseph: So, you are addressing the whole education aspect where someone comes in and may not know how to approach a problem….
Cameron Purdy: Right.
Joseph: And you are presenting them with well, you might want to think about this or that.
Cameron Purdy: Well and also, we just hired 5000 new sales people. Oracle’s sales team is now going to be selling Coherence and so…it is a giant organization and we have to teach them and we also have to teach, if they do sell the software very successfully which we fully expect, we are going to have lot of new customers that are going to want to learn how to make full advantage of what they purchase. So, we have a huge task in front of us but it is a pretty interesting challenge and certainly, one we are up to.
Joseph: Well, it is a good problem to have when you have a lot of business.
Cameron Purdy: Yes, thank you.
Joseph: So, how should we refer your company? Is it still Tangosol or it the Tangosol Division or is it Orasol like people who call it? Is it Tangacle, well how do you refer to that?
Cameron Purdy: Well, there’s a few interesting names in there. Right now, it is May 2007 and it is still Tangosol. We are in some form, a subsidiary of Oracle. I do not know all the details but, at some point, in the future, I believe in June, the Tangosol identity itself will have finished merging into Oracle and will become Oracle Coherence. In the meantime, Joe, you can call us anything you want. You usually do but, at that point, we will be fully integrated with Oracle and running in full speed ahead…
Joseph: Is there anything planned to happen with the Tangosol there?
Cameron Purdy: I am sure there will still be a Tangosol party at JavaOne.
Joseph: Well, yeah. It (“Tangosol”) has a good name in the industry. Would not you like to see that still leveraged?
Cameron Purdy: I do not expect it to just disappear overnight, but we do not want to confuse customers by swinging together too many names. So Oracle Tangosol Coherence for a product name is just a little bit too long. We are very proud of what we built at Tangosol and so the name certainly means a great deal to us and to our partners and to our customers, but at the same time, we have entered a new phase now where we are taking those things that we built and we learned and we have a new organization that hopefully can take advantage of the same.
Joseph: Well, it sounds like you guys have got a great future ahead of you, it sounds like you are very excited about it.
Cameron Purdy: Definitely.
Joseph: Are you looking forward to being the VP of Oracle Coherence for the next five years?
Cameron Purdy: Well, I have looked at it as a temporary demotion.
Joseph: We will make sure that your boss sees this. Anyway, congratulations on the acquisition and thanks for sitting in with us.
Cameron Purdy: Thanks Joe.