Skip to content
Juan Pablo Acosta edited this page Jan 31, 2015 · 1 revision

Distributed Properties Management System

Use cases

Enterprise Internationalization Solution

Manage software internationalization bundles for an enterprise information system composed of multiple distributed subsystems from a centralized system that supports versioning, multiple contributors, a rich label editor and a provisioning system. Each subsystem can be composed of multiple internationalized libraries with their own translation keys.

  • Versioning of translated labels
  • Compatible with Java’s ResourceBundle
  • Possibility to see diff comparison between different versions of labels
  • Possibility to see the history of changes of a label
  • Possibility to associate meta data to each property
  • Group properties in a hierarchical group structure
  • Provisioning system to push latest translation versions to distributed systems
  • Manage concurrent modifications and conflicting changes
  • Workflow to manage modifications and provisioning

Enterprise Software Configuration Solution

Manage software configuration based on properties files for an enterprise information system composed of multiple distributed subsystems from a centralized system that supports versioning, multiple contributors, a rich label editor and a provisioning system.

Architecture

Data Model

  • Main element is the key
  • All keys have an associated value which can be ** A final value ** A reference to another key
  • Values can have parameters
  • Keys are stored in properties files
  • Hierarchical structure for storing properties files based on a directory structure. Keys, Properties files and directories metadata. Examples ** Key description: For i18n it can contain the description of the context where the key is used ** References from other keys ** Description of value parameters ** Screenshots of the software that uses the label ** Comments from editors
  • Keys are versioned
  • Versioning system has a trunk and multiple branches
  • Branches can be per ** environment (development, pre-production, staging, production) ** contributor

Technology stack

  • File system
  • Distributed version control system. Alternatives: ** Mercurial ** Git
  • Hooks to insure consistency of committed / pushed changes
  • Web based management UI with support for multiple users accessing the system concurrently
  • Configurable workflow engine to manage key publication and provisioning
  • Provisioning system based on distributed versioning system
  • Client library to read and support live updates of properties files
  • Full text search engine on keys and versioning history