Ice Services

2 min read

2 min read

2 min read

2 min read

2 min read

2 min read

2 min read

2 min read

2 min read

Ice includes services for tasks that applications commonly need beyond RPC, such as reaching servers behind a firewall, starting servers on demand, and distributing events. Glacier2, IceBridge, IceGrid, and IceStorm are Ice servers that your application uses as a client. IceBox is a server that hosts your own services, and DataStorm is a library that your applications link with.

ServicePurposeAvailability
Exchange data between applications: publishers write data to topics, and subscribers read it.
C++.
Let clients reach servers behind a firewall: the Glacier2 router forwards the clients' requests to these servers and the servers' callbacks to the clients.
Clients in any language mapping.
Deploy several services in a single server process: IceBox loads your services, configures them with properties, and lets you administer them remotely.
Services implemented in C++, C#, or Java.
Forward requests from clients to a server they cannot connect to directly, such as a server on another network or with a transport the client does not support.
Clients in any language mapping.
Locate, start, and replicate servers: resolve indirect proxies, start servers on demand, balance load across replicas, and deploy applications to many computers.
Clients in any language mapping.
Distribute events to many subscribers: forward each event published on a topic to every subscriber of that topic.
Publishers in any language mapping; subscribers in C++, C#, Java, Python, and Swift.