You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Fullocto <br...@fr.thalesgroup.com> on 2008/03/18 14:50:07 UTC

Distributed ESB: what does it mean?

Dear all,

I have been working on ESB/JBI for some weeks. I tried to understand the
fundamental notions and I think I figured out thanks notably to the
servicemix website.

However I can not guess what is hidden under the "distributed ESB"? I read
it is using ActiveMQ, but reading the activemq.apache.org webpages didn't
really help me.
What I can imagine is:
- the NMR is extended through different physical servers/JVM;
- one service can communicate with another one remotely.
What I have inferred:
- there is one common registry that knows which components and which service
assemblies are started on the bus.
What I have no idea about:
- what do failover and load balancing mean? when a component fails/stops, it
is started on another server (without losing the messages ) ?

I thank you for your help
Brice

-- 
View this message in context: http://www.nabble.com/Distributed-ESB%3A-what-does-it-mean--tp16121615s12049p16121615.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Distributed ESB: what does it mean?

Posted by Bruce Snyder <br...@gmail.com>.
On Tue, Mar 18, 2008 at 7:50 AM, Fullocto
<br...@fr.thalesgroup.com> wrote:
>
>  Dear all,
>
>  I have been working on ESB/JBI for some weeks. I tried to understand the
>  fundamental notions and I think I figured out thanks notably to the
>  servicemix website.
>
>  However I can not guess what is hidden under the "distributed ESB"? I read
>  it is using ActiveMQ, but reading the activemq.apache.org webpages didn't
>  really help me.
>  What I can imagine is:
>  - the NMR is extended through different physical servers/JVM;
>  - one service can communicate with another one remotely.
>  What I have inferred:
>  - there is one common registry that knows which components and which service
>  assemblies are started on the bus.
>  What I have no idea about:
>  - what do failover and load balancing mean? when a component fails/stops, it
>  is started on another server (without losing the messages ) ?

You've basically got it correct. Multiple instances of ServiceMix can
be networked together using a network of brokers with ActiveMQ
(http://activemq.apache.org/networks-of-brokers.html). When doing
this, the NMR is effectively a single logical router across all the
networked instances of ServiceMix where the NMR then has knowledge of
all the SAs deployed in all instances of ServiceMix. Because it knows
where each SA is located, the NMR can then easily route to a service
in a given instance of ServiceMix in a transparent manner.

WRT failover and load balancing, this is achieved through the use of
JMS semantics using the servicemix-jms component and container
configuration. With the correct configuration, failover across
containers can be configured so that messages are not dropped. Load
balancing is achieved through the use of queues by employing multiple
servicemix-jms consumers on a single queue.

-- 
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/
Apache Geronimo - http://geronimo.apache.org/

Blog: http://bruceblog.org/

Re: Distributed ESB: what does it mean?

Posted by Bruce Snyder <br...@gmail.com>.
On Thu, Mar 20, 2008 at 10:42 AM, Fullocto
<br...@fr.thalesgroup.com> wrote:
>
>  I thank you for your help.
>
>
>
>  > There is one ActiveMQ broker per ServiceMix instance. When there are
>  > multiple instances of ServiceMix the brokers can be networked for
>  > broker-to-broker communication.
>  >
>  I have a question:
>
>  AFAIY inside the JBI environment (by the way I think it includes NMR, BC/SE,
>  doen't it?) service consumer/provider exchange their "JBI messages"
>  (actually there is the MessageExchange that is fixed on each participant of
>  the  exchange, and NormalizedMessage are sent according to MEP, right?).

Correct.

>  But if the ServiceMix is distributed (several NMR each one with one broker
>  merged into one logical NMR), the "JBI message" can be put on a queue
>  managed by another broker. As ActiveMQ is based on JMS, does the broker act
>  as a JMS BC to transfer the "JBI NormalizedMessage" from one NMR to the
>  other?

Yes, correct.

>  If yes, can't we use the ActiveMQ broker as a JMS BC?

Sure but you need to be able to consume and product messages from/to
the JMS destinations and this is exactly what the servicemix-jms
component does.

>  - I have another question about the JMS in service mix
>  http://servicemix.apache.org/use-cases-whole.html
>  in the "Department Store Distributor's Order Processing System" use case
>  Why should we need the JCA container ? I thought that the NMR was in charge
>  of managing the queues.

That use case is fairly old and ServiceMix has advanced and changed a
lot since it was created. Today there is no need for the JCA container
in connecting to a MOM as the servicemix-jms component can handle this
easily.

>  By the way, in the caption:
>
>  > # Resource Adapter: a resource adapter provides connectivity between a
>  > specific external application and the ESB. In the Basic example the jencks
>  > container provides a JMS resource adapater.
>  > # Binding Component (BC): a BC provides connectivity to applications that
>  > are external to the ESB.
>  >
>  Does "resource adapter" mean that the jenck container will communicate with
>  SE through the NMR without passing through a BC?

Today Jencks is only used for creating a transaction manager.

>  I am having fun with all this "theory" =) but I probably need to experiment
>  the ESB to understand better... (tomorrow task ;))

