Artikel getaggt mit Parametrisierung

Out of the box dank Derby

Gestern schrieb ich bereits, dass ich die Apache Derby Datenbank ebenfalls unterstützen will. Warum also nicht gleich eine simple Standalone-Lösung dank des Derby embedded Treibers schaffen?

Jetzt arbeite ich daran, dass das Framework und die Middleware direkt ‘out of the box’ genutzt werden können. Besonders interessant dürfte das für die Soap- und JMS-Anwender sein, da damit ohne DB-Installation die Dienste für die Parametrisierung und die Benutzerverwaltung bereit gestellt werden können.

Ebenso interessant ist die embedded Lösung für CLOUD SEVEN Einsteiger, weil damit eine Demo-Version ohne großen Aufwand realisierbar ist.

Diese Erweiterung bringt erneut etwas Verzögerung in das Gesamtprojekt. Natürlich möchte ich es bald zu einem vorläufigen Abschluss mit einer ersten Test- bzw. Demoversion bringen. Angesichts der Tatsache, dass ich ja dank großzügiger Planung meine Milestones einhalten konnte, ist das aber ok.

Außerdem mache ich mir jetzt intensivere Gedanken über das Lizenzmodell. Aktuell sehe ich

  • eine Pre-Release für diejnigen, die bereits in einem frühen Stadium erste Erfahrungen sammeln und vielleicht sogar Einfluss auf die Entwicklung nehmen wollen
  • eine kostenlose Demo- bzw. Testversion die evtl. im Leistungsumfang beschnitten sein wird
  • eine kostenpflichtige Lizenz mit Anspruch auf Updates für einen definierten Zeitraum

Tags: , , , , , ,

Vorbereitungen für Tests im Web

Zu Demonstrations- und Testzwecken möchte ich in Zukunft einen Web-Zugang bereitstellen. So können interessierte Nutzer die verschiedenen Schnittstellen (Java API, Soap, JMS) direkt und ohne viele Vorbereitungen ausprobieren.
Dafür muss natürlich noch einiges getan werden. Eine DynDNS Adresse ist bereits verfügbar, aber das genügt natürlich nicht.

Mittlerweile bietet die Software eine Benutzerverwaltung, für die sie – logisch – die eigene integrierte Konfigurationsverwaltung nutzt. Ganz einfach: Benutzer sind Properties und die Passwörter sowie Rechte sind ebenfalls Properties, die in Relation zu den Benutzern stehen. Das funktioniert ohne zusätzliche Datentypen oder Datenmodelländerungen. Lediglich die administrative Seite erforderte eine gute Stunde Programmieraufwand.

Die Soap-Schnittstelle macht ebenfalls beträchtliche Fortschritte. Ein Teil der Basisfunktionalitäten für den Zugriff auf Konfigurationsparameter ist als Service umgesetzt, ebenso wie ein Administrationsservice.
Für höheren Durchsatz habe ich Session-basierte Logins ermöglicht. D.h. ein Client muss sich lediglich zu Beginn mit Benutzerdaten anmelden und kann die SessionId nutzen.
Außerdem bringe ich gerade die Benutzerverwaltung in der Soap-Schnittstelle unter, aber jetzt wird erst mal Pfingst-frei gemacht.

Tags: , , , , , ,

Konzeption und Ideen

Am vergangenen Wochenende habe ich wichtige Teile des Konzepts für das zentrale Konfigurationsmanagement auf Papier gebracht. Dabei sind mir noch einige wichtige Punkte und Ungereimtheiten aufgefallen.

Nachdem nun viele Dinge geklärt sind, mache ich mir vermehrt Gedanken über geeignete Anwendungsbeispiele. Da das Framework ja sowohl für die Parametrisierung von Software als auch für die Konfiguration komplexerer Strukturen geeignet ist, suche ich nach leicht nachvollziehbaren aber gleichzeitig auch sinnvollen Ideen.

So könnte für Konfigurationsmanagement eine Lösung für Anwender sinnvoll sein, die eine größere Menge Komponenten an Arbeitsplätzen nutzen, z.B. verschiedene Hardware und Software. Mit dem Framework sollen ja später auch Abhängigkeiten zwischen Komponenten darstellbar sein.

