Archived

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

Bunch of questions by a ICE newbie (I'm trying to decide to switch to ICE or not)

Hi everyone,

first, forgive me my (d)english. If invent some new words or phrases, sorry;-)

Second, I searched the archives and found some Discussions about some of my questions, but no easy answer. Some questions are simply there to assure that using ice is the right decision.

So I hope you don't think I'm impertinent to bother you with this bunch of questions. Answers aka RTFM are welcome, if you can give me a hint which manual

So, lets start!

1) Are the following platforms supported?

OS: Sun Solaris 10
Arch: Sparc and AMD64
Compiler: Sun Studio 11

2) Can ICE be used in 64-bit mode?

3) Can I have a C++ server and a Java client?

We are using the Prevalence pattern in combination with the Command pattern. The server will host a PrevalentSystem with a large object tree (only about 2000 object instances, but 25 GIGA byte memory). For access to the PrevalentSystem we have two base classes:

- Command (read access)
- RedoLogCommand (read/write access)

If I understand the basics right, the call flow has to be:

- Create the Command(Proxy) objects on the client
- Send the objects via ICE to the server
- Server executes the commands

4) If I'm right, this means I have to write IDL for this Command classes.

5) Can I still use my two base classes for the generated classes?

6) Even if my base classes are template classes?

7) Has someone used the command pattern wit ICE?

The Prevalence pattern relies heavily on object serialization/deserialization. I want to serialize my 25GB object space into a single file. I read some things about using a berkley db for this, but I think that's not performant enough. So I got the following idea:

- Create the classes for the object space via IDL
- Use the marshaling/unmarshaling capabilities of ICE to serialize/deserialize the object space

8) Is this a good idea??? (Would be nice, because I could send the whole object space over the line to another server)

9) Are there known problems / best practices for IDL specifications of classes with large arrays of primitive types?

Now that you have managed to read that far come my last 5 questions:

10) Does ICE have an integrated build environment like ACE/TAO

11) Is there an eclipse or <insert your ide> integration plugin for ICE

12) Are there known best practices for logging

13) Are there known best practices for function call tracing

14) Are there known best practices for error handling

Thanks a lot for reading to the bitter end

Once again: all comments are welcome

Best regards,
Markus

Comments

  • matthew
    matthew NL, Canada
    Hi Markus,
    Welcome to the forums! Before we can offer you assistance can you please fill out your signature details as detailed in the link contained in my signature.
  • bernard
    bernard Jupiter, FL
    Hi Markus,

    Welcome to our forums. I fixed your signature; you forgot to check "Show your signature".
    1) Are the following platforms supported?

    OS: Sun Solaris 10
    Arch: Sparc and AMD64
    Compiler: Sun Studio 11

    No, this is not a supported platform. However I suspect building Ice on this platform would be very easy.

    You can find the list of supported platforms at:
    http://www.zeroc.com/platforms.html

    2) Can ICE be used in 64-bit mode?

    Yes.
    3) Can I have a C++ server and a Java client?

    Yes.
    We are using the Prevalence pattern in combination with the Command pattern. The server will host a PrevalentSystem with a large object tree (only about 2000 object instances, but 25 GIGA byte memory). For access to the PrevalentSystem we have two base classes:

    - Command (read access)
    - RedoLogCommand (read/write access)

    If I understand the basics right, the call flow has to be:

    - Create the Command(Proxy) objects on the client
    - Send the objects via ICE to the server
    - Server executes the commands

    You can implement any pattern using Ice.
    4) If I'm right, this means I have to write IDL for this Command classes.

    Yes, distributed operations must be described using Ice's Interface Definition Language, Slice.
    5) Can I still use my two base classes for the generated classes?
    6) Even if my base classes are template classes?

    The classes genererated from Slice definitions do not inherit from application-classes.
    7) Has someone used the command pattern wit ICE?

    The Prevalence pattern relies heavily on object serialization/deserialization. I want to serialize my 25GB object space into a single file. I read some things about using a berkley db for this, but I think that's not performant enough. So I got the following idea:

    - Create the classes for the object space via IDL
    - Use the marshaling/unmarshaling capabilities of ICE to serialize/deserialize the object space

    That's basically what Freeze maps do: use the Ice encoding to store Ice-formatted data in a Berkeley DB database (which is, at the end, a file).

    If you don't need a map but just a sequence, using your own file and serialization could be faster.
    8) Is this a good idea??? (Would be nice, because I could send the whole object space over the line to another server)

    Hard to say without more details.
    9) Are there known problems / best practices for IDL specifications of classes with large arrays of primitive types?

    Yes, please look at our FAQs:
    http://www.zeroc.com/faq/fileTransfer.html
    10) Does ICE have an integrated build environment like ACE/TAO

    No, and I did not know ACE/TAO had one.

    11) Is there an eclipse or <insert your ide> integration plugin for ICE

    See http://www.zeroc.com/vbulletin/showthread.php?t=1665
    12) Are there known best practices for logging
    13) Are there known best practices for function call tracing
    14) Are there known best practices for error handling

    I recommend to read past issues of our newsletter:
    http://www.zeroc.com/newsletter/index.html

    Best regards,
    Bernard
  • Thank you very, very much

    The provided links help me very much.

    Thanks for your time.

    Best regards,
    Markus