e the functional components and libraries that are used by the other components that make up the NMS. All items that are reused and form the basic blocks for building other components are aggregated under platform components (see Figure 11.3). Some of the common functionality that is required in any communication application like logging of events and encryption of data can be taken as example applications that fall under platform components. Platform components Logging Security/encryption services services Object persistence services Figure 11.3 Blocks in platform components. What Is NMS? To have a better understanding of platform components, let us take a few sample services that are grouped as platform services that can be applied by other components: 1. Object persistence services: An NMS solution might be required to interact with multiple databases at the backend. An application that provides object persistence service is expected to generate SQL, do result in set handling, object conversion, and ensure that the application is portable with multiple SQL data- bases. All components that want to work with the database can use the services of object persistence, which gives transparent data persistence to all other com- ponents. "Hibernate," a persistence application using Java, is an open source product with LGPL license and can be downloaded from sourceforge.net 2. Logging services: Logging is usually implemented as a debugging tool. While designing an application there would be requirements to provide debugging messages as "warning," "error," "information," and SO on. Logging services provide applications in other NMS components with the interfaces that can be called to generate logs to a specific output. The output can be to a pre- defined file, socket, syslog, or console. The media to which the logging will be performed is based on parameters like the priority level. A warning can be written to a file while an error might be displayed in the user console. Log4] is a Java-based application that offers logg