Archived

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

IceStorm with Ice Grid

Can I put Ice Storm Federations inside of an IceGrid. I want to have a network where I publish to a fault tolerant environment. We are currently using OmniOrb and MICO and we are having Fault tolarent problems. I want to be able to have an app subscribe to a topic and then if the publisher dies have it switch over to another server. It sounds like IceStorm and IceGrid to me. Is that correct?

Comments

  • benoit
    benoit Rennes, France
    Hi,

    IceStorm doesn't support "out of the box" fault tolerance as you describe. To do this, you would have to deploy two IceStorm service instances where you create the same topics. Your subscribers would subscribe to each IceStorm service instance topics. Your publisher would publish on one of the IceStorm service and eventually switch to the other service if the first fails. IceGrid can help you here to deploy the two IceStorm service instances.

    It's possible to improve IceStorm to support replication of the subscriptions. This way, your subscribers wouldn't have to subscribe to each deployed IceStorm service instance: it would be automatic. If you're interested in sponsoring such a feature please contact us at info@zeroc.com!

    Cheers,
    Benoit
  • subscription fault tolerance, and event flow fault tolerance.

    Hi Benoit,
    But implementing
    subscription fault tolerance,
    and event flow fault tolerance.
    will make ICE competetive against middlewares like TIBCO Rendezvous
    very few middleare support fault tolerance
    Also I would like to see ICE protocol having features like CORBA FT
    which has concept of Group IOR
    Also corba lacks FT Naming service which can have group of naming service replicationg database
    and facility to create grouop IORs in Naming service
    ~Anand
  • benoit
    benoit Rennes, France
    Hi,

    I believe Ice has a much better solution than group IORs. You can use direct proxies with multiple endpoints (each endpoint pointing to different replicas) or you can use indirect proxies with replica groups (when using the Ice location mechanism). You'll find more information about proxies and replica groups in the "2.2 Ice Architecture" section of the manual and in the IceGrid chapter.

    Let us know if you need more information!

    Cheers,
    Benoit.
  • Hi benoit,
    does this mean we do not require something like naming service in ICE as we require in CORBA ?
    Also Ice location mechanism is Fault Tolerant ?
    do they replicate and synchronise?

    In CORBA FT is implemented like oif calls to one IOR fails it transparently
    connects to another IOR in the group .
    does ICE "proxies and replica groups " facilcilates this ?

    I am asking so much questions because may be I would then prapopse
    management ICE as substitute to CORBA.

    I am an independent s/w conslultant and I have used CORBA in quite a few
    of my praposed solutions to various companies.

    ~Anand
  • benoit
    benoit Rennes, France
    AnandRathi wrote:
    Hi beenoit,
    does this mean we do not require something like naming service in ICE as we require in CORBA ?

    Right, no naming service is required. As you might have noticed, there's actually no naming service with Ice. The reason being that it's not needed: object identities and proxies in Ice are not opaque like CORBA OIDs/IORs, see also Michi's post on this [post=5110]here[/post].
    Also Ice location mechanism is Fault Tolerant ?
    do they replicate and synchronise?

    No, the Ice location service implemented in the IceGrid service is currently not replicated. However, replicating the state of the location service is certainly possible provided that there's enough comercial demand for it.
    In CORBA FT is implemented like oif calls to one IOR fails it transparently
    connects to another IOR in the group .
    does ICE "proxies and replica groups " facilcilates this ?

    Yes, if you use direct proxies, you can simply specify multiple endpoints in the proxy, e.g.:
       Ice::ObjectPrx object = communicator->stringToProxy("hello:tcp -p 10000 -h host1:tcp -p 10000 -h host2:tcp -p 10000 -host3");
       object->ice_ping();
    

    Here, the Ice client runtime will try to send the ice_ping request to one of the given endpoints, if it fails, the runtime will transparently try another endpoint. Replica groups provide the same functionality for indirect proxies (it actually provides much more, load balancing for instance).
    I am asking so much questions because may be I would then prapopse
    management ICE as substitute to CORBA.

    Could you please set your signature as described in [thread=1697]this thread[/thread]?
    I am an independent s/w conslultant and I have used CORBA in quite a few
    of my praposed solutions to various companies.

    ~Anand

    See here for a comparison of Ice and CORBA. You might also want to check our monthly newsletter here!

    Cheers,
    Benoit.