Ice is a new object-oriented middleware platform that allows developers to build distributed client–server applications with minimal effort.While similar in concept to Corba, Ice breaks new ground by providing an object model that is both simpler and more powerful, by getting rid of inefficiencies that plagued middleware in the past, and by providing new features such as user datagram protocol (UDP) support, asynchronous method dispatch, built-in security, automatic object persistence, and interface aggregation.Ice is used by a massively multiplayer online game called Wish that supports tens of thousands of simultaneous players. This article outlines some of the design and scaleability requirements placed on middleware by an application on the scale of Wish and describes how these requirements influenced the design of Ice.
© ACM, 2004. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ACM Queue Magazine (Vol 2, Issue 1, February 2004).