GULP Logo

Ihre Quelle für externe Spezialisten aus IT und Engineering

GULP Profil: Konzeption/Entwicklung C/C++, ORACLE, TSM, Unix, Windows

Kontakt zum Kandidaten:







Über GULP:
  • GULP ist die wichtigste Quelle
    für die Besetzung von IT-/Engineering-Projekten im deutschsprachigen Raum.
  • Sie suchen Projektunterstützung?
    Im Kandidaten-Pool von www.gulp.ch mit mehr als 75.000 IT-Freiberuflern, darunter 10.500 Freelancer mit Schwerpunkt Engineering, finden Sie die externen Mitarbeiter für Ihre Anforderungen.
  • Sie suchen selbst ein Projekt?
    Mit Ihrem Profil bei GULP können Sie Projektangebote von 3.000 Unternehmen erhalten. Registrieren Sie sich kostenfrei.
 
Wohnort                    82xxx, Deutschland 
EDV-Erfahrung seit         1984 
Verfügbar ab               23.04.12 zu 100%, Vor-Ort-Einsatz 100% möglich 
Konzeption/Entwicklung C/C++, ORACLE, TSM, Unix, Windows
Software-Entwicklung / Programmierung
Beratung / Consulting
Administration / Support

Design und Entwicklung insbesondere auch heterogener Systeme Unix/Windows/Host

Festanstellung kommt derzeit nicht in Betracht, nur freiberufliche Mitarbeit
Studium der Informatik an der TU München, seitdem freiberuflicher Systemanalytiker
Deutschland: D8
Kommentar:
Deutschland: Großraum MUC
Deutsch 
Englisch 
FranzösischGrundkenntnisse (Schule)

Alpha 
Digital 
HP 
PC 
PDP 
SUN 
VAX 

EchtzeitbetriebssystemeRTE-3, RTE-4/B, RTE-6/VM
HPUX 
MS-DOS 
SUN OS, Solaris 
Unix 
VMS 
Windows 

AssemblerIntel, Alpha
C19 Jahre, sehr solide Kenntnisse
C++ 
Emacs 
Fortraninsbesondere Koppelung FORTRAN/C/Assembler
Imake, GNU-Make, Make-Maker etc... 
Maschinensprachenx86 und Alpha
Perl 
PL/SQL 
Qt 
Scriptsprachen 
Shell 
TeX, LaTeX 

B-Tree 
IMAGE/1000Entwicklung sekundärer Zugriff über B-Bäume
MySQL 
Oracle7.x, 8.x, 9.x, ProC, OCI, BLOBs
SQL 

CICS 
Ethernet 
Internet, Intranet 
LAN, LAN Manager 
LU6.2 
Message Queuing 
RPC 
SNA 
TCP/IP 
Token Ring 
Windows Netzwerk 
Winsock 

Erfahrungen im Bereich:
* Design, Entwicklung, Test, Einführung und Betrieb
* Rettung notleidender Softwareprojekte

* TSM: Backup und Langzeitarchivierung, mandantenspezifische Trennung der Daten
* Verschlüsselung
* automatische Fernüberwachung von und automatische Softwareverteilung
  auf großen, heterogenen Systemen
  (Hosts, 650 Unix/NT4.0/W2K-Server, 45.000 Clients)
* Erfassung, Aufbereitung und Auswertung der SNA-Ausfalldaten von etwa
  8500 SB-Geräten mit dem Ziel, die SNA-Anbindung stabiler zu machen

* Simulatoren zur Ausbildung von Schiffsbesatzungen (Radarnavigation,
  Bekämpfung feindlicher Fahrzeuge)
* Interprozeßkommunikation komplexer Simulatoren

* Simulation komplexer technischer Vorgänge in Kernkraftwerken anhand von
  Ursachen-/Folgendiagrammen
Banken, Industrie, Energieversorgung, Wehrtechnik
Projekt:    01.2010 – 03.2010 Wehrtechnik
            Weiterentwicklung Fleetwork Trainer
Situation:  Ein von mir entwickelter Simulator sollte weiter entwickelt werden
Ziel:       Der Simulator sollte auf Linux unter aktueller Hardware laufen und um
Sprechfunk (VoIP) und Flaggensignale erweitert werden
Lösung:     Migration des Projekts auf Linux, Einteilung der Schiffe in zweiGruppen (rot
und blau) mit der Möglichkeit, denen unterschiedliche Flaggensignale nach
dem internationalen Signalhandbuch und den NATO-Erweiterungen zu
zeigen. Die entsprechenden Mannschaften bestätigen dem Ausbilder per
Mausklick, dass sie ihre Flaggensignale verstanden haben. Alle Aktionen
werden aufgezeichnet, so dass sie in einem späteren Debriefing an einem
Beamer besprochen werden können.
Über Headsets können die rote und die blaue Gruppe getrennt untereinander
sprechen („Seefunk“), der Ausbilder kann sich auf die rote oder die blaue
Gruppe aufschalten.
Umgebung:   Linux, C, X11R7, VoIP, mumble

