Penrose consists of several components:
- Penrose Common
- Penrose Core
- Penrose Server
- Penrose Client
- Penrose Studio
Penrose Common is a set of classes that are common to other components. The classes include base classes, configuration classes, XML readers and writers, DTD definitions, and some utilities.
Penrose Core is the main Penrose code which manages the virtual directory. The virtual directory is divided into partitions. Each partition contains the configuration of the data sources, directory entries, and modules. Penrose Core can be embedded into another application without requiring to run an LDAP service.
Penrose Server is a light-weight application server specifically built for Penrose. It includes several choices of LDAP services to communicate with LDAP clients including OpenDS and Apache DS. It also include a JMX service to communicate with Penrose Client and Penrose Studio.
Penrose Client contains the classes to communicate with Penrose Server remotely. It also contains command-line interfaces that wrap the classes.
Penrose Studio is an Eclipse-based GUI for managing Penrose Server configuration.