Let's begin with some basic definitions. What's your definition of SOA?
[SOA is] where you take a general view of your IT structure to try to break your workloads into distinct parts for consumers of services and providers of services. This is one thing that is debated endlessly these days: What does SOA mean, and so on. But that's an interpretation that I hear fairly consistently. Basically, you try to define workloads in terms of parts that offer services and then other parts that consume them. And the consumers could be desktops and they could be yet other servers. It's really an evolution of the traditional client server approach where you try to design your processes so that they're optimized for providing a service. How do SOAs fit in with the topic of data grids, the topic of Oracle president Charles Phillips' keynote presentation at LinuxWorld?
When you focus that SOA concept around the idea of providing data. So, again, where you have certain consumers and providers of services … that consumer might then do something and then pass its capability onto someone else as a service. That's where you get sorts of chains and networks of services that sort of tap into each other. That is the definition of a grid. When you focus on moving data around in that environment, that is what you might call a data grid. Clearly, Oracle is interested in that part because they manage the database. Where do Web services come in?
Other folks are more concerned about managing the processing in those kinds of environments. And there are different ways to do that. The easiest way is to do that is to write all of your software as Web services. And by Web services, I mean pieces of component software in either J2EE [Java 2 Enterprise Edition] or Microsoft .NET, that use standards like SOAP [Simple Object Access Protocol], XML and WSDL [Web services Definition Language] to describe themselves and negotiate access to services. That's what Web services mean to me.
From there, it's pretty straightforward to implement SOAs. That's the idea, that's the theory, but the reality isn't as great. It's a really attractive theory. The reality, though, is that only a small fraction of the software today is written as Web services, in J2EE and .NET. I don't count numbers, but some say it's less than 10%. Is that number rising?
Over time that number is going to go up. But in the meantime, you have all of these other pieces of software that are not written as Web services. They're not written as J2EE objects or .NET objects, and they have very specific dependencies on operating systems or hardware. And those could be older operating systems like MVS or VMS or things like that, or they could be on Unix. And, certainly, there is a huge base of software that is out there written to be very dependent on Windows. Is this where virtualization comes in?
If I want to get that value for those kinds of software, well, that is what virtualization does. It takes those existing workloads and it reduces the dependencies of those workloads on the specific platforms on which they're hosted. The definition of virtualization that I hear is anything that helps you separate workloads and data from details about the platforms on which they're hosted. Generically speaking, that is what virtualization means.
That's how [virtualization] plays into the SOA question. You can now start moving that workload around to match it with resources, even if it's based on Windows or on Linux, because once it's inside that virtual machine, you can move it every where you want. Now for the big question: What role will open source play as SOA deployments become commonplace?
Tools like virtual machines have clearly crossed the chasm and are being used by IT managers in a variety of environments, and not just big enterprises. But most of the solutions out there are commercial products like VMware and Microsoft Virtual Server that you have to license. Open source is starting to come up with some alternatives to that. In particular, one of the things that we're tracking very closely is Project Xen. Is open source also making strides in the realm of application servers?
At the beginning, I said that the preferred way to do this is to have everything written as Web services, because there you have very strong flexibility for creating these SOAs. There is also a lot of momentum behind an open source product, JBoss, an open source application server that allows you to host J2EE Web services. If you now put [JBoss] on top of Linux, you now have an open source platform for hosting J2EE Web services. JBoss and Xen are probably the two most significant developments there that I've seen for open source SOAs. Will JBoss and Xen, or open source SOAs in general, force proprietary vendors to rethink their marketing strategies?
Proprietary companies are not changing business models yet. The core of their business models is not yet vulnerable enough to open source to require dramatic changes. For example, MySQL is not a big enough threat to cause Oracle to change its business yet.
A little less certain is whether IBM and WebSphere could be disrupted by JBoss. IBM has already responded there by acquiring an open source application server and integrating it into its product line. It's hard to see why that's not a response to JBoss' momentum.