Gouken is an Open Source project that provides a dramatically simplified OSGi based runtime which is being called “Vault”.
Instead of the routh OSGi Core API it provides things like transactional updates and a repository system.
The Vault API actually never mentions OSGi terminology like “Bundles” or “Manifest Files”.
Instead it provides
– an emphasis on services instead of a particular pyhsical layout (“Configurations” instead of Bundles and Manifests )
– transactional state management
– ad-hoc bundle packaging/late “OSGi-fying”. Let users assemble what they are used to and work from there.
– auditing mechanisms
Based on Vault, you get highly specialized kernels like for example embedded plugin systems or dynamic android service hubs.
Those specialized Vaults address common usecases without requiring you to fully face the reality (reference: OSGi tells you how bad your architecture really is).
Instead, you boot a valid JEE citizen like a webapp or EAR inside your lovely big IBM Websphere Container.
From there, you can gradually move parts of your application to a ?Services based architecture without noticing you are setting inside this “developer unfriendly” ecosystem called OSGi already.
This principle, limiting the bottom layer and providing specialized versions, tries to address common OSGi complaints:
- high learning curve
- need to re-desgin existing architectures from ground up
- need to learn new technology tooling (“building Manifest headers”)
Gouken wants to address those problems with a very simple, ready to use, drop-in like, solution taking away as much OSGi “complaints” as possible.
Vault = Managed Environment inside an (unmanaged) environment
Kernel = Physical assembly. Usually in native unit of deployment of a foreign ecosystem (EAR,WAR,APK,etc..).
Configuration = State of a vault. Issuing a new configuration is the only way to change the vault state. Atomic.
Apache ACE is a one-2-many provisioning system.
The core vault that is the foundation of Gouken uses the same technical foundation (OSGi Deployment Admin) as its Management Agent level.
However, it is a very small subset that focusses on one-2-one deployments instead one-2-many.
In the future, the goal is to use the same management agent on an implementation level.
The core value behind Gouken are its specialized assembly formats that provide direct value for an existing problem space in non-osgi architectures.