Mukund Balasubramanian wrote:
> But isn't the central notion of an ESB the "bus" concept (as is obvious from 
> the 
> name).

There are well known hardware bus architectures that are point-to-point 
(telephone), broadcast (ethernet, cable tv etc), switched broadcast etc.  Using 
the term bus in software implies a virtualization layer to me.  That is a 
single 
software interface that standardizes the interface that all others see.

> I always interpreted this as providing the logical equivalent of a 
> "transport" 
> mechanism which connects every "place" (application) to every other for 
> "passengers" (messages).

This is why the term ESB is a "thingy" more than an item, or a concept.  It can 
be both, one or the other, or neither depending on what your abstraction is.

> I still find a lot of logic to the concept and hence to the products. Web 
> Services today are notoriously location centric (think service endpoint URL) 
> even though they don't HAVE to be.

A mesh network is difficult to manage, and can create a complicated 
infrastructure with a multiplication in actual traffic.  So, you have to decide 
in your architectural steps whether you need each application to have its own 
connection to every other application its talking to, or do you need to have a 
centralized broker based bus system, both, or something completely different 
(such as just using UDP, mulitcast or otherwise).

> So I don't necessarily agree with "The power of an ESB thingy is that it 
> provides the neutralization or
> standardization layer away from every application." Nor do I agree that ESB's 
> and SOA's compete in any way.

If you have control over the legacy application, you can change it to talk 
differently to the world.  If you can't change it, then you either live with 
its 
API, and have applications that talk to it with CORBA, another app with web 
services etc.  Now you have multiple security implementations, additional 
software and systems knowledge/support issues etc.  On the other hand, if you 
use a centralized broker, or a neutralizing communications proxy "bus", there 
are opportunities to start reducing your need for legacy systems support, to 
some degrees.  You don't have to teach every developer about every applications 
interfaces from a systems perspective.

A broadcast based pub/sub broker, setting in the middle, allows new process 
based systems to be created by watching and managing a higher level of state in 
your enterprise applications.

As an example, we have a customer that uses our broker to send microcontroller 
device data into a SQL database.  We do the translation from binary arrays to 
the brokers generic data objects in one module.  That module then publishes the 
data object for routing.  The delivery manager and queue manager interact to 
make all of the deliveries occur.  Simple enough.  The customer has a 'demand 
poll' feature that they use to get instantaneous readings.  It needs to feel 
like a locally managed operation, but has to utilize the features of the 
services that already exist.  So, their demandpoll client talks to a module in 
the broker which sends a modbus based request to the device.  The device 
responds by sending in a data report.  As the data passes through the broker, a 
new module sees the data for the requested device pass through, and it notifies 
the client that the data is now present.

Without the use of a centralized broker, a lot more logic would be needed in 
other places where production systems would have to be altered, tested and 
redeployed.  By using the broker, and its container architecture, we can 
provide 
a really cheap solution which is highly functional, and doesn't impact the 
existing architecture.

There will be solutions with lots of different needs.  An ESB 'thingy' will 
help 
you to promote the standards of your architecture into first class citizens of 
your SOA.

Gregg Wonderly




 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/service-orientated-architecture/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to