Digging in will help you understand things a lot more.

Bruce
-- 
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/
Apache Geronimo - http://geronimo.apache.org/

Blog: http://bruceblog.org/

Re: Distributed ESB: what does it mean?

Posted by Fullocto <br...@fr.thalesgroup.com>.
I thank you for your help. 


> There is one ActiveMQ broker per ServiceMix instance. When there are
> multiple instances of ServiceMix the brokers can be networked for
> broker-to-broker communication.
> 
I have a question: 

AFAIY inside the JBI environment (by the way I think it includes NMR, BC/SE,
doen't it?) service consumer/provider exchange their "JBI messages"
(actually there is the MessageExchange that is fixed on each participant of
the  exchange, and NormalizedMessage are sent according to MEP, right?).

But if the ServiceMix is distributed (several NMR each one with one broker
merged into one logical NMR), the "JBI message" can be put on a queue
managed by another broker. As ActiveMQ is based on JMS, does the broker act
as a JMS BC to transfer the "JBI NormalizedMessage" from one NMR to the
other?
If yes, can't we use the ActiveMQ broker as a JMS BC?

- I have another question about the JMS in service mix
http://servicemix.apache.org/use-cases-whole.html
in the "Department Store Distributor's Order Processing System" use case
Why should we need the JCA container ? I thought that the NMR was in charge
of managing the queues.

By the way, in the caption:

> # Resource Adapter: a resource adapter provides connectivity between a
> specific external application and the ESB. In the Basic example the jencks
> container provides a JMS resource adapater.
> # Binding Component (BC): a BC provides connectivity to applications that
> are external to the ESB.
> 
Does "resource adapter" mean that the jenck container will communicate with
SE through the NMR without passing through a BC?

I am having fun with all this "theory" =) but I probably need to experiment
the ESB to understand better... (tomorrow task ;))




-- 
View this message in context: http://www.nabble.com/Distributed-ESB%3A-what-does-it-mean--tp16121615s12049p16183083.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Re: Distributed ESB: what does it mean?

Posted by Bruce Snyder <br...@gmail.com>.
On Wed, Mar 19, 2008 at 11:05 AM, Fullocto
<br...@fr.thalesgroup.com> wrote:
>
>  I tried to understand the different features of activeMQ and I have a much
>  clearer vision now.
>
>  I think there is one broker per NMR in each container.
>  They can communicate between each other using bridges (http bc, jms bc ?)

There is one ActiveMQ broker per ServiceMix instance. When there are
multiple instances of ServiceMix the brokers can be networked for
broker-to-broker communication.

>  I still have one question (for now):
>  Where is the Broker in the ServiceMix container? Is it a (hidden) SE ?

The ActiveMQ broker is part of the core of ServiceMix and used by the
NMR to send messages to components and to expose destinations for
message consumption and production.

Bruce
-- 
perl -e 'print unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
);'

Apache ActiveMQ - http://activemq.org/
Apache Camel - http://activemq.org/camel/
Apache ServiceMix - http://servicemix.org/
Apache Geronimo - http://geronimo.apache.org/

Blog: http://bruceblog.org/

The problem of redundant serialization/de-serialization

Posted by jimmy Zhang <cr...@comcast.net>.
Hi, All, I am trying to get some suggestions from users of ESB on the kind
of performance issues that they see... 

Here is the article that I have posted on the CodeProject...
http://www.codeproject.com/KB/cs/xml_processing_future.aspx
describing some of those issues...the most significant one is the redundant
de-serialization/serialization at the beginning of the article...

Any feedbacks or inputs highly appreciated...

Cheers,
Jimmy Zhang


Re: Distributed ESB: what does it mean?

Posted by Fullocto <br...@fr.thalesgroup.com>.
I tried to understand the different features of activeMQ and I have a much
clearer vision now.

I think there is one broker per NMR in each container.
They can communicate between each other using bridges (http bc, jms bc ?)

I still have one question (for now): 
Where is the Broker in the ServiceMix container? Is it a (hidden) SE ?

I hope i didn't make too many mistakes
Best Regards
Brice


Fullocto wrote:
> 
> Dear all,
> 
> I have been working on ESB/JBI for some weeks. I tried to understand the
> fundamental notions and I think I figured out thanks notably to the
> servicemix website.
> 
> However I can not guess what is hidden under the "distributed ESB"? I read
> it is using ActiveMQ, but reading the activemq.apache.org webpages didn't
> really help me.
> What I can imagine is:
> - the NMR is extended through different physical servers/JVM;
> - one service can communicate with another one remotely.
> What I have inferred:
> - there is one common registry that knows which components and which
> service assemblies are started on the bus.
> What I have no idea about:
> - what do failover and load balancing mean? when a component fails/stops,
> it is started on another server (without losing the messages ) ?
> 
> I thank you for your help
> Brice
> 
> 

-- 
View this message in context: http://www.nabble.com/Distributed-ESB%3A-what-does-it-mean--tp16121615s12049p16146656.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.