Archived

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

Using Ice with Corba

Hello,
I am writing my first post here, though I have been reading a lot of them...

The project I am working now is that:
1. A (c; as server) connects to B (java; as client) with Ace/Corba
2. Also, A (c; as client) connects to C (c; as server) with Ace/Corba

What I want to do is that:
- Develop another D (c#; as server) and connect to A (c; as client) using ICE

A is already working as server and client with Ace/Corba.
Is it possible that A works as Ice-client at the same time?

Thanks.

--

Comments

  • benoit
    benoit Rennes, France
    Hi,

    The Ice protocol is not compatible with the CORBA protocol so your Ice client won't be able to talk to your CORBA server out-of-the box.

    If you want your server A to also accept connections from Ice clients, you'll need to modify it to add Ice server functionality (similar to CORBA's). Although we never tried it, you should in theory be able to use Ice and ACE/TAO side by side in the same process. Each runtime (Ice or CORBA) will listen for client connections on its own TCP/IP port.

    Cheers,
    Benoit.
  • Thanks...

    If you want your server A to also accept connections from Ice clients, you'll need to modify it to add Ice server functionality (similar to CORBA's). Although we never tried it, you should in theory be able to use Ice and ACE/TAO side by side in the same process. Each runtime (Ice or CORBA) will listen for client connections on its own TCP/IP port.

    That was exactly what I wanted to do!!!
    Thanks.

    Pardon me for this "naive" question.
    Could you explain more on 'side by side in the same process'?
    Do you mean using threads?
    What I was trying to do is to initialize each connections in one main function...
  • benoit
    benoit Rennes, France
    Ice is inherently multi-threaded. Connections requests and invocations from clients are processed by the Ice server thread pool (see 28.9 The Ice Threading Model in the Ice manual for more information).

    The main thread of your server can just create the Ice communicator and object adapter and then activate the object adapter. Once activated, the Ice object adapter will start accepting connections and dispatch invocations from clients with threads from the Ice server thread pool. Your main thread can then do something else, such running the CORBA event loop if needed.

    Cheers,
    Benoit.
  • Thanks again

    Thanks a lot~

    Actually I want A as an ICE-client.
    So my A would be CORBA server, CORBA client and ICE client..:o

    Now I am working on the ICE part...

    Thanks again.

    - Hannah