Projekt:    05.2009 – 12.2009 Bank
Automatisierte Infrastrukturüberwachung
Situation:  Neue, scheidende oder den Aufgabenbereich wechselnde Mitarbeiter machen
Änderungen an mehreren Stellen erforderlich (Eintrag ins LDAP, in net
groups, Aufnahme von ssh keys etc.). Dabei kommt es immer wieder zu
Inkonsistenzen.
Ziel:       Etwaige Inkonsistenzen sind zu vermeiden oder wenigstens zu melden
Automatische Überwachungen stellen sicher, dass die Einträge konsistent sind
(z.B. Übereinstimmung der zur Anmeldung an den Maschinen erforderlichen
Einträge in net groups). Falls nicht, so erfolgt eine Meldung direkt am
Terminal, per Mail und/oder ein Eintrag im Qualitiy Center.
Umgebung:   Solaris, LDAP, perl, shell


Projekt:    02.2009 – 04.2009 Bank
Automatisierte, zentrale Erfassung von Testergebnissen
Situation:  Beim Software Configuration Management fallen dezentrale Testergebnisse
an (durch Installationstests und regelmäßige, automatische Tests)
Ziel:       Diese Testergebnisse sollen zentral erfasst werden
Lösung:     Durch eine Schnittstelle werden diese Testergebnisse korrekt den einzelnen
Produkten und Servern zugeordnet und zentral im Quality Center abgelegt
Umgebung:   Solaris, perl, shell

Projekt:    02.2009 – 04.2009 Bank
Automatisierte Unterstützung zur Behebung von Fehlkonfigurationen
Situation:  Zum automatisierten Paketbau aus einem Versionierungssystem heraus ist es
nötig, Eigentümer und Gruppen von Dateien im gerade neu zu erstellenden
Paket richtig zu setzen. Das kann bei fehlerhafter Konfiguration des
Buildservers oder falschen Angaben im Paket scheitern.
Ziel:       Der zugrunde liegende Fehler und Lösungsweg soll ermittelt und an die
Verantwortlichen und die Leidtragenden gemeldet werden.
Lösung:     Ein gescheiterter Paketbau wird auf seine Fehlerursache untersucht, die zur
Behebung nötige Information aus den entsprechenden Quellen beschafft (z.B.
LDAP) und per Mail an die betroffenen Personen bzw. Postfächer gemeldet.
So erspart sich der Entwickler die Analyse des Fehlers und das Ermitteln, wer
den Fehler beseitigen kann. Der Systemadministrator muss sich nicht erst die
zur Fehlerbehebung nötigen Informationen manuell (und fehlerträchtig)
zusammen suchen. Alle Beteiligten sind auf den benötigten Kenntnisstand und
wissen, dass das auch für die anderen Beteiligten gilt.
Umgebung:   Solaris, LDAP, perl, shell

Projekt:    09.2008 – 11.2008 Bank
Automatisierte Erstellung von Solaris-Patches
Situation:  Der Kunde betreibt ein Versionierungssystem. Aus diesem heraus werden
automatisiert Solaris-Pakete erstellt.
Lösung:     Der Upgrade eines Solaris-Paketes auf eine neuere Version bedingt eine nicht
immer hinnehmbare down time. Um diese zu verringern oder ganz
auszuschließen sollten automatisch Solaris-Patches generiert werden.
Der Paketbaumechanismus holt sich die aktuellen Quelltexte aus dem
Versionierungssystem und erstellt daraus die neue Version des Paketes. Diese
wird dann wegen der Reproduzierbarkeit wieder in das Versionierungssystem
eingestellt.
Diesen Mechanismus habe ich dahingehend erweitert, dass er sich auch die
letzte freigegebene Vorgängerversion des Paketes holt und die beiden
gegeneinander vergleicht. Daraus wird dann automatisch ein Patch erstellt, mit
dem die Vorgängerversion des Paketes auf die aktuelle Version upgegradet
werden kann. Nur die geänderten Dateien werden in den Patch eingepackt, die
gleich gebliebenen Dateien nicht. Dabei wird zwischen relevanten und nicht
relevanten Änderungen unterschieden, weil das Versionierungssystem beim
Auschecken der Dateien Kommentare anpasst, die aber vollkommen irrelevant
sind. Zwei shell scripts können als identisch angesehen werden, wenn sie sich
nur durch in Kommentar gesetzte, automatisch generierte, Header
unterscheiden.
Man erhält also als Ergebnis nicht nur ein neues Paket sondern zusätzlich
einen Patch, der das Delta zwischen dem aktuellen Paket und der
Vorgängerversion abbildet. Der Entwickler muss dabei nicht angeben, was
sich geändert hat – das wird automatisch ermittelt.
Umgebung:   Solaris, perl, pkgadd/pkgmk-Family

Projekt:    08.2008 – 09.2008 Bank
Automatisiertes Aufsetzen von Solaris-Zonen
Situation:  viele einzelne Server im Entwicklungsumfeld – hohe Kosten
Das manuelle Aufsetzen von virtuellen Maschinen unter Solaris („Zonen“) ist
aufwändig und fehlerträchtig. Regelmäßig passieren Fehler, die erst später
auffallen und mit hohem Aufwand manuell analysiert und behoben werden
müssen.
Ziel:       Konsoliderung auf wenige Server, die virtuelle Server (Solaris-Zonen) bereit
stellen. Effizientes automatisiertes Aufsetzen dieser Zonen
Lösung:     Erstellung eines Solaris-Paketes. mit dem in definierter und reproduzierbarer
Weise Solaris-Zonen gelöscht und neu aufgesetzt werden können. Man
bekommt dadurch gewissermassen eine „jungfräuliche“ Maschine mit allen
Basiskomponenten per Knopfdruck bereit gestellt und hat so für Tests und
Entwicklung eine definierte Ausgangsumgebung.
Umgebung:   Solaris, shell, perl

