Columns
Ron Zahavi: Keys to Enterprise Application Integration
Defining middleware has become an almost
impossible task. The term has evolved from describing a relatively simple piece
of database connection software to one that is used to describe a smorgasbord
of systems. Ron Zahavi, director of distributed object technology at Concept
Five Technologies Inc., stays in the middle of the middleware jungle by defining
the distributed object focus of his services firm's efforts to build and deploy
Enterprise Application Integration (EAI) systems. Zahavi discussed the evolution
of middleware and the emergence of EAI with ADT Editor Mike Bucken.
How do you define middleware?
Middleware probably started out in the earlier days more like a database middleware.
[Later on] when some of the distributed object technology came out, some people
started calling that middleware. So the question is: Which middleware are we
talking about? Middleware, in my mind, is technology, or a set of technologies,
that provides some level of abstraction for whatever it is people are trying
to abstract. That's why there are different types of middleware. Database middleware
is used to take some syntax, such as a query, translate it to the different
database products, act on that, and then take the output and potentially do
a join or something else.
The ORBs, regardless of whether it's CORBA [the OMG's Common Object Request
Broker Architecture] or DCOM or anything else, are also seen as a certain type
of middleware. We look at [ORBs] more as a technology, more of the connecting
of different systems, different operating systems and different platforms. Then
the applications can sit on top of that middleware to exchange information.
We see that as somewhat different from EAI [Enterprise Application Integration],
which gets into other requirements.
How do you categorize middleware products?
This is something we spend a lot of time on because there's a lot of confusion
out there. There are different types of products out there. There are the application
servers. There's a group that tends to be the message brokers. There are also
the ORBs/ OTMs [Object Transaction Monitors]. They all have slightly different
features and purposes even though all the vendors will tell you, 'Sure, we do
Web-to-legacy integration.' It's very confusing for the people looking at the
technologies to figure out what [Web-to-legacy integration] actually means.
I'll just try and characterize them at the highest level of differences we see.
Application servers are very good at bringing information together from different
sources, developing new logic to go with that information and presenting it
to things like the Web. But they do not necessarily do a lot of the legacy-to-legacy
integration. They're good at developing applications and services, but are they
the ultimate solution for the enterprise? Probably not, but they are a piece
of that. The same can probably be said of all the other technologies.
If we look at message brokers, we can say that they are very good at integrating
systems through other systems. They support a lot of the asynchronous capabilities;
guarantee delivery, messaging and transformation and routing of messages; and
they also guarantee the transformation of the information and formats. Neither
application servers [nor message brokers] are really standardized. There are
not a lot of standards in those areas.
So how do you get one of those systems to talk to the other?
Maybe the application servers lend themselves very well today to the Web and
to components, but the messaging brokers don't necessarily do that well. They're
concentrated more on the back-end messaging infrastructure. Again, you sort
of need both capabilities, but there's really no single product out there today
that wraps all of these enterprise application issues together.
ORBs and OTMs add standardization with CORBA. These give you object-oriented
capabilities and abstraction. So they provide some of those services. They also
give you the multilanguage, multiplatform capabilities. But again, you don't
see any such products today that can give you all the capabilities that the
application servers and the message brokers provide.
We define EAI as features that cut across all those categories. I think you
will see today that a lot of EAI vendors are trying to move from their area
of strength into more of a middle ground. You might see a message broker application
trying to add more of the Web and component and Java capabilities [of an application
server]. You might see an application server address transaction capability
and security to be more of an enterprise platform. We see EAI today as a term
applied to integration that requires multiple features. EAI is not necessarily
a middleware thing by itself, it is a way to apply those different technologies.
How are EAI products/technologies used today?
We are looking at implementing EAI using distributed object technology and
security. We look at that as being the key to doing EAI. There are other organizations
that might just look at messaging or something else. We're looking at combining
features so that you can do messaging-like things
using distributed objects, frameworks and things like connectors to legacy systems
and objects and components that are composites across those to add business
logic, which starts to require some of the application server capabilities.
That's how we're applying and using middleware and distributed objects, as well
as some of the other features in EAI.
One of the reasons consulting companies are thriving these days is that there's
a lot of confusion. It takes groups that have expertise, especially on the architecture
side, to apply these technologies. I see a lot of the problems today related
not to specific technologies, but to the fact that people are trying to apply
them to distributed systems, which are very complex. Developers building a distributed
system have to deal with a lot of different issues regardless of the technology
they are using. They all face scalability and performance issues, how to divide
logical architecture from physical architecture, which languages to support,
which versions of the OS to support, and how to prevent loops from
occurring. Deadlocks and things like that are not easy problems. These are not
skills that are easily developed.
What about security?
Because objects have very well-defined interfaces and classes, we were able
to develop the security to manage those entities and group them into domains
and policies. It is a much more sophisticated model, and we view that as critical
to being part of the enterprise. This is something that needs to scale; it also
needs to support intranets and extranets. They all require potentially different
policies. From our perspective, that is how we see the core of EAI. We see the
ORB having to work with the application servers. In reverse, many of the application
servers make use of the ORB. We also believe -- and this was one very important
piece that was missing -- EAI systems must be able to support messaging.
How important is the OMG's joining of
CORBA and Enterprise JavaBeans? [See "Sun, OMG building EJB-CORBA platform
for app servers," p. 56, ADT, May 1999.]
The last thing we see -- and what we like about CORBA and what's happening
with the distributed objects in general -- is the component specification that's
coming out. The specification maps things like EJB to CORBA components. There's
a lot of dedication to be able to write gateways and bridges between the technologies;
working with just one of the other certain types of application server, or just
with EJB or just with messaging, potentially ties you to a vendor or language
for the enterprise. What we see is that everybody usually has one of everything
-- different languages, legacy systems and platforms. We see that the distributed
objects standard space solution is one of the only solutions today that can
cut across all of those [lines]. That is a strong case for infrastructure.
How far along is the promise of EAI?
What we have seen is a great demand in the marketplace for enterprise application
integration. You don't have to go far to find large companies that have different
internal departments that all somehow relate to the customer. Then you realize
that you can never get all of those internal departments to agree on what that
[relationship] means, and how to develop software that cuts across lines. In
reality, when you get into the enterprise, the model where you look at integration
across loosely coupled applications is going to work and scale very well.
What we saw in recent years is that messaging software showed up at the proper
place in the market, and everyone latched on to a solution that does that very
effectively. You take information and you ship it around, and that works very
well between these loosely coupled applications. Messaging software by itself
does most of the messaging and infrastructure. On top of that we see some vendors
adding capabilities to do filtering, transformations and value-added things.
The problem we see as we look at key issues like security, is that you don't
have a very high level of abstraction.
We believe that messaging provides two different things. One is to underlie
things like CORBA messaging, which gives the ability to do asynchronous communication
using an ORB. Another is to develop some frameworks or higher level interfaces
that are in the distributed object space but which give similar capabilities
and messaging benefits.
We see a need for each; by themselves, each has a lot of positives but cannot
do what is needed by EAI. So we look at those things working together.
Can anybody bring it together in a single product? Do you think it is possible?
Everybody is working on these capabilities.We see some companies working on
a Java-only solution that does both. But we obviously think that it needs language
support of other things. So there are going to be various products that are
trying to put it together. I think we're going to see this developing over the
next 18 months.
Interestingly, the success of [IBM's] MQSeries has spawned other kinds of messaging
products that do very similar things. One of the effects has been that the competing
products and MQSeries are not standardized. Success means that there is a lot
of competition and choice, but it also means that you have to potentially tie
into a specific one.
We also saw a change in the market from doing a lot of rewriting of code in
the 1980s -- a process that is very costly -- toward integrating existing applications
and making them work together.
Does the entry of Microsoft and Microsoft Transaction Server [MTS] and MSMQ
MOM middleware advance EAI at all? Should the Microsoft products matter to IT
development managers?
I prepared a presentation for a conference on DCOM vs. CORBA. It goes through
some of the pluses and minuses of both and then I sort of threw in a surprise
slide saying 'They're part of the enterprise.' It's not an either/or [issue];
you're going to need both. The fact is that Microsoft is there, and we're seeing
a growing number of organizations using NT. We're also seeing a greater number
of organizations using Linux. The issue is that they're going to be there; they
have a solid product with MSMQ; they have a solid product with MTS. But we don't
necessarily see them as still playing a very strong position in the back end
and in the enterprise. They are a key part of it, but the scalability and the
robustness that organizations demand is still not there.
The other issue that we see today is how they play with Java. They were moving
toward that, and now they are potentially moving away from that once again.
I think there's some big questions as to how that's going to play out.
I guess the way to characterize the Microsoft strategy, or anyone's strategy,
is that to work in the enterprise the software cannot be based on 'I can add
all the features so I do everything' and that's your replacement. It has to
be coming more from the direction of 'Can fit and I can interoperate,' and that's
not something that I think -- looking at Java -- they're technically or politically
able to execute on. They are part of the enterprise, and I think that people
will still have to work with Microsoft. But their strategy of 'We can replace
all the Unix, and all the Linux; we can do messaging and transactions and you
don't need anything else other than our platforms,' is just not going to work
with most organizations.