Home Help Center

Backward compatability between ICE 3.2.1 and ICE 3.4.2

mmorckosmmorckos Member Michael MorckosOrganization: University of WaterlooProject: Distributed multi-robot control framework
Hi,

I'm working on an urgent project involving distributed control of robotic components. I read about ICE few days
ago and decided to use it. On some robot, due to customized Linux kernel and compilers I could only install ICE 3.2.1 on the robot's machine.

My question is: can a client compiled with ICE 3.2.1 communicates with a server compiled with ICE 3.4.2 and supports a session and push mechanisms.

I'd really appreciated a prompt response.

Regards,

Michael

Comments

  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    Hi Michael,

    Welcome to the forum.

    Yes, an Ice 3.2 program can communicate with an Ice 3.4 program. The Ice protocol has remained unchanged since the earliest releases, so it is fully backward compatible.

    Regards,
    Mark
  • mmorckosmmorckos Member Michael MorckosOrganization: University of WaterlooProject: Distributed multi-robot control framework
    Hi,

    Thanks for the prompt response. I also have other concerns regarding development. When I tried the chat-demo (designed for v3.4.1) I couldn't even compile it using v3.3.1, so apparently the APIs differ much from version to another.

    Does this mean that I'll have to be careful to develop the client components using the older API and the server using the newer APIs, or is there a way to develop the entire application using one version and when it comes to deployment I just compile parts of it using different versions.
  • mesmes CaliforniaAdministrators, ZeroC Staff Mark SpruiellOrganization: ZeroC, Inc.Project: Ice Developer ZeroC Staff
    Hi,

    Yes, we did make some significant changes to the APIs between 3.2 and 3.3.

    I recommend that you start out assuming that the only thing you can share between the client and server are the Slice definitions. Use the 3.2.1 Slice compiler to generate code for the client, and the 3.4.2 Slice compiler to generate code for the server.

    You could try to limit yourself to using the 3.2.1 APIs in both the client and the server, but you'll be missing out on a lot of useful new features that we've added in the four years since 3.2.1 was released. You couldn't use them in your client, but you might want to use them in your server.

    Regards,
    Mark
  • mmorckosmmorckos Member Michael MorckosOrganization: University of WaterlooProject: Distributed multi-robot control framework
    Hi Mark,

    Thank you for the clarification. It was helpful. I'll start working right away.

    Regards,

    Michael
  • mmorckosmmorckos Member Michael MorckosOrganization: University of WaterlooProject: Distributed multi-robot control framework
    Real-time support

    Hi,

    I checked the chat-room demo and I find it a really good starting point for my project. I'm wondering if there is real-time support within ICE, if there are some facilities to enable meeting real-time constraints.

    Regards,
    Michael
Sign In or Register to comment.