This forum has been archived. Please start a new discussion on GitHub.

TAO AMH and Ice AMD?


I'm curious if anyone has to comments about
TAO's Asynchronous Message Handling (AMH)
compared to. Ice's Asynchronous Message Dispatch (AMD)?

How similar or different are they?

It seems like both techniques seem to be moving
in similar directions, but I'm not enough of a middleware
expert to know for sure.

There are some AMH slides here:

and a paper here:



  • mes
    mes California
    Hi Craig,

    Thanks for the link to Doug's paper, it was an interesting read.

    TAO's AMH and Ice's AMD are conceptually identical: a servant can send the response to an operation anytime it chooses, instead of the typical function-call style of synchronous programming.

    Naturally, the implementations are different. TAO's language mapping is necessarily similar to that of CORBA's AMI, which in my opinion is pretty awkward to use. It should come as no surprise that I prefer Ice's solution. ;)

    The benefits of AMD are undeniable: we have used it to great advantage in situations like Doug describes (i.e., middle-tier servers), such as our Glacier router. In fact, Ice offers a significant performance advantage in this situation because Ice allows you to receive and forward requests as "blobs", thus avoiding the overhead of unmarshalling and remarshalling. It's not possible to do that in CORBA.

    Take care,
    - Mark