Projekte

In über 20 Jahren in der Software-Entwicklung habe ich sehr viele Projekte durchgeführt.

Hier stelle ich eine Auswahl der wichtigsten Projekte vor. Die einzelnen Projekte sind zur besseren Übersicht mit ihrem Titel und einem Link zur detaillierten Projektbeschreibung in einer Liste aufgeführt.


Projektliste

  • Werkzeug für die Entwicklung von Protokollen
    Erzeugen einer funktionsfähigen Vorlage für die Implementierung eines Protokolls zur Anbindung an das Gebäude Management System Nadine. mehr
  • Build
    vollautomatisches Build eines Software-Produkts und der zugehörigen Installer mit automatischer Aktualisierung der Download-Pages im Internet in drei Release-Ständen, je sechs OEM-Varianten und je zehn Sprachen mehr
  • Server
    Entwicklung eines hochverfügbaren Servers mit den Diensten Datenbank, Dateien, Drucken und Backup für ein Zeitungssystem. Auf den Server wird von Macintosh und PC Clients zugegriffen. mehr

Projekt Details

Projekt: Werkzeug für die Entwicklung von Protokollen

Erzeugen einer funktionsfähigen Vorlage für die Implementierung eines Protokolls zur Anbindung an das Gebäude Management System Nadine.

Das Projekt zerfällt in drei Teilprojekte

  • einen benutzerdefinierten Anwendungs-Assistenten für VC++
  • einen Satz von Support Libraries
  • einen Installer

benutzerdefinierter Anwendungs-Assistent

Der benutzerdefinierte Anwendungs-Assistent erstellt ein neues Visual C++ Projekt. Das Projekt enthält c++ Dateien, die als Vorlage für die Implementierung eines Protokolls zur Anbindung von Anlagen der Sicherheits-, Kommunikations- und Gebäudetechnik an Nadine verwendet werden können. Die Vorlage kann sofort nach dem Erstellen als DLL compiliert werden. Der Assistent berücksichtigt die Interfaces zu den Support Libraries zur Kommunikation über serielle und Netzwerk-Schnittstellen. Allgemeine und Anlagen-Klassen spezifische Event Handler sind in der Vorlage bereits enthalten.

Support Libraries

Methoden zu seriellen Kommunikation
Methoden zu Netzwerk-Kommunikation
Methoden zur Kommunikation mit Nadine
Hilfsfunktionen

Installer

Der Installer sucht anhand der Registry das Verzeichnis von Visual C++ und installiert dort den benutzerdefinierten Anwendungs-Assistenten. Die Support Libraries mit den zugehörigen Header Dateien werden in einem vom Benutzer gewählten Verzeichnis installiert.

Umgebung

Windows NT, Visual C++, MFC, InstallShield

Projekt-Gruppe

Projektleitung
zwei MA

Projektliste


Projekt: Build

vollautomatisches Build eines Software-Produkts und der zugehörigen Installer mit automatischer Aktualisierung der Download-Pages im Internet in drei Release-Stände, je sechs OEM-Varianten und je zehn Sprachen.

Die c++ Sources des Produkts werden, abhänging vom Releasestand, im Filesystem bzw.im Versions-Kontroll-System MKS gehalten. OEM Varianten werden durch bedingte Compilierung (Preprocessor Macros) gebildet. Lokalisierte Versionen entstehen durch nachträgliche Übersetzung der Resource Dateien. Damit ergibt sich in etwa folgende Struktur, im Filesystem realisiert durch Verzeichnisse, in MKS durch Labels:

  • <vMajor>
    • <vMinor>
      • <Bugfix Level>
        • <Sources>
        • <Resources Deutsch>
        • <Resources Englisch>
        • <...>

Die erzeugten Produkte werden in Dateisystem abgelegt; die durch Verzeichnisse realisierte Struktur ist hier wie folgt:

  • <vMajor>
    • <vMinor>
      • <Bugfix Level>
        • <OEM>
          • <Produkte Deutsch>
          • <Produkte Englisch>
          • <...>

Lösung

Bilden der Produkte:

  • Erstellen einer todo Liste mit Paaren {<Sprache>, <vMajor,vMinor,Bugfix level>}
  • Erzeugen der OEM-spezifischen makefiles anhand einer Modul-Liste
  • lokales Erzeugen der Produkte

Pflege der Internet Download Seite:
für jeden OEM:

  • Erstellen einer Liste der neuesten verfügbaren Produkte
  • Erzeugen des HTML für die Downloadseite
  • Komprimieren der Produkte als self extracting archive
  • Bereitstellung der Produkt-Archive und der Download Seite auf dem Web Server

Erzeugen der Installer:
für jeden OEM:

  • Erstellen der Produkt-Komponenten anhand der neuesten verfügbaren Produkte
  • Erstellen der Dokumentations-Komponenten anhand der neuesten verfügbaren Dokumentation
  • Lokales Erzeugen der Installer

Software

Script Programmierung
Windows NT, MKS, InstallShield, HTML, nmake, awk, sed, bash, ftp, winzip

Projektliste


Projekt: Server

Entwicklung eines hochverfügbaren Servers mit den Diensten Datenbank, Dateien, Drucken und Backup für ein Zeitungssystem. Auf den Server wird von Macintosh und PC Clients zugegriffen.

Server Die Forderungen nach hoher Verfügbarkeit mit minimaler Downtime unter Verwendung von Standard-Komponenten wird durch einen voll redundanten Aufbau realisiert:
Zwei Sun Sparc, die über ihren primären SCSI Bus mit je drei Platten und dem sekundären SCSI Port der anderen Sun Sparc kommunizieren. Die beiden Maschinen überwachen sich gegenseitig über die SCSI Busse und über das Netzwerk.

Normalbetrieb

Maschine A bootet von der Platte Unix A und startet die Datenbank Sybase. Die primäre Datenbank-Partition liegt auf der Platte DB am primären SCSI-Bus, die sekundäre auf der Platte DB' am sekundären SCSI Bus. Die Spiegelung erfolgt mit Sybase-Mechanismen.
Maschine B bootet von der Platte Unix B und startet das Filesharing NFS für PC-Clients und Ethershare für Mac-Clients. Als primäre Filesystem-Partition wird die Platte FS am primären SCSI-Bus, als Spiegel die Platte FS' am sekundären SCSI Bus verwendet.
Dadurch wird im Normalbetrieb eine Lastverteilung erreicht.

Failover

bei Ausfall einer sekundären Daten-Platte

  • Stopp des jeweiligen Spiegel-Prozesses
  • Nachricht an den Operator
  • sonst normaler Betrieb

bei Ausfall einer primären Daten-Platte

  • Stopp des jeweiligen Spiegel-Prozesses
  • Aktivieren der sekundären als primäre Platte
  • Nachricht an den Operator
  • sonst normaler Betrieb

bei Ausfall der Unix-Platte, eines SCSI-Bus, eines Netzwerks oder einer Maschine

  • Stopp der betroffenen Maschine
  • Starten der fehlenden Services auf der anderen Maschine mit den gespiegelten Daten-Platten
  • Nachricht an den Operator
  • sonst normaler Betrieb

Umgebung

SUN, Solaris, Data General, DG/UX
Unix Installation mit Shell-Programmierung
Sybase Installation mit Shell-Programmierung und SQL-Scripts
Überwachung mit c, SCSI, TCP
Failover mit Shell-Programmierung

Projekt-Gruppe

Projektleitung
drei MA

Projektliste