11.07.2015 Aufrufe

Praktikum bei der AdNovum Informatik AG - Vis

Praktikum bei der AdNovum Informatik AG - Vis

Praktikum bei der AdNovum Informatik AG - Vis

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

VISIONEN Januar 2004VISIONEN Oktober 2004StudentAktiv<strong>Praktikum</strong> <strong>bei</strong> <strong>der</strong><strong>AdNovum</strong> <strong>Informatik</strong> <strong>AG</strong>MANUEL GRABER - ZURÜCK AUS DEM PRAKTIKUMAuch ich möchte euch die Erfahrungen,die ich im <strong>Praktikum</strong> <strong>bei</strong> <strong>der</strong> <strong>AdNovum</strong>gesammelt habe, nicht vorenthalten. Hierdie Kurzversion: Es hat sehr viel Spassgemacht, ich habe eine Menge gelernt,ich würde es je<strong>der</strong>zeit wie<strong>der</strong> tun.Die <strong>AdNovum</strong> ist spezialisiert auf die Entwicklungvon E-Banking- und Sicherheitslösungen undApplikationssystemen im FinanzdienstleistungsundBundesbereich. Zu ihren Kunden gehörenbekannte Firmen wie UBS, PostFinance, Swisscom,Telekurs und das EJPD. Gegründet wurdedie <strong>AdNovum</strong> vor 16 Jahren. Mittlerweile hat dasUnternehmen über 100 Mitar<strong>bei</strong>ter und unterhältneben dem Hauptsitz in Zürich Büros in Bern,den USA und Ungarn.Die <strong>AdNovum</strong> ar<strong>bei</strong>tet projektorientiert,d.h. es werden keine fertigen Produkte verkauft,son<strong>der</strong>n kundenspezifische Lösungen entwickelt.Diese Lösungen basieren hauptsächlich auf denvon <strong>der</strong> <strong>AdNovum</strong> entwickelten Middleware-Komponenten o<strong>der</strong> Applikationsframeworks wiezum Beispiel Nevis Web (eine Lösung zur Web-Integration), ISI (eine Corba-/J2EE-Implementierung)o<strong>der</strong> SecStack (eine Security Middleware).Am Anfang des <strong>Praktikum</strong>s fand die sogenannte Safari statt, <strong>bei</strong> <strong>der</strong> man alle Mitar<strong>bei</strong>ter,die in einer Schlüsselposition tätig sind, kennenlernt. So erfährt man, wer für was zuständig istund an wen man sich später mit Fragen wendenkann. Sitzungen finden in <strong>der</strong> Regel an <strong>der</strong>Kaffeebar statt, wo man sich auch kostenlos mitGetränken eindecken kann. Zu Mittag essen kannman zu einem fairen Preis in <strong>der</strong> hauseigenen„Guccinetta“, die eher ein Restaurant als eineKantine ist.Der Security Stack (SecStack)Meine <strong>Praktikum</strong>saufgabe lag im Bereich desSecStack. Dieser bietet ein API, das es erlaubt,einen sicheren Kontext mit einem Kommunikationspartneraufzubauen und innerhalb diesesKontexts verschlüsselte und signierte Daten zuübertragen. Dieses API ist als GSSv2 (GenericSecurity Service, RFC2743) standardisiert. GSSfunktioniert unabhängig von <strong>der</strong> eigentlichenÜbertragung, indem es nach jedem Aufruf einerFunktion ein «Token» zurückgibt, das man danndem Kommunikationspartner schicken muss. Da<strong>der</strong> SecStack auf die verschiedensten Plattformenportiert werden sollte, erfolgte die Implementierungin C (ohne ++). Da<strong>bei</strong> wird ein Open-SourceAbstraktionslayer eingesetzt, <strong>der</strong> die Eigenheiten<strong>der</strong> verschiedenen Plattformen kapselt.but to really foul things up requires a computer.37


Oktober 2004VISIONENDie <strong>Praktikum</strong>saufgabeZur Qualitätssicherung wurde eine umfangreicheTestinfrastruktur für den SecStack aufgebaut.So gibt es Nightly Builds, mit denen jede Nachtdas ganze Projekt gebaut und mit Hilfe von UnitTests getestet wird. Die Entwickler erhalten dannjeweils am Morgen eine E-Mail mit dem Resultatdieser Nightly Builds. Falls also eine Än<strong>der</strong>ungeinen negativen Effekt gehabt hat, sieht man dasspätestens am nächsten Morgen. Daneben gibtes einen Weekly Build, <strong>der</strong> nach dem gleichenSchema abläuft, aber eben nur einmal pro Wocheausgeführt wird. Die Idee dahinter ist, dass manim Weekly Build Tests laufen lassen kann, dielänger dauern (z.B. umfangreiche Integrationso<strong>der</strong>Lasttests).Nun sollte ein Tool geschrieben werden,mit dem man Client-Server Tests ohne grossenKonfigurationsaufwand auf mehrere Maschinenverteilen und automatisiert durchführen kann.Meine Aufgabe war die Entwicklung dieses Tools,das sich nun Distributed Test Framework (DTF)nennt. Nachdem die Grundfunktionalität, die dasDTF haben sollte, festgelegt war, war ich sehr freiin <strong>der</strong> Entwicklung und konnte es nach eigenenIdeen implementieren. Meine Betreuer und dieübrigen Software-Entwickler standen mir da<strong>bei</strong>immer hilfreich zur Seite.Das ResultatDas DTF besteht aus drei Teilen: einem Runner,einem Agenten und einer Bibliothek, die denauszuführenden Testcode enthält.Der typische Ablauf eines Tests sieht so aus,dass <strong>der</strong> Runner ein Konfigurationsfile einliest undgemäss den Informationen in diesem File eineno<strong>der</strong> mehrere Agenten startet, die ihrerseits dieBibliothek laden. Der Testcode in <strong>der</strong> Bibliothekwird ausgeführt und am Schluss wird das Ergebnisdem Runner mitgeteilt. Um den Output währendeines Tests aufzuzeichnen, hat je<strong>der</strong> Agent ein Logfile,das er nach Abschluss <strong>der</strong> Tests dem Runnerübermittelt. Da<strong>bei</strong> kann im Konfigurationsfileangegeben werden, wie viele Agenten auf welchenRechnern gestartet werden sollen, und welcheTests diese ausführen sollen.Ich programmierte also in C und damit konnteich mich mit (in Zeiten von Java schon fast vergessenen)Dingen wie dem Allozieren und Freigebenvon Speicher sowie dem Suchen nach MemoryLeaks beschäftigen und wild mit Pointern ummich schiessen. Als Entwicklungsumgebungfür C dient in <strong>der</strong> <strong>AdNovum</strong> übrigens XEmacs.Das bedeutet doch eine Umstellung für Eclipseverwöhnte Programmierer, aber man gewöhnt sichrecht schnell daran. Die Ar<strong>bei</strong>t erleichtert habendie C Base Components. Das ist eine Bibliothek,die unter an<strong>der</strong>em einen sehr gut ausgebautenLogger und einen Konfigurationsmanager, mitdem man Informationen aus Konfigurationsfileseinlesen und auch manipulieren kann, bietet.Für die Kommunikation zwischen Runner undAgenten benutzte ich TCP, was mir die Gelegenheitgab, mich mit Netzwerkprogrammierungauseinan<strong>der</strong> zu setzen und ein eigenes Protokoll zuimplementieren. Für das Starten <strong>der</strong> Agenten aufan<strong>der</strong>en Rechnern nutzte ich RSH und SSH.Damit man nicht nach jedem Testlauf mühsamalle Logfiles lesen muss, habe ich ein Perl-Skriptgeschrieben, das die automatisch gesammeltenLogfiles parst und eine übersichtliche HTML Seitegeneriert. So konnte ich während des <strong>Praktikum</strong>sPerl lernen und mich mit HTML beschäftigen.Um die Infrastruktur, die auf den Testrechnernvorausgesetzt werden muss, möglichst geringzu halten, implementierte ich eine Funktionzum Verteilen <strong>der</strong> benötigten Dateien auf dieZielrechner und zum Einrichten <strong>der</strong> benötigtenUmgebung (Dienste starten, etc.).38 To err is human,


VISIONEN Januar 2004VISIONEN Oktober 2004Die einzige Voraussetzung, die ein Rechnererfüllt haben muss, um vom DTF als Testrechnerverwendet zu werden, ist die Zugriffsmöglichkeitüber RSH o<strong>der</strong> SSH. Das DTF ist also in <strong>der</strong>Lage, sich selbst zu verteilen.So ist es jetzt möglich, in den Nightly- undWeekly-Builds des Projektes auch verteilte Client-Server Tests laufen zu lassen, ohne die sonst üblichenProbleme, wie das vorgängige Verteilen <strong>der</strong>nötigen Files, das manuelle Starten <strong>der</strong> benötigtenServices, o<strong>der</strong> <strong>der</strong> Unterhalt von Konfigurationsfilesauf allen Testrechnern.Am Schluss des <strong>Praktikum</strong>s veranstaltet maneinen „Tech-Znüni“ zu dem alle Mitar<strong>bei</strong>tereingeladen sind. An<strong>der</strong>s als <strong>der</strong> Name es vermutenlässt, gibt es dort allerdings in <strong>der</strong> Regel nichtszu essen. Man präsentiert die Ergebnisse seines<strong>Praktikum</strong>s und diskutiert sie mit den übrigenEntwicklern.Das FazitMein <strong>Praktikum</strong> <strong>bei</strong> <strong>der</strong> <strong>AdNovum</strong> war sehrspannend und lehrreich. Ich hatte die Gelegenheit,neue Sprachen zu lernen und mich mitNetzwerkprogrammierung zu beschäftigen. Es warinteressant zu sehen, wie das Ar<strong>bei</strong>ten in einemgrösseren Projekt mit vielen Beteiligten abläuft.Beim Lösen meiner Aufgabe war ich sehr frei; <strong>bei</strong>Problemen fand sich aber immer ein kompetenterAnsprechpartner. Abschliessend kann ich sagen,dass mir das <strong>Praktikum</strong> sehr viel Spass gemachthat und ich die <strong>AdNovum</strong> als <strong>Praktikum</strong>sbetriebsehr empfehle.Links[1] www.adnovum.ch[2] www.nevis-web.combut to really foul things up requires a computer.39

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!