Database Bindings/Support
- Oracle
- Microsoft SQL Server
Installer
- Based on izPack (Java)
- Bundles all components
Update/Migration
- DB updates are based on migration packages
- Python-based migration framework is included in the server
Python
- Used as scripting language throughout the application
- Bundled versions of CPython (native server) and IronPython (GUI client)
- API provides access to server and client functionality [links]
YAJSW - Yet Another Java Service Wrapper
- Provides daemon and init scripts on linux, or service on windows
- Invokes java server, monitoring
Monitoring
- Checks for DB availability
- Checks for server availability
- Web-based interface (Jetty)
Java Server (Standalone)
- Provides DB interface via Hibernate/JDBC
- Exposes minimalist REST interface towards monitoring
- Communicates with native server components via protocol buffers through (local) network socket
- Logging via slf4j, using logback as backend
- Invokes native server
Native Server (Piggyback)
- Accepts incoming client connections
- Invokes per-session process
- Connects to java server
- Communicates with client via XML protocol through network socket
Client
- Connects to native server
- Either GUI or headless
- GUI can either be pre-installed or deployed via ClickOnce
Authentication Schemes
- Interactive (username/password)
- Kerberos
- Single Sign-On via CredentialManager