Artikel getaggt mit Framework

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

Praktische Tests mit der Java API

Nachdem Soap, die Benutzerverwaltung und andere Dinge viel Zeit in Anspruch nahmen, habe ich jetzt erstmalig eine Anwendung gebaut, die sich der Java API bedient. Dabei sind noch einige ‘Löcher’ aufgetaucht, die es zu stopfen gab. Vor allem die Initialisierung und das Sicherstellen, dass alle notwendigen Voraussetzungen für den Programmablauf gegeben sind, ist anders, wenn man sich ‘von außen’ der Klassen und ihrer Methoden bedient.

Aber alles in allem war es weniger schlimm, als befürchtet. Nach wenigen Stunden hatte ich eine API bzw. ein Framework, das auch als solches funktioniert. D.h. auch, dass ich mich tatsächlich allmählich daran setzen muss, Pressetexte zusammen zu stellen. Vorher gibt es aber auch noch eine Menge Arbeit mit der Dokumentation.

Tags: , , ,

SQL ist SQL

Oder?

Selbstverständlich ist Datenbank-Unabhängigkeit auch unter Verwendung von JDBC nicht gegeben. Dafür gibt es Frameworks, wie z.B. Hibernate. Aber darauf habe ich ja bewusst verzichtet. Da mir klar war, dass es Unterschiede gibt, habe ich von Anfang an mit entsprechenden Interfaces und abstrakten Klassen gearbeitet.

Jetzt zeigen erste Gehversuche mit Oracle, dass das Handling nicht allein bei Datentypen oder Sequenzen und sonstigem Spezialitäten abweicht. Derzeit stolpere ich über  Eigenwilligkeiten im Anwenden von Transaktionsmechanismen.

Mal schauen, welche Überraschungen die verschiedenen Datenbanken sonst noch zu bieten haben. Einen Tag habe ich jetzt investiert, ein zweiter wird es sicher. Auf einen dritten kann ich gerne verzichten.

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