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