“That is a strong condemnation that the IS is a less functional runtime
environment simply because it is more difficult to start two instances
of it one the same machine. It is, of course, entirely possible to
start 2, or more, instances of the IS on a single machine and connect
them to different Brokers. An IS has no larger a memory footprint than
the 4.x ADK, so that is not an issue. The large amount of additional
functionality provided in the IS actually makes it a significantly more
Yes, it is indeed a significantly more capable environment–except if you need to connect to more than one broker. For this specific function, IS 6 is a less capable environment.
“IS 4.6 could do that through the Enterprise Package (which was
essentially and adapter), however, there are some serious considerations.”
There undoubtedly constraints to be aware of. However, by restricting the number of brokers that can be connected to, you take away a reasonable architecture option that will work just fine in many instances (when I don’t care about ordering, etc.). And what I’m after isn’t IS acting as a bridge between 2 Brokers, but independent integrations where one integration interacts with 1 Broker and the other integration interacts with another Broker.
“It is most definitely not a less scalable solution. Having multiple
clients on the Broker provide a level of possible parallelism impossible in the old model from a single ADK instance.”
I concede the point. It was a point that should have been left on the cutting room floor–I need a better editor!
“While one may consider the IS a broker by itself, more apt description
is “dispatcher.” The IS by itself (prior to local pub/sub capabilities
implemented in IS 6) implements a point to point dispatching mechanism
only - a single incoming message is mapped to a single service within
that same process. A Broker does much more. A Broker is aware of and
provides location transparency for the entire distributed environment,
providing sophisticated metadata synchronization and message routing
capabilities. Of course, as you mention, it is entirely possible to
replicate that functionality in the IS, but is much, much more than a
“bit more work.””
I figured this might head into the “what’s a broker” area. Does a pub/sub feature alone make something a “broker”? I’m inclined to think not but I’m aware that the popular view/definition of broker is exactly that.
Wrt Broker vs. IS, to argue degrees of difference, a broker does not, IMO, do “much more” than IS. In the scheme of things, it’s actually pretty basic–keep a list of subscriptions/filters, copy received docs to the appropriate queues. Done. IS/TN does indeed do pub/sub out of the box–a processing rule is a subscription. Calling receive is the publish. The only functional difference between TN and Broker is that TN only delivers to the first “queue” that matches the subscription–a limitation that is easily overcome. In fact, I’ve implemented a pub/sub capability using TN. It truly was very straight-forward.
“Certainly integration designers must specify the Broker to which to
connect. It does not, however, follow that each adapter should be able
to specify a Broker.”
Isn’t that in fact what adapters in 5.0 and before do exactly? Isn’t that what IS 6, positioned as the uber adapter, does exactly? Is IS the adapter, or are the modules that run within IS considered the adapter? Or is this why things are starting to be called modules instead of adapters? IMO, making