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.
--
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.
--
0
Comments
-
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.0 -
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...0 -
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.0 -
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.
- Hannah0