Ganymede is an open source network directory management framework, designed to allow administrator teams to collaboratively manage subsets of an organization's
directory service
In computing, a directory service or name service maps the names of network resources to their respective network addresses. It is a shared information infrastructure for locating, managing, administering and organizing everyday items and network ...
s, such as
NIS,
DNS
The Domain Name System (DNS) is a hierarchical and distributed naming system for computers, services, and other resources in the Internet or other Internet Protocol (IP) networks. It associates various information with domain names assigned to ...
,
Active Directory
Active Directory (AD) is a directory service developed by Microsoft for Windows domain networks. It is included in most Windows Server operating systems as a set of processes and services. Initially, Active Directory was used only for centr ...
/
LDAP
The Lightweight Directory Access Protocol (LDAP ) is an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network. Directory serv ...
,
DHCP
The Dynamic Host Configuration Protocol (DHCP) is a network management protocol used on Internet Protocol (IP) networks for automatically assigning IP addresses and other communication parameters to devices connected to the network using a cli ...
, and
RADIUS
In classical geometry, a radius ( : radii) of a circle or sphere is any of the line segments from its center to its perimeter, and in more modern usage, it is also their length. The name comes from the latin ''radius'', meaning ray but also the ...
, among others. First announced and released at the 1998
USENIX LISA conference, Ganymede has been under public development and use since then.
Ganymede uses a central server which supports clients connecting via
Java RMI. The Ganymede server maintains a transactional object graph database of network information such as user objects, group objects, system objects, network objects, etc. Users and administrators run Ganymede clients (GUI or
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. ...
based) to create, modify, or delete objects in the database. Whenever a user commits a transaction, the Ganymede server schedules a number of background threads to write out updated network source files and run whatever system scripts are required to propagate the new data into the managed network directory services. If multiple users are working concurrently, the scheduler makes sure that the entire network environment is updated with transactionally consistent directory images as builds finish and new ones are issued.
The Ganymede server is meant to be programmed by the adopter, who can define arbitrary object data types along with custom logic to interact with the user through the GUI and to maintain consistency within and between objects. Adopters can also create custom tasks which can be executed at specified times by the internal Ganymede scheduler. Such custom tasks can make changes in the server's object database and/or can run external scripts to update external services.
Ganymede has an elaborate XML data format which can be used to import and export the server's object database schema and object data. Importing XML will typically result in the creation, modification, or deletion of database objects, and will trigger one or more network directory service rebuilds just as using the GUI client would do.
Above all, Ganymede is designed around administration teams. Administrators are members of 'Owner Groups', which own objects. Any object that is changed by a user or an automated task can result in change report email being sent to administrators in the appropriate Owner Group, making it possible for admins to keep up to date with changes that others in their groups are making. Owner Groups can be granted authority over arbitrary subsets of the object database, making it easy to slice up the network directory space in any fashion that may be desired.
As a programmable framework, Ganymede must be programmed for a specific set of directory management tasks. Fundamental Generic Networking in Germany has used it as the basis of their Doctor DNS project, which is being used to manage DNS for the
Kaiserslautern University of Technology.
References
External links
*
* {{Github, jonabbey/Ganymede, Ganymede
Directory services
Cross-platform free software
DNS software
Identity management
Identity management systems
Free software
Free network management software
Free software programmed in Java (programming language)
Software using the GPL license
1998 software