[omniORB] [Q] AMI (messaging) for OmniOrb
V S P
toreason at fastmail.fm
Tue Feb 10 15:35:49 GMT 2009
Thank you so much for your explanations.
I started using the strategy you recommended (and the other poster)
and now have a 'working' prototype
where I use OmniOrb as communication mechanism that receives
simple synchronious requests -- and every Servant starts a pool
of worker threads using (Pion web server (that's based on boost's
asio)).
So I now have each corba servant that can receive corba requests,
process
them in worker threads -- and on top of it (as a bonus) each Omni
servant has a http interface (sort of a RESTful corba servants)
that can also invoke the processor plugins using a different entry
point.
So far everything is working fine, I made sure I see different thread
IDs
when processing.
I will later on add 'python' servants that also will use a pool of
worker
threads -- may be based on Twisted... (that also offers
HTTP and other interfaces) but right now I am doing the C++
servants.
thank you again
Vlad
On Tue, 10 Feb 2009 17:34:09 +0000, "Duncan Grisby" <duncan at grisby.org>
said:
> On Thursday 5 February, "V S P" wrote:
>
> > I saw in '06 archives that Async Message Interface for OmniOrb has been
> > in consideration.
> > Has this been implemented (or may be in latests source archives)?
>
> No, it hasn't been implemented. It's still something I'm considering if
> there's enough demand for it.
>
> > Also if it is not available
> > is DII's send_deferred the only available way to achive this?
>
> Yes, it's the only way to do a deferred synchronous call.
>
> However, if you're still talking about the report server requirement
> you've been describing, neither AMI nor DII's send_deferred are
> appropriate. In both cases, the network connection between client and
> server has to remain in place for the entire duration of the call. It is
> dangerous to assume that that will always be the case if your report
> generation takes hours. It is far far safer to use a callback.
>
> > Will I get an exception in the client if the server is down?
>
> Probably. It depends whether the TCP layer notices that the server is
> down or not.
>
> > ( I read that using send_oneway is not going to provide that).
>
> That is correct, since a oneway call specifically does not wait for a
> response.
>
> > I read in my Avanced Corba C++ book that to use Dynamic Invocation
> > I have to have Interface repository, but I saw in OmniORB example of
> > the echo service that it is not needed, is that are more or less
> > standard way that omniOrb deals with DII?
>
> There is no need to have an interface repository to use DII. There is
> nothing in the DII interfaces that requires an IfR. If you want to make
> a generic object browser, you do need an IfR, but that's not the only
> use case of DII.
>
> > I like the ability to have C++ and Python corba servers, however I I
> > need the non-blocking calls that apparently only supported by TAO ORB.
> >
> > How do people do the non blocking client server and server/server
> > communications with omniOrb
>
> They use callbacks!
>
> Cheers,
>
> Duncan.
>
> --
> -- Duncan Grisby --
> -- duncan at grisby.org --
> -- http://www.grisby.org --
--
V S P
toreason at fastmail.fm
--
http://www.fastmail.fm - The way an email service should be
More information about the omniORB-list
mailing list