Artikel getaggt mit JMS

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: , , , , , ,

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: , , , , , , , ,