Tags: , , , , ,

Zentrales Konfigurationsmanagement – Projektstart

Projektstart

Heute startet das Projekt cloud seven, abgekürzt c7.

c7 ist die Abkürzung für cloud  seven.
Wolke 7 (im Englischen eher cloud nine) ist eine kleine Anspielung auf den Hype rund um das cloud computing. cloud seven soll ein Wohlfühlort für Entwickler und Anwender sein.

Parametrisierung ist für Software beinahe immer ein Thema. Meist werden dafür Konfigurationsdateien (XML, Property-Files) genutzt. Für den effektiven Nutzen entsteht häufig um diese Dateien herum zusätzlicher Code. Spätestens, wenn es sich um größere Softwaresysteme handelt und insbesondere bei verteilten Anwendungen, wird dies ein aufwändiges Thema, dessen Implementierung schnell mehrere Mannwochen in Anspruch nimmt.
Mit c7 steht alles zur Verfügung, was für die Konfiguration zur Laufzeit einer Software benötigt wird.

Es wäre sehr erfreulich, wenn sich im Verlaufe des Projekts und – logisch – auch nach Fertigstellung Anwender finden, die den Wert dieses Tools zu schätzen wissen. Finanzielle Unterstützung von Anwendern und Softwarehäusern ist sehr willkommen.
Um das Projekt voran zu treiben, stehen Überlegungen über die Finanzierung durch crowd funding an.

 

Meilensteine des Projekts

  1. Entwicklung des Java-Frameworks und eines Konsolen-Tools für die Administration. Verfügbarkeit der Dokumentation (API).
  2. Entwicklung der SOAP Schnittstelle – damit kann c7 unabhängig von Programmierschnittstellen und Betriebssystemen genutzt werden. Dokumentation (WSDL).
  3. Entwicklung der JMS Schnittstelle für Unternehmen, die Message Broker als Kommunikationsweges bevorzugen. Dokumentation (Nachrichten).
  4. Erstellung eines grafischen Tools für die Administration unter Java.
  5. Umsetzung eines beispielhaften komplexen Konfigurations-Themas, z.B. einer System-Umgebung mit verschieden Objekten.

 

 

Hier nochmal der Inhalt aus der About-Seite:

Kurz und knapp

  • c7 ist flexibel und gleichsam für den Einsatz in kleinen ebenso wie in großen Unternehmen geeignet.
  • c7 dient Softwareentwicklern, Anwendungsexperten, Administratoren.
  • c7 ist eine zentrale Konfigurationsverwaltung für die Parametrisierung verteilter Anwendungen.
  • c7 bietet verteilten Anwendungen gemeinsame oder instanz-abhängige Konfigurationsparameter.
  • c7 bietet durch lokales Caching eine hohe Performance und zusätzliche Stabilität bei Nichterreichbarkeit des zentralen Servers.
  • c7 erlaubt die Konfiguration komplexer Objekte durch die Kombination von Eigenschaften.
  • c7 verwaltet die Konfiguration in einer DB, nicht in Dateien. Umständliches XML-Handling entfällt. Unterstützung diverser RDBMS.

 

Besondere Features

  • Einfaches Handling der Konfiguration durch eine Programmierer-freundliche API
  • Mandanten tauglich durch Unterstützung von gemeinsamen und spezifischen Parametern
  • Erlaubt die Verwendung von Name Spaces (z.B. hostname.variante-a, hostname.variante-b)
  • Optionale Verschlüsselung von Werten
  • Läuft mit verschiedenen Datenbanken (MySQL, Oracle, PostgreSQL)
  • Zwei Caching-Varianten für Performance und Stabilität
  • Verteilte Software kann auf den verschiedenen Rechnern gleichzeitig gemeinsame und spezifische Parameter nutzen

 

Einsatz

c7 bietet diverse Schnittstellen:

  • Java Framework
  • Soap Service
  • Message Broker (JMS)

Administratoren nutzen für die Konfiguration ein einfaches grafisches Tool oder – alternativ – ein Shell-Script.

 

Basis

c7 ist eine schlanke Java Lösung. Auf den Einsatz von zwar mächtigen aber eben auch ballastreichen Frameworks wird verzichtet.

Tags: , , , , , , , ,