Table of Contents Previous Next
Logo
Introduction : 1.1 The Internet Communications Engine (Ice)
Copyright © 2003-2010 ZeroC, Inc.

1.1 The Internet Communications Engine (Ice)

The rise of object-oriented middleware in the mid-nineties was an important step forward toward making distributed computing available to application developers. For the first time, it was possibe to build distributed applications without having to be a networking guru: the middleware platform took care of the majority of networking chores, such as marshaling and unmarshaling (encoding and decoding data for transmission), mapping logical object addresses to physical transport endpoints, changing the representation of data according to the native machine architecture of client and server, and automatically starting servers on demand.
Despite these advances, the leading object-oriented middleware platforms suffered from a number of serious practical limitations that prompted ZeroC to develop the Internet Communications Engine, or Ice for short.1 The main design goals of Ice are:
• Provide an object-oriented middleware platform suitable for use in heteroge­neous environments.
• Provide a full set of features that support development of realistic distributed applications for a wide variety of domains.
• Avoid unnecessary complexity, making the platform easy to learn and to use.
• Provide an implementation that is efficient in network bandwidth, memory use, and CPU overhead.
• Provide an implementation that has built-in security, making it suitable for use over insecure public networks.
To be more simplistic, the Ice design goals could be stated as “Let’s build a more powerful middleware platform that makes the developer’s life easier and avoids the mistakes of its predecessors.”

1
The acronym “Ice” is pronounced as a single syllable, like the word for frozen water.


Table of Contents Previous Next
Logo