Projekt:    06.2008 – 07.2008 Bank
Übersichtliche Darstellung des Softwarestandes
Situation:  Es war schwierig, bei den vielen Entwicklungs-, IT-, QSU- und
Produktionsservern die Übersicht über den Softwarestand zu behalten
Ziel:       Übersichtliche Darstellung des IST-Zustandes mit Hervorhebung etwaiger
Abweichungen Erstellung eines Datenaggregationstools, welches die benötigten Informationen von den einzelnen Server per ssh-Tunnel an eine zentrale Daten-
sammelstelle zur Auswertung schickt. Dort werden die Daten übersichtlich
aufbreitet und als HTML-Seiten bereit gestellt. Man sieht mit einem Blick,
welche Packages wo installiert sind, ob sie korrekt installiert sind und ob es
die richtigen Versionen sind. Abweichungen werden farbig dargestellt, damit
man sie mit einem Blick bemerkt.
Umgebung:   Solaris, perl, HTML

Projekt:    06.2008 – 07.2008 Bank
trouble shooting
Situation:  abnorm hoher Ressourcnverbrauch führt zu Abstürzen
Die von einem anderen Kunden gewünschte Änderung einer Fremdanwendung
hatte schlimme Auswirkungen auf den Betrieb beim Kunden: Extrem hoher
Speicherverbrauch von Anwendungsprozessen führte zunächst zum Swappen
gerade nicht aktiver Prozesse, im weiteren Verlauf zu drastischen
Performance-Einbußen durch thrashing und später zum Crash der Maschine
Ziel:       Diagnose, Sofortmaßnahmen zur Sicherstellung des Betriebs
Lösung:     Erstellung eines Tools, welches die Speichersituation der Maschine überwacht
und bei sich abzeichnender Knappheit angemessene Maßnahmen ergreift: Die
Client-Prozesse der Anwender wurden nach ihrer Inaktivität sortiert und die
am längsten inaktiven Prozesse werden gekillt. Weil diese bei Bedarf
transparent nachgestartet werden hat das abgesehen von einer minimalen
Verzögerung keine nachteiligen Auswirkungen für die Anwender. Als
Kriterium für die Inaktivität wurden die Zeitstempel der file descriptoren
verwendet, so dass jeglicher I/O, Datenbank, Anwendung, Netzwerk etc.
betrachtet wird. So kann vermieden werden, dass möglicherweise
zeitaufwändige Aktionen abgebrochen werden.
Umgebung:   Solaris, PVCS Dimensions, perl

Projekt:    02.2008 – 05.2008 Bank
trouble shooting
Situation:  dead locks legen Fremdhersteller-Anwendung lahm
Ziel:       Diagnose, Abhilfe
Lösung;     Erstellung eines Tools, welches die dead locks erkennt und Informationen aus
der Anwendung und mehrerer Datenbanken verknüpft, um eine
Diagnosemöglichkeit zu bekommen (welcher Anwender hat die Blockade
ausgelöst? Was hat er versucht, zu tun?) und konkrete Maßnahmen zu
ermitteln, um das Problem für den Moment zu lösen (einen Client-Prozess
abbrechen ist besser als warten, bis überhaupt nichts mehr geht).
Umgebung:   Solaris, Oracle, PVCS Dimensions, SQL, perl

Projekt:    03.2007 – 01.2008 Bank
Migration von (PVCS Dimensions 9, Solaris 9, Oracle 9) nach (PVCS
Dimensions 10, Solaris 10, Oracle 10), Einführung von Sun Cluster, Resource
Groups, Zonen
Situation:  PVCS Dimensions Version 9 lief auf einer Sun Fire 440, die dazugehörige
Oracle-9 Datenbank auf einer anderen Sun Fire 440, beide Maschinen unter
Solaris 9
Ziel:       Migration auf PVCS Dimensions 10, Solaris 10, Oracle 10 und Sicherstellung
ununterbrochener Verfügbarkeit durch Einführung eines Sun Clusters
Lösung:
  • Sicherstellung der Robustheit des Paketbau-Mechanismus der Solaris-Pakete direkt aus PVCS Dimensions heraus
  • Installation des gesamten Systems einschließlich der Anwendung und Datenbank durch Solaris-Pakete
  • Automatisierte, parallelisierte Migration der Daten von PVCS Dimensions 9 nach PVCS Dimensions 10
  • Sicherstellung hoher Verfügbarkeit durch Schwenkbarkeit der einzelnen Komponenten innerhalb des clusters: Die Datenbank in einer resource group und der Anwendung in einer Zone (=virtuelle Maschine). Das bringt enorme Vorteile:
    • bei geringer Last werden Anwendung und Datenbank auf einem cluster node gefahren. Der Verzicht auf die TCP/IP-Verbindung zwischen DB und Anwendung bringt eine hervorragende Performance
    • bei hoher Last werden Anwendung und Datenbank auf verschiedenen cluster nodes gefahren: Sowohl Datenbank als auch Anwendung haben den gesamten Arbeitsspeicher und alle CPUs zur Verfügung, und die Performance-Einbuße der internen TCP/IP-Verbindung hält sich durch die Verwendung privater Interfaces in Grenzen
    • Sind Wartungsarbeiten an einem cluster node notwendig, so kann durch das Evakuieren dieses cluster nodes die Verfügbarkeit aufrecht erhaltenund dennoch ohne Druck die Wartung des abgeschalteten nodes durchgeführt werden
    • Sollten ernsthafte Probleme an einem cluster node auftreten, so wird dieser zunächst evakuiert, die Verfügbarkeit wird bei möglicherweise reduzierter Performance durch den anderen cluster node sichergestellt.
    • Dann wird ein weiterer cluster node hinzu konfiguriert, die Last kann nun wieder verteilt werden. Dann kann ohne Druck die Behebung der Probleme des kranken cluster nodes angegangen werden.
    • Durch Aufnahme weiterer nodes in den Cluster kann die Performance weiter gesteigert werden
    • Bereitstellung einer regelmäßig aktualisierten QS-Umgebung: Die QS-Datenbank wird aus der produktiven Datenkank geclont, die item library(deren Konsistenz zur Datenbank absolut notwendig ist) wird durch eine Synchronisation mit der TSM-Sicherung erreicht. Dieses Vorgehen belastet nicht die produktive Umgebung, und durch die Synchronisation der bereits vorliegenden, allerdings veralteten, item library mit dem im TSM festgehaltenen Referenz-Stand hält sich der Zeitaufwand in Grenzen – ein vollständiger Restore der item library aus dem TSM würde Tage dauern. So werden nur die tatsächlich benötigten Dateien aus dem TSM geholt und die nicht mehr gültigen Dateien aus der QS-Kopie der item library gelöscht
Umgebung:   PVCS Dimensions, Solaris, Oracle, TSM, perl, bash

Projekt:    09.2004 - 12.2005 Bank
Konzeption, Entwicklung und Durchführung der Konsolidierung aufbewahrungspflichtiger Transaktionsdaten ins TSM-Langzeitarchiv
Situation:  Über viele Jahre hinweg waren Transaktionsdaten auf vielen Servern angefallen
und vor Ort auf unterschiedlichen Datenträgertypen archiviert worden. Diese
sollten in einem zentralen TSM-Archiv konsolidiert werden.
Die Daten waren dabei auf Vollständigkeit, Konsistenz und Redundanz zu
überprüfen und in eine geordnete Verzeichnisstruktur zu überführen.
Lösung:     Die Datenträger wurden vor Ort eingelesen und auf einem Filer bereit gestellt.
Per perl script wurden die dann auf Vollständigkeit, Konsistenz und Redundanz
überprüft und nach Absprache bereinigt. Gegebenenfalls wurde der Vorgang
nach dem Einspielen weiterer Datenträger wiederholt.
Dann wurden die bereinigten Altdaten ins TSM übernommen. So konnte darauf
verzichtet werden noch viele Jahre Hardware vorhalten zu müssen, mit denen
die alten Bänder eingelesen werden können. Außerdem wurde so klar, ob die
Altdaten auch wirklich vollständig sind – eine Suche nach verschollenen
Datenträgern wird um so aussichtsloser, je mehr Jahre seitdem vergangen sind.
Umgebung:   W2K, perl, TSM command line tools


Zeitraum:   April 2003 bis September 2003
Branche:    Bank
Projekt:    Passwort-Verteildienst
Situation:  Hart codierte oder bei der Installation festgelegte

Zugangskennungen für Datenbank-Accounts und Netzwerkressourcen sollen ersetzt werden durch im laufenden Betrieb zu ändernde Zugangskennungen. Berechtigte Anwendungen sollen diese veränderten Zugangskennungen automatisch erhalten, manipulierte Anwendungen sollen erkannt und abgewiesen werden. Ebenso sollen sicherheitskritische DLLs der Anwendungen gegen Manipulation geschützt werden können.

Lösung:     Ich habe einen Passwort-Verteildienst entwickelt, der sich bei der
Installation ein Schlüsselpaar  für asymmetrische Verschlüsselung erzeugt und seinen öffent­lichen Schlüssel in eine Interessentenliste der Datenbank einträgt. Der Administrator schaltet dann den Verteildienst frei. Die Liste der Zugangs­kennungen wird mit dem aus der Interessentenliste erhaltenen öffentlichen Schlüssel  für die frei geschalteten Verteildienste verschlüsselt und in die Datenbank eingetragen.

Der Verteildienst liest nun die für ihn verschlüsselte Liste der Zugangskennungen und entschlüsselt sie mit seinem privaten Schlüssels. Ebenso liest er aus der Datenbank die Liste der frei geschalteten Anwendungen. Er wartet dann auf Anfragen der Anwendungen.   

Die Anwendungen ihrerseits erfragen ihre Zugangskennungen durch den Aufruf einer ebenfalls neu entwickelten DLL. Die DLL stellt nun fest, welches Programm den laufenden Prozess erzeugt hat und ermittelt seinen Namen und seine Signatur (MD5-Hash). Mit diesen Informationen wendet sich die DLL an den Passwort-Verteildienst, der in der Liste der frei geschalteten Anwendungen nachsieht, ob diese Anwendung überhaupt frei geschaltet ist und ob für diese Anwendung sicherheitskritische DLLs vorgeschrieben sind. Der

Dienst liefert dann entweder direkt die für das anfragende Programm hinterlegte Zugangskennung, lehnt die Anfrage ab oder er erfragt die Signaturen (MD5-Hashes) der sicherheitskritischen Anwendungs-DLLs und überprüft, ob diese frei geschaltet sind, bevor er sich für Beantworten oder Ablehnen entscheidet.

 

Die gewählte Lösung hat den Vorteil, dass sie sehr schnell ist, weil der Passwort-Verteildienst alle benötigten Informationen in seinem Adressraum hält und so im laufenden Betrieb kein Datenbank-Zugriff nötig ist.     

Nun kann es natürlich passieren, dass die Zugangskennungen verändert worden sind, entweder durch einen Menschen oder durch einen automatisierten Vorgang. Das dazu benutzte Administrationswerkzeug ändert aber nicht nur die Zugangs­kennungen, sondern es erstellt auch die neue Liste der Zugangskennungen und legt sie, für die frei geschalteten Verteildienste verschlüsselt, in der Datenbank ab.

Da der einzelne Verteildienst davon nichts mitbekommen hat liefert er nun im guten Glauben eine falsche Antwort an die nächste anfragende Anwendung. Alles, was die Anwendung dann tun muss ist einfach noch mal zu fragen. Der Verteildienst führt Buch über die an ihn gestellten Anfragen und betrachtet eine in einem kurzen Zeitfenster wiederholt gestellte Anfrage einer Anwendung als "Misstrauensvotum" und liest die für ihn verschlüsselte Liste der Zugangskennungen  erneut aus der Datenbank. Diese zweite Anfrage beantwortet er dann richtig, mit der inzwischen neu festgelegten Zugangskennung. In der gleichen Weise erfährt der einzelne Verteildienst auch, wenn neue Anwendungen oder DLLs frei geschaltet wurden. Der Administrator muss sich nicht darum kümmern, dass die einzelnen Verteildienste die Freischaltlisten oder Listen der Zugangskennungen neu lesen, die verteilen sich automatisch.  

Zur Speicherung der verschlüsselten Zugangslisten in der Datenbank wurden BLOBs gewählt, weil es dann keine Größenbeschränkungen gibt und die Listen mit einem einzigen Datenbankzugriff gelesen werden können.

Software:   C/C++, MFC, PGP/gpg, NT4.0, W2K, XP



Zeitraum:   Mai 2003
Branche:    Bank
Projekt:    Langzeitarchivierung im Multicom/Multiweb-System
Situation:  Der Kunde betreibt ein hochverfügbares Zahlungsverkehrs-System auf einem unter
AIX laufenden HACMP-Cluster. Die von Mitarbeitern und Firmenkunden angestoßenen Vorgänge erzeugen Dateien, die im Zuge der weiteren Verarbeitung durch Pools (Verzeichnisse) wandern. Um die Nachvollziehbarkeit der Vorgänge sicherstellen zu können sind diese Daten, nach Mandanten getrennt, der Langzeitarchivierung zu unterwerfen.
Lösung:     Die Bewegungsdaten werden erfasst und mandantenspezifisch getrennt.

Bei manchen dieser Daten ist schon aus dem Dateinamen der Mandant zu erkennen, bei anderen ist dieses Wissen aus der Datenbank zu extrahieren. Aus Protokollen werden mandantenspezifische Auszüge erstellt. So entsteht für jeden Tag und für jeden Mandanten ein komprimiertes Archiv. Die nicht angetasteten Originalversionen der Protokolle landen ebenso wie Protokolle, die keinem Mandanten zugeordnet werden können, in einem "Lumpensammler"-Archiv.

Diese Tagesarchive werden dann je nach der Archivierungsstrategie des einzelnen Mandanten über TSM archiviert. So können die unterschiedlichen Aufbewahrungsfristen eingehalten werden, ohne unnötige Kosten zu verursachen.

Software:   perl, shell, TSM



Zeitraum:   September 2003
Branche:    Bank
Projekt:    Optimierung der Backup-Strategie im Multicom/Multiweb-System
Situation:  Der Kunde betreibt ein hochverfügbares Zahlungsverkehrs-System auf einem
unter AIX laufenden HACMP-Cluster. Jede Nacht wird zur betriebsschwächsten Zeit am frühen Morgen ein TSM-Backup angestoßen. Das System bleibt dabei aber verfügbar, die Anwendung wird nicht heruntergefahren. Die bestehende Sicherungsstragie war auf  Schwachstellen und Kostenoptimierung hin zu untersuchen.
Lösung:     Die Analyse ergab eine Reihe von Schwachpunkten, die unnötige Kosten

und unerwünschte Gefährdungspotentiale zur Folge hatten, z.B.:

Das ORACLE-Online-Backup wurde erst nach dem file system backup durchgeführt, so dass jeweils die am Vortag erzeugten Datenbank-Dateien gesichert wurden mit der Folge, dass bei einem Wiederaufsetzen nach einem crash unnötigerweise die redo logs des gesamten Vortages eingespielt werden mußten, um die Datenbank auf den Zeitpunkt des nächtlichen Backups zu bringen.

Dazu kommen dann noch die redo logs bis zum Zeitpunkt des Crashs. Die für eine disaster recovery benötigte Zeit wird so unnötig lang.

Die via management class im TSM festgelegten Aufbewahrungsstrategien der Online-Backups und des Datenpools waren nicht aufeinander abgestimmt. So entstehen unnötige Kosten, denen kein Nutzen gegenüber steht.

Zusätzlich zu den Online-Backup-Dateien und den redo logs der ORACLE-Datenbank wurden auch noch die "lebendigen" ORACLE-Datenbankdateien (die tablespaces, *.dbf) über das reguläre file system backup mit gesichert. Das bringt nur Kosten, keinen Nutzen, denn aus den tablespace-Dateien einer laufenden Datenbank kann man die Datenbank nicht rekonstruieren.

Die Kosten sind erheblich, weil die tablespace-Dateien eine beträchtliche Größe erreichen und sich laufend ändern, also jede Nacht erneut gesichert werden.

Obendrein ist dieses Vorgehen noch massiv gefährlich: Um das System nach einem etwaigen Crash wieder aufzusetzen wird man aus Zeitgründen mit der Datenbank beginnen: Erst das Zurücksichern des Online-Backups der Datenbank und der redo logs. Während die Datenbank dann durch Einspielen der redo logs nach vorne gerollt wird, um auf den aktuellen Stand zu kommen wird parallel dazu durch Rücksicherung des Backups das file system wieder hergestellt. Sind nun in in dem file system backup auch noch die "lebendigen" Datenbank-Dateien, die tablespace files, mit gesichert worden, so überschreiben diese nun die gerade eben mühsam wieder hergestellte Datenbank. Die Datenbank ist dann korrupt und das nächste disaster nimmt seinen Lauf.

Um einen möglichst schnellen Wiederanlauf nach einer Störung sicherstellen zu können wurden mehrere (tägliche) Generationen der durch das Online-Backup der Datenbank erzeugten Tablespace-Dateien neben der TSM-Sicherung auch noch direkt auf dem Plattenspeicher vorgehalten. Wegen der rasch ansteigenden Datenvolumina war die Notwendigkeit neue Platten anzuschaffen absehbar.

Durch Kompression der Online-Backups nach der TSM-Sicherung konnte diese Neuanschaffung von Platten vermieden werden. Der bei Tablespace-Dateien erreichbare Kompressionsfaktor ist sehr hoch. Zwar muss immer noch genügend Plattenplatz für eine unkomprimierte Sicherungsversion vorgehalten werden, aber halt eben nur für eine Version, nicht für mehrere.

Software:   perl, shell, TSM



Zeitraum:   März 1996 bis Dezember 2001
Branche:    Bank
Projekt:    Softwareverteilung, automatische Installation

Aufbau und Betrieb einer Integrationstestumgebung, um die beim Kunden entwickelten Softwarepakete auf ihre Verträglichkeit in Bezug auf Installation und Betrieb zu testen. Entwicklung einer Installationsoberfläche, die die für die Installation benötigten Daten (z.B. Art der Hostanbindung, Vernetzung der Server untereinander etc.) nach Möglichkeit selbst herausfindet und sonst erfragt. Diese Angaben werden einer rigorosen Verifikation unterzogen (z.B. Prüfung der Kommunikation der ORACLE-Datenbanken untereinander für die Replikation) bevor die eigentliche Installation erfolgt. Besonderer Wert wurde dabei gelegt auf die Reduzierung der down time und die Nachvollziehbarkeit.

Software:   Unix, SINIX-Z, NT4.0, W2K, shell, perl, C, pkgadd



Zeitraum:   Februar 1998 bis Juli 2002
Branche:    Bank
Projekt:    Service Control Monitor (Überwachung von Servern)

  Design, Entwicklung und Betrieb eines Überwachungssystems, welches die

  auf einem Server installierten Softwarekomponenten (Datenbank,

  elektronisches Journal, file transfer, Host-Datenbankanbindung etc.)

  im laufenden Betrieb überwacht und bei Abweichungen vom Sollzustand

  nach Möglichkeit selbständig geeignete Maßnahmen ergreift (z.B.

  Restart eines gecrashten daemons), zumindest aber Alarm schlägt. Der

  Service Control Monitor konfiguriert sich selbst beim Booten des

  Servers, er schaut nach, welche Komponenten installiert und deswegen

  zu überwachen sind. Dabei ist eine differenzierte zeitliche Steuerung

  implementiert, so müssen manche Komponenten nur tagsüber laufen, und

  manche Fehlerzustände werden erst dann kritisch, wenn sie über einen

  längeren Zeitraum anhalten (z.B. Übertragung aufgelaufener

  Offline-Umsätze in die Host-Datenbank).

Software: Unix, SINIX-Z, NT4.0, W2K, C, perl, shell



Zeitraum: März 2001 bis Oktober 2002
Branche:  Bank
Projekt:  Erfassung der SNA-Ausfallzeiten von SB-Geräten

  Der Kunde betreibt ein komplexes Netz, bestehend aus mehreren Hosts,

  ca. 650 Servern und 8.500 SB-Geräten, verteilt auf ca. 100 rechtlich

  autonome Einheiten. Die SB-Geräte schreiben auf den jeweiligen Servern

  log files, aus denen man den Zustand der SNA-Verbindung erkennen kann.

  Ziel des Vorhabens war es, diese Daten auf den Kundensystemen zu

  erfassen und zentral verfügbar zu machen, um Auswertungen nach

  folgenden Kriterien zu ermöglichen:

  * Erkennen von Schwachstellen im Netz (z.B. überlastete Router)

  * Analyse von Wiederanlaufproblemen nach Netzzusammenbrüchen

  * Erkennen von Lastproblemen (zu lange Antwortzeiten/SNA-Timeouts)

  * Erkennen problematischer Server

  * Erkennen problematischer Konfigurationen oder Gerätekombinationen

  Die Auswertungen können dazu in einer Vielfalt von Formen erstellt

  werden, tabellarisch oder grafisch.

Software: C, perl



Zeitraum: April 1999 bis Oktober 2002
Branche:  Bank
Projekt:  Remote Service Agent

  Design, Entwicklung, Einführung und Betrieb eines automatischen,

  bedienerlosen, hostgestützten Fernwartungssystems für ca. 650

  Anwendungsserver (Unix, NT4.0 und W2K). Die Jobs werden dabei auf

  einem bestimmten Server ("master server") erstellt: Alle benötigten

  Dateien werden in einen Verzeichnisbaum kopiert, auch ein

  Script oder Programm namens "AutoAction". Dieser Verzeichnisbaum wird

  in einem komprimiertes tar-file zusammengepackt und das dann zur

  Verhinderung von Mißbrauch mit einer elektronischen Signatur versehen.

  Dann wird es in eine Hostdatenbank geladen, dabei wird festgelegt,

  für welche Server dieser Job bestimmt ist. Eine gezielte Auswahl

  einzelner Server ist ebenso möglich wie eine Auswahl nach Kriterien

  (z.B. "alle NT4.0-Server mit der Softwarekomponente XYZ"). Ebenso wird

  ein Freischaltdatum und ein Verfallsdatum festgelegt. Die

  Anwendungsserver fragen automatisch regelmäßig beim Host nach, ob ein

  solcher Fernwartungsjob für sie bereitgestellt wurde und laden den

  gegebenfalls herunter. Wegen der rechtlichen Autonomie der einzelnen

  Kunden haben die die Möglichkeit, gezielt einzelne Jobs oder ganze

  Jobklassen in Bezug auf das automatische Herunterladen oder in Bezug

  auf die automatische Ausführung zu sperren.


  Nach dem Herunterladen wird die elektronische Signatur überprüft und

  das Archiv dann ausgepackt, so daß wieder der gleiche Verzeichnisbaum

  wie auf dem master server entsteht. Anschließend wird das AutoAction

  script ausgeführt. Dabei entstehende Rückmeldungen werden auf dem

  gleichen Weg (über die Host-Datenbank) auf den master Server

  übertragen, so daß dort sofort erkannt werden kann, ob dieser Job auch

  wirklich auf allen Servern fehlerfrei gelaufen ist. Nur die wenigen

  Server, die sich pathologisch verhalten haben müssen dann manuell

  kontrolliert werden.

  Es ist auch möglich, zusätzlich zu dem AutoAction Script auch noch ein

  FailureRevert Script einzupacken, welches bei einem etwaigen Scheitern

  des AutoAction Scriptes auf halben Weg steckengebliebene Änderungen

  rückgängig macht, damit der Server bis zur manuellen Wartung in einem

  stabilen Zustand verbleibt (weiterläuft, zwar ohne die Änderung, aber

  wenigstens überhaupt).

  Die Stärken des Systems treten vor allem bei Stichtagsumstellungen und

  Notfall-Wartungsmaßnahmen hervor. Oder etwa, wenn zu überprüfen ist, ob

  auch wirklich alle 45.000 Clients mit einer bestimmten Softwareversion

  ausgestattet sind, bevor man sich trauen kann, ein neues Hostprogramm

  freizuschalten.

  Sehr nützlich ist das System auch, wenn ein Server neu installiert

  wird: Nach der Installation der Software werden automatisch die

  neuesten Patches aus der Hostdatenbank nachgeladen und installiert.

Software: C, perl, SNA



Zeitraum: Oktober 1988 - Mai 1990 (in mehreren Teilstufen)
Branche:  Wehrtechnik
Projekt:  Fleetwork trainer (fwt)

 

  Ziel war die Erstellung eines Simulators zur Ausbildung von

  Schiffsbesatzungen in Bezug auf die Radarnavigation. Jede Besatzung

  sieht das eigene Radarbild und kann es durch Änderung der

  Radarreichweite etc. beeinflussen. Jede Besatzung fährt das eigene

  Schiff (Ruderlage, Maschinenleistung etc.). Alle zusammen sollen in

  einer vorgegebenen Zeit ein bestimmtes Fahrmanöver durchführen (z.B.

  bestimmte Formationswechsel). Der Ausbilder kann sich von seinem

  Arbeitsplatz aus die Anzeigen der einzelnen Schiffsbesatzungen

  anzeigen lassen und mit den Besatzungen kommunizieren (via Headset).

  Er kann die Übung jederzeit stoppen und beeinflussen (z.B. Standort

  eines Schiffes ändern). Ebenso kann der Ausbilder "verwaiste" Schiffe

  fahren, damit mehr Schiffe an Übungen teilnehmen können als

  tatsächliche Crews vorhanden sind. Die gesamte Übung einschließlich

  aller Aktionen der einzelnen Besatzungen wird protokolliert und kann

  gemeinsam in einem Übungsraum über einen Beamer nachvollzogen werden,

  damit Fehler der Besatzungen gemeinsam besprochen werden können.

  Bestandteil des Systems ist ein map editor, mit dem pseudorealistische

  Küstenlinien erstellt werden können. Genau modelliert dort, wo die

  exakte Küstenlinie benötigt wird, sonst anhand weniger Stützpunkte

  automatisch generiert.

  Das System lief auf Standard-Workstations, zunächst unter X.10, dann

  unter X.11. Bei der mangelnden Leistungsfähigkeit der Hardware damals

  waren Klimmzüge nötig, um ein akzeptables Zeitverhalten hinzubekommen

  (Küstenlinie clippen, Radarbild zeichnen, Kollisionsprüfung).

Software: C, X.10, X.11



Zeitraum: Januar 1994 bis November 1994
Branche:  Wehrtechnik
Projekt:  actual speed tactical trainer (astt)

  Ausgangslage war ein notleidendes Softwareprojekt:

  Der Kunde hatte von einem inzwischen in Konkurs gegangenen

  ausländischen Softwarehaus einen Simulator für Kriegsschiffe

  entwickeln lassen, in dem der Einsatz der Waffensysteme trainiert

  werden sollte. Eine zentrale Komponente des Systems ("postal

  service"),  zuständig für den Nachrichtenaustausch der einzelnen

  Komponenten des Simulators, war dem Normalbetrieb zwar gewachsen,

  brach aber zusammen, sobald es im Vorfeld von Kampfhandlungen hektisch

  wurde und das Nachrichtenaufkommen daher steil anstieg (z.B. Betätigen

  von Schaltern, Tasten etc.). Das ursprüngliche Entwicklungsteam war

  nicht mehr greifbar, die Dokumentation rudimentär.

  Das erste Teilprojekt war eine rigorose statische Analyse des

  vorliegenden postal services, um die Schwachstellen aufzudecken:

  Designfehler, die Flaschenhälse bewirkten und so zu deadlocks führten.

  Ergebnis war eine Dokumentation mit den gewonnen Erkenntnissen und

  einem Kapitel "Wege aus dem Sumpf", in dem Lösungsvorschläge

  aufgezeigt wurden.

  Zweiter Schritt war eine Neuentwicklung des postal services, der keine

  Schwachstellen mehr aufgewiesen hat und dadurch jedem

  Nachrichtenaufkommen gewachsen war. Erreicht wurde dies durch

  geschickten Einsatz von Interprozeß-Kommunikation und dynamisch

  vergrößerbare Ringspeicher im shared memory mit Zugriffssteuerung

  durch Semaphore.

Software: C, X.11, Unix, IPC



Zeitraum: Oktober 1986 bis Juni 1988
Branche:  Energieversorgung
Projekt:  STEP-GRAPH

  Um das Verhalten von Kernkraftwerken im laufenden Betrieb simulieren

  zu können, insbesondere bei Störungen, wird die Fortpflanzung von

  Störungen in der Anlage durch von Ingenieuren a priori erstellte

  Ursachen-Folgendiagramme beschrieben. Um diese Diagramme maschinell

  weiterverarbeiten und zu einem zur Laufzeit des Reaktors ständig mit

  den aktuellen Daten zu fütternden Modell zu kommen werden diese

  Diagramme zunächst per Hand in einen Quelltext übersetzt, der einer

  speziell entwickelten Grammatik genügen muß. Das ist ein wegen der

  ungewohnten Grammatik zeitaufwändiger Prozeß mit vielen Roundtrips

  (editieren, übersetzen, Fehler beheben, wieder übersetzen etc.). Zur

  Erleichterung dieser nervtötenden Arbeit wurde im ersten Schritt ein

  syntaxgesteuerter Editor geschrieben, der vor dem Start die Grammatik

  einliest und dann nur noch solche Texte als Eingabe akzeptiert, die

  der Grammatik genügen. In einem Menü werden die an der Stelle des

  Cursors zulässigen Terminalsymbole angegeben, über Syntaxfehler kann

  man den Cursor nicht hinwegbewegen. Wenn man den Cursor an das Ende

  des Textes bewegen kann, dann ist der Text bis dahin syntaktisch

  korrekt, wenn ein besonderes Terminalsymbol ("Ende des Textes") an

  dieser Stelle zulässig ist, dann ist der Text auch vollständig. Damit

  war das Problem der Syntaxfehler gelöst, aber es war noch nicht

  sichergestellt, daß das Diagramm auch wirklich korrekt übertragen

  wurde, also nicht zum Beispiel ein Und-Gatter statt einem Oder-Gatter

  eingegeben wurde.

  Dieses Problem wurde dadurch gelöst, daß in der Grammatik zusätzliche,

  besondere Regeln eingebaut wurden, durch die alleine durch das

  Eingeben des Textes auf einem Grafikbildschirm das entsprechende

  Diagramm mit aufgebaut werden kann. Wenn das so entstandene Diagramm

  am Ende des Textes mit dem Quelldiagramm übereinstimmt, dann ist der

  Text korrekt eingegeben worden.

  Diese automatisch erstellten Diagramme wurden dann auch zur

  Rückdokumentation für den TÜV eingesetzt.

Software: FORTRAN, C, GKS, X.11
Referenzen werden für registrierte GULP Nutzer angezeigt.