Powering Web services

Building the foundation for scalable enterprise systems

Graham Glass, the chairman and chief architect of Addison, Texas-based The Mind Electric  was formerly CTO and co-founder of ObjectSpace. InfoWorld Test Center Lead Analyst Jon Udell asked Glass about GLUE, TME's popular, Java-oriented Web services engine, and GAIA, a forthcoming product that aims to simplify the deployment and management of large-scale systems comprising many SOAP endpoints. 

What's been the progression from GLUE to GAIA? 

TME was founded two years ago. We're big believers in service-oriented architectures, targeting the enterprise. Phase one [GLUE] was helping people to build individual services. Then the question is, How do you assemble them into robust, manageable, scalable, reliable systems? 

And how do we debug them? 

Exactly, and that's something that is rarely talked about. So as people start deploying these systems in the large, software that provides the infrastructure for a true service-oriented architecture -- what I'm calling SOA in a box -- can be fruitful new ground for a company like TME, because that's not the kind of thing application servers are designed to do. So, phase one was to release GLUE, targeted at the Java community, to help them build Web services in the first place. To set the record straight, GLUE is not a toolkit any more so than WebLogic would be considered one. GLUE is now a high-performance application server, when it's used in standalone mode. 

All the ingredients except EJB, right? 

Right. High-performance servlet engine, Web server, JSP engine, full-blown Web services stack -- the only thing we're saying is that the server-side component model doesn't need to be as complicated as EJB. You can just use regular Java objects. Later in Q1, we'll release native support for clustering, load balancing, and fail-over for any Java object, so you just don't need EJB at all. 

And that's separate from the GAIA effort? 

Yes, it'll be GLUE Enterprise . We're also finding that, because GLUE can be plugged into any other app server, some of the big vendors are promoting us as the vendor-neutral interop solution for Web services. 

OK, now let's talk about GAIA. 

That's the bigger challenge: connecting all these endpoints. I would call GLUE an endpoint in a box, and GAIA an SOA in a box. The requirements start with service publication and service discovery. Once you can locate services and bind them, you can add a tremendous amount of value by inserting yourself into the conversation -- whether it's clustering and fail-over, or performance monitoring, or reliable messaging, or helping with debugging as you mentioned. 

Will WS-R outing generalize that ability to inject value-adding behavior into SOAP conversations? 

It will make it more powerful, but you don't need a SOAP routing spec in order to be able to insert yourself. It'll help with things like getting through complicated firewall configurations. And then you get into higher-level things like process orchestration. 

Can GAIA intermediate any SOAP conversation? 

Yes. It's important to realize that you don't have to use GLUE to use GAIA. And you can deploy it natively to any combination of JVM [Java virtual machine] or CLR [Common Language Run time]. GAIA itself, by the way, is built out of a collection of self-assembling Web services. Every part of it -- performance monitoring, service discovery, data storage -- is a highly portable Web service. 

Here's why that's important. Take the trend toward server farms. Our customers say that, right now, it's a manual exercise to manage services deployed up there, and it's an incredible pain. You'd like to be able to package up a service and upload it to, in our case, GAIA. If you want to lock it to a machine you can, but give GAIA the flexibility to deploy to one or more servers on demand. That's where service discovery becomes so important. It's not that you're choosing between Amazon vs. Barnes & Noble. It's that you don't want to build a brittle enterprise system with services linked in location-dependent ways. GAIA will provide this virtualization in a way that's super-easy to use. 

Now, there's a lot of data that has to be stored and accessed by GAIA. Typically you'd put all the service and session and tracking information in some centralized database. But GAIA provides a virtual storage system, all built out of Web services, 100-percent peer-to-peer. It's really a distributed XML object database. GAIA uses it to store information about Web services, sessions, user profiles, but we're thinking about opening up the API. 

Does it use some form of multimaster replication? 

No, it's very biological. Some nodes can decide to store a relatively small amount of the big picture and act as local caches. Others can be beefier. Even though each of the nodes -- we actually call them cells -- has the same code, each can vary its own characteristics dynamically. 

Is there a node that has the canonical copy of the data? 

No, there's no need for a so-called master. Of course, since everything's defined in terms of WSDL interfaces, a cell can attach to something like an Oracle database as a persistent backend. But when you see GAIA in operation, it really is very biological, which makes total business sense. If you want to deploy an SOA, you want something that is scalable and fault-tolerant and has no single point of failure. It just so happens that a lot of the qualities of biology exactly intersect with what enterprises need to build their businesses. 

Copyright © 2003 IDG Communications, Inc.

How to choose a low-code development platform