 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 logging services. Log4J is an open source product with Apache License. 3. Communications security services: The NMS interacts with multiple EMS or network elements in the south bound interface (SBI) and with other NMS or OSS applications in the north bound interface (NBI). The interaction between the NMS and other applications is expected to be secure. Security of data is achieved by encrypting the data before transmission. There are different appli- cations that provide interfaces for NMS to encrypt the data before communi- cating with NBI and SBI. The BouncyCastle package is a popular Java-based encryption package used in most network management soluti