Table of Contents Previous Next
Logo
IceBox : 40.2 Introduction
Copyright © 2003-2008 ZeroC, Inc.

40.2 Introduction

The Service Configurator pattern [7] is a useful technique for configuring services and centralizing their administration. In practical terms, this means services are developed as dynamically-loadable components that can be configured into a general purpose "super server" in whatever combinations are necessary. IceBox is an implementation of the Service Configurator pattern for Ice services.
A generic IceBox server replaces the typical monolithic Ice server you normally write. The IceBox server is configured via properties with the application-specific services it is responsible for loading and managing, and it can be administered remotely. There are several advantages in using this architecture:
• Services loaded by the same IceBox server can be configured to take advantage of Ice’s collocation optimizations. For example, if one service is a client of another service, and those services reside in the same IceBox server, then invocations between them can be optimized.
• Composing an application consisting of various services is done by configuration, not by compiling and linking. This decouples the service from the server, allowing services to be combined or separated as needed.
• Multiple Java services can be active in a single instance of a Java Virtual Machine (JVM). This conserves operating system resources when compared to running several monolithic servers, each in its own JVM.
• Services implement an IceBox service interface, providing a common framework for developers and a centralized administrative facility.
• IceBox support is integrated into IceGrid, the server activation and deployment service (see Section 35.8).
Table of Contents Previous Next
Logo