Abschlussbericht Praxissemester - Jochen Rondorfjochen-rondorf.de/fh/psb.pdf ·...

23
Fachbereich Angewandte Informatik Praxissemester Abschlussbericht Praxissemester Vorname: Jochen Name: Rondorf Matrikelnummer: 9000768 Fachsemester: 5 Praxissemestervertrag vom: 16.8.2000 betreuender Hochschullehrer: Prof. Dr. Kurt-Ulrich Witt Unternehmen: OnVista AG Adresse: Stollwerkstraße 3-5 51149 Köln fachlicher Ansprechpartner: Michael Kuhn Telefon: 02203 - 9146114 organisatorischer Ansprechpartner: Jochem Kirsch Telefon: 02203 - 9146218

Transcript of Abschlussbericht Praxissemester - Jochen Rondorfjochen-rondorf.de/fh/psb.pdf ·...

Fachbereich Angewandte Informatik Praxissemester

Abschlussbericht Praxissemester

Vorname: Jochen Name: Rondorf Matrikelnummer: 9000768 Fachsemester: 5 Praxissemestervertrag vom: 16.8.2000 betreuender Hochschullehrer: Prof. Dr. Kurt-Ulrich Witt Unternehmen: OnVista AG Adresse: Stollwerkstraße 3-5 51149 Köln fachlicher Ansprechpartner: Michael Kuhn Telefon: 02203 - 9146114 organisatorischer Ansprechpartner: Jochem Kirsch Telefon: 02203 - 9146218

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 2 -

Inhaltsverzeichnis Abbildungsverzeichnis ................................................................................................................4

Danksagung....................................................................................................................................4

1. Der Weg zum Praxissemesterplatz ......................................................................................5

2. Beschreibung des Unternehmens........................................................................................6

2.1 Vergangenheit und Gegenwart .....................................................................................6

2.2 Zukunft von OnVista .......................................................................................................7

3. Inhaltliche und technische Struktur von OnVista ............................................................8

3.1 Gliederung in Tools .........................................................................................................8

3.2 Datenbankproblematik................................................................................................. 10

3.3 Gründe für Release 2 .................................................................................................. 10

3.3.1 Trennung von Funktionalität und Design..................................................... 10

3.3.2 C++-Unterstützung .......................................................................................... 11

3.4 Release 2: Scripte, Includes, Klassen und Templates ........................................... 11

4. Beschreibung meiner Projekte........................................................................................... 13

4.1 Übersicht über alle Tätigkeiten................................................................................... 13

4.2 Headfoot-Generator (PHP) mit XML-config ............................................................. 13

4.2.1 Status Quo ........................................................................................................ 13

4.2.2 technische Umsetzung ................................................................................... 14

4.2.3 Sprachen........................................................................................................... 14

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 3 -

4.3 Webbrowser Filemanager FrontEnd (PHP) ............................................................. 15

4.4 Vorhandene perl-Skripte von HTML- in XML-Ausgabe konvertieren................... 15

4.5 Dyna2Stat: Dynamische Skripte statisch vorproduzieren...................................... 16

4.5.1 Hintergrund ....................................................................................................... 16

4.5.2 Technische Realisierung ................................................................................ 16

4.6 PagesAdmin-Frontend................................................................................................. 17

4.6.1 Hintergrund ....................................................................................................... 17

4.6.2 Erklärung der einzelnen Felder ..................................................................... 18

4.6.3 technische Seite: Datenbanken und Entwicklungsebenen....................... 19

5. Meine Erfahrungen im Unternehmen ............................................................................... 20

5.1 Fachlich.......................................................................................................................... 20

5.2 Persönlich ...................................................................................................................... 20

Anhang A...................................................................................................................................... 22

Anhang B...................................................................................................................................... 23

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 4 -

Abbildungsverzeichnis

Abb. 4.1 der Navigationsaufbau: Header im neuen Design..................................... 13

Abb. 4.2 der Navigationsaufbau: Footer im neuen Design...................................... 13

Abb. 4.3 Screenshot des Filemanagers ........................................................................ 15

Abb. 4.4 Screenshot des PagesAdmin in der Testphase......................................... 17

Abb. A.1 Screenshot der OnVista Startseite (altes Design)..................................... 22

Abb. A.2 Screenshot der OnVista Startseite (neues Design)................................... 23

Danksagung

In erster Linie möchte ich mich bei Herrn Prof. Dr. Kurt-Ulrich Witt bedanken, dass er sich als Betreuer auf Hochschulseite für mein Praxissemester zur Verfügung gestellt hat. Ebenso danke ich allen Mitarbeitern der OnVista AG, die stets ein offenes Ohr für meine Fragen hatten und mir beim Kickerspielen immer wieder meine Grenzen aufzeigten. Insbesondere gilt mein Dank meinen Betreuern auf Unternehmensseite, Claudius Weinberger und Michael Kuhn, für die spannenden und lehrreichen Projektthemen, deren Ergebnisse auch nach meinem Praxissemester noch zum Einsatz kommen werden, und für das Korrekturlesen dieser Ausarbeitung. Ferner danke ich meinem Kollegen Stefan Beckmann für das Erstellen des Release-2-Screenshots (siehe Anhang B) in aktuellster Version und meinem Vater Hans-Dieter Rondorf für das Korrekturlesen.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 5 -

1. Der Weg zum Praxissemesterplatz

Auf Hinweis eines Freundes, der als Praktikant bei der OnVista AG gearbeitet hat, wurde ich auf dieses Unternehmen aufmerksam. Nachdem ich die Jobangebote, die OnVista im Internet bereit stellt, studiert hatte, bewarb ich mich per Email und wurde wenige Tage später zu einem Bewerbungsgespräch eingeladen. Zuvor hatte ich diverse Jobseiten im Internet durchstöbert (z. B. www.arbeitsamt.de, www.jobpilot.de, ...) mit der Folge, dass ich auch bei etwa fünf anderen Unternehmen in der Region Köln-Bonn mein Praxissemester hätte absolvieren können. Die Aufgabenstellung der Programmierung dynamischer Webseiten inklusive Datenbankverbindung bei einem Unternehmen, dass laut dem deutschen Seitenabrufzähler IVW (www.ivw.de, Näheres siehe Kapitel 4.6.2) zu den „Top 5“ der deutschen Websites zählt, hat meinen persönlichen Vorstellungen am Ehesten zugesagt, so dass ich mich für dieses Unternehmen entschieden habe. Zudem reizte mich das Themengebiet rund um Wertpapiere und die Börse.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 6 -

2. Beschreibung des Unternehmens

2.1 Vergangenheit und Gegenwart Die OnVista AG ist der in Deutschland führende bankenunabhängige Anbieter qualitativ hochwertiger Finanzinformationen und Analysetools im Internet. Das Unternehmen wurde 1998 von Michael W. Schwetje (heute 33), Stephan Schubert (heute 32) und Fritz Oidtmann (heute 40) gegründet und hat seinen Sitz in Köln. Die OnVista AG erwirtschaftete im ersten Halbjahr 2000 einen Umsatz von 2,5 Mio DM. Im Geschäftsjahr 1999 lag der Umsatz bei 1,2 Mio DM. Das Unternehmen ist seit 28. Februar 2000 am Neuen Markt notiert. Der Emissionspreis der OnVista-Aktie lag bei 22 Euro. Mit einer Erstnotiz von 65 Euro an der Frankfurter Börse startete die Aktie sehr gut. Der Kurs hat seitdem kontinuierlich nachgegeben und liegt zur Zeit (Stand: 9. Februar 2001) bei etwa 15,5 Euro. OnVista stellt unter www.onvista.de und http://wap.onvista.de/ ein anspruchsvolles Angebot rund um Aktien, Neuemissionen, Optionsscheine und Investmentfonds zur Verfügung. Die Nutzerzahlen sind stark wachsend. Im Januar 2001 verzeichnete OnVista über 80 Millionen Page Impressions (Abrufe einzelner Webseiten) und knapp 13 Mio. Seitenvisits (Besuche des Webportals) pro Monat auf der Website. Rund 250.000 User haben sich bisher bei OnVista für den Newsletter registrieren lassen. Bestandteile der Informationen über Aktien sind unter anderem Realtime- und Neartime-Kurse zu allen ca. 9.000 in Deutschland handelbaren Aktien, bis zu 400 Kennzahlen zu über 2.500 Unternehmen, Analystenschätzungen und -empfehlungen sowie interaktive Vergleichstabellen und Analysetools. Auch zu den etwa 16.000 in Deutschland handelbaren Optionsscheinen und zu ca. 3.800 Investmentfonds bietet das Unternehmen individuelle Such-, Vergleichs- und Analysemöglichkeiten. Wesentliche Erlösquellen von OnVista sind Online-Werbung (Banner), die etwa 30% des Umsatzes ausmacht, und die Vergabe von Lizenzen (etwa 60% des Umsatzes). Zu den mehr als 30 Lizenznehmern zählen vornehmlich Banken und Wirtschaftsmedienunter-nehmen, beispielsweise Advance Bank, ConSors, Deutsche Bank 24, Direkt Anlage Bank, Fimatex, Going Public Media, ProSieben Digital Media sowie die Verlagsgruppe Handelsblatt. Unternehmen, die bei OnVista Werbung schalten, stammen vor allem aus der Financial Community sowie aus den Bereichen hochwertige Konsumgüter und Dienstleistungen. Ferner erwirtschaftet OnVista auf dem E-Commerce-Sektor mit einem eigenen Buchshop die restlichen 10 Prozent des Umsatzes. Hier kann Börsen- und Wirtschaftsliteratur online bestellt werden. Bereits im Januar 2000 hat die OnVista AG ihr Angebot auf den Übertragungsstandard WAP ausgedehnt. So ist ein beträchtlicher Umfang des OnVista-Angebots auch über WAP-fähige Mobiltelefone abrufbar. Dabei war die OnVista AG das erste deutsche Unternehmen, das auch die Darstellung von Kurs-Charts über das Handy ermöglicht hat. Die hohe Akzeptanz des OnVista-WAP-Angebots zeigt sich auch darin, dass mit Mannesmann D2, E-Plus und Viag Interkom drei führende Mobilfunk-Netzbetreiber OnVista in die Eingangsseite ihres vorkonfigurierten WAP-Portals integriert haben.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 7 -

2.2 Zukunft von OnVista OnVista plant ihr Webangebot in Zukunft auf das europäische Ausland (Großbritannien, Frankreich, Spanien, Österreich, Schweiz und Italien) auszudehnen, um die Zahl der Internetnutzer und Lizenzkunden weiter zu erhöhen. Die länderspezifische Website enthält in erster Linie Informationen über die Wertpapiere des jeweiligen Landes. Jede dieser Websites wäre möglicherweise in allen Landessprachen, in dessen Land OnVista vertreten sein wird, abrufbar. Das heißt, das Portal „www.onvista.de“ könnte in Zukunft in deutsch, englisch, französisch, spanisch und italienisch verfügbar sein. Weltweit handelbare Wertpapiere sind über das Portal www.onvista.com abgedeckt. Zudem soll die Erstellung der Websites für Lizenzkunden möglichst einfach handhabbar und konfigurierbar gestaltet werden. Um diesen neuen Anforderungen gerecht zu werden, hat OnVista bereits damit begonnen, alle Skripte „from scratch“ neu zu programmieren, in der Absicht, Funktionalität und Design strikt zu trennen. OnVista wird im Frühjahr 2001 das neue Release 2 online stellen. Hierbei wird die Struktur und Funktionalität der Seiten weitestgehend beibehalten, das Design wird farblich auf weiß, dunkelgrau und rot umgestellt. Die Screenshots der Frontseiten von Release 1 und 2 sind im Anhang dieses Praxissemesterberichts ersichtlich. Auf die technischen Unterschiede von Release 1 und 2 gehe ich im nachfolgenden Kapitel ein.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 8 -

3. Inhaltliche und technische Struktur von OnVista

3.1 Gliederung in Tools Die OnVista Webseite ist nach Tools geordnet, die je einen eigenständigen Themenbereich abdecken. Diese sind zur Zeit:

• Aktien • Optionsscheine • Fonds • IPO (Neuemissionen) • News • Zinsen • Währungen • WAP • Kursprognose • Portfolio • OnVista intern

Mit dem Optionsschein-Tool fing im September 1998 alles an. OnVista wollte von Anfang an mit ihrem Internetangebot professionelle Anleger erreichen. Die Möglichkeit der Informationsbeschaffung zu Optionsscheinen war damals wie heute im Internet einzigartig. Im Juli 1999 stellte OnVista das Aktientool online, das Neartime-Kursinformationen, Unternehmensdaten, Analystenempfehlungen und umfangreiche Analysemöglichkeiten zu allen in Deutschland handelbaren Aktien bietet. Das News-Tool ging im Dezember 1999 online. Seit Januar 2000 ist eine abgespeckte Version der Internet-Produktpalette auch über WAP („Wireless Application Protocol“) mobil über erreichbar. Folgende Liste gibt nähere Auskunft über die einzelnen Tools: Optionsscheintool

• Führendes Angebot in Deutschland • Neartime-Emittentenkurse aller knapp 22.000 in Deutschland handelbaren Call-

und Put-Optionsscheine • Vergleich von Optionsscheinen anhand von über 30 Kennzahlen • Szenarioberechnungen

Aktientool

• Aktuelle Kurse, Charts und Unternehmensnews • Datenbank mit Bilanzen, GuVs (Gewinn- und Verlustrechnungen) und Profilen von

ca. 2000 nationalen und internationalen Unternehmen • Berechnung von bis zu 400 Kennzahlen je Unternehmen • Vergleiche von Aktien aller Branchen, Länder oder Indizes nach jeder Kennzahl • Wöchentliche Prognosen und Empfehlungen der führenden Analysten zu über

4.500 Aktien

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 9 -

Fondstool

• Aktuelle Preise, Stammdaten und Kenzahlen zu über 3.800 Investment-Fonds. • Alle Kennzahlen werden täglich neu berechnet • Individuelle Such-, Vergleichs- und Analysemöglichkeiten. • Preis- und Performance-Charts über mehrere Jahre mit über 80 verschiedenen

MSCI Benchmark-Indizes. • Die größten Aktienpakete der Fonds werden ausgewiesen und können über eine

Verlinkung zum Aktientool eingehender analysiert werden. • Hintergrundinformationen zu Anlagezielen und Strategien der einzelnen Fonds. • Übersichtliche Top / Flop-Listen und graphische Performance-Ranglisten geben

einen schnellen Rendite-Überblick über verschiedene Anlageschwerpunkte und Zeiträume

Portfolio

• Persönliche Portfolioübersichten mit jederzeit aktuellen Depotwerten • Watchlists und Optionsschein-Vergleichslisten mit individuell definierbaren

Vergleichskriterien News-Service

• täglich mehr als 600 aktuelle Nachrichten zu Unternehmen, Märkten, Wirtschaft und Politik

• hohe Informationsqualität namhafter Nachrichtenagenturen wie dpa-AFX oder vwd IPO-Tool

• Übersicht über alle IPOs („Initial Public Offering“, engl. = Neuemissionen) der letzten Jahre und alle geplanten IPOs mit detaillierten Informationen zu jedem Unternehmen

• Vergleich der Performance nach Branche und Börsensegment über verschiedene Zeiträume

• Ranking der Emissionsbanken nach Emissionsvolumen und Markterfolg WAP („Wireless Application Protocol“, abrufbar unter http://wap.onvista.de/)

• Marktübersicht mit allen relevanten Indizes und Wechselkursen • Abfrage aktueller Neartime-Kurse zu allen in Deutschland gehandelten

Wertpapieren und aktuelle Top/Flop-Listen für die relevanten Indizes Kursprognose/Trendfolge

• Analyse mittel- bis langfristiger Trends von Indizes bzw. Aktien • Identifikation von Indizes bzw. Aktien mit hoher Wahrscheinlichkeit einer

zukünftigen Trendwende • Analyse des bisherigen Trendwechselverhaltens eines Wertes

OnVista intern

umfasst insbesondere • Investor Relations • Partner • Pressemitteilungen

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 10 -

• Adhoc-Nachrichten und • Jobangebote

Jedes Tool ist auf einer eigenen Domain abgelegt. Das Aktientool wird beispielsweise auf aktien.onvista.de gehostet, IPO-Daten sind auf ipo.onvista.de abgelegt, usw. Hierdurch ist gewährleistet, dass Themengebiete inhaltlich wie auch physikalisch getrennt sind.

3.2 Datenbankproblematik Herzstück der OnVista Homepage sind die aktuellen Börsenkurse, Börsennachrichten und Analystenschätzugen. Diese gelangen von Agenturen wie z. B. Reuters über das Internet, Standleitungen oder Satellit in die Datenbanken. Für Wertpapiere, die in großen Stückzahlen gehandelt werden, werden an den Börsen in kurzen Zeitabständen neue Kurse festgestellt. Alle Kurse werden in den Datenbanken gespeichert. Pro Aktie des DAX können bis zu 2 Kurse pro Minute und pro Börse in die Datenbank gelangen. Auf alle ca. 9000 deutschen Aktien hochgerechnet, würden gewöhnliche Datenbanken versagen. Daher werden die aktuellen Kurse in der sogenannten RAM-DB gespeichert. Hier werden keine Daten auf die Festplatte geschrieben, sondern nur im Hauptspeicher gehalten. Nur auf diese Weise ist es möglich, halbwegs performante Datenbankabfragen zu gewährleisten. Nach einem Börsentag werden nur noch die Tagesschlusskurse aus der RAM-DB in eine gewöhnliche „Festplatten“-Datenbank übernommen, um historische Kursübersichten und Charts erstellen zu können.

3.3 Gründe für Release 2

3.3.1 Trennung von Funktionalität und Design Eine wesentliche Rolle spielt für OnVista das Lizenzkundengeschäft. Internetunternehmen, die ihren Usern Finanzinformationen offerieren wollen, aber nicht über das nötige Datenbank-Knowhow verfügen oder aus anderen Gründen keine eigene Datenbankstruktur aufbauen wollen, wenden sich an OnVista, um Teile deren Homepage wie DAX-Charts, Marktübersichten, Aktiensnapshot und Newsübersichten im gewünschten Design anfertigen zu lassen. Etwa 90% der OnVista-Seiten sind dynamisch. Das heißt, sie beinhalten Datenbankabfragen. In Release 1 wurden alle dynamischen Seiten in Perl programmiert. Hier ist es nur sehr bedingt möglich, Funktionalität und Design zu trennen. Allgemeine Datenbankfunktionen wie login, SQL-Statements abschicken und logoff sind zwar in sogenannte Packages ausgelagert, aber die konkreten SQL-Befehle sind in den perl-Skripten einkodiert.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 11 -

Für die Webentwickler resultiert daraus die Anforderung, Design und Layout von der Funktionalität strikt zu trennen. Mit Funktionalität ist hier die Bereitstellung der Daten mittels Datenbankabfragen und die Berechnung und Formattierung von Zahlwerten gemeint. Zu Design und Layout gehören nicht nur Farben und Formen, sondern hier auch die verschiedenen Sprachen. OnVista hat sich entschieden, alle Skripte in PHP (rekursive Abkürzung für „PHP Hypertext Preprocessor“, www.php.net) neu zu implementieren, weil die Skriptsprache PHP Möglichkeiten zu objektähnlichen Klassenstrukturen bietet. Hierdurch können Informationen gekapselt werden. Das heißt, Variablen sind nur an den Stellen verfügbar, an denen sie auch benötigt werden. Die Anzahl der globalen Variablen lässt sich so auf ein Minimum beschränken. Darüber hinaus ist PHP als Frontend-Sprache gut geeignet, weil PHP rudimentäre Logik in Templates erlaubt.

3.3.2 C++-Unterstützung Ein anderer Grund für PHP ist das Feature, eine Schnittstelle zwischen PHP und der Programmiersprache C++ bereitzustellen. So können Variablen bzw. Objekte von C++ an PHP übergeben werden. Dies ist besonders nützlich, da spezielle programmiertechnische Problemstellungen (etwa Volltextsuche in nichttrivialen Datenstrukturen) in C++ sehr viel effizienter als in anderen Programmiersprachen gelöst werden können.

3.4 Release 2: Scripte, Includes, Klassen und Templates Alle Webseiten der OnVista AG werden nach zwei Methoden von den Webservern ausgeliefert. Etwa 10% lassen sich statisch vorproduzieren. Darauf gehe ich in Kapitel 4.5 („Dyna2stat“) näher ein. Der größte Teil der Seiten wird dynamisch zum Zeitpunkt der http-Anfrage mittels PHP generiert. Alle Seiten des neuen Onvista-Releases sind dynamisch programmiert. Bei einem http-Request auf eine OnVista-Seite in Release 2 wird ein PHP-Script gestartet, welches zunächst einige include-Dateien lädt. In diesen Includes werden für jede Seite nötige Initialisierungen durchgeführt. Beispielsweise werden globale Variablen ($SITE, $LANG, $COUNTRY) gesetzt. Das Skript ist in erster Linie für die Fehlerbehandlung zuständig. Das heißt, die Übergabeparameter durchlaufen einen Gültigkeitscheck und je nach Parametereingabe wird dann eine PHP-Klasse aufgerufen. In den Klassen findet die Datenbankabfrage statt. Hierzu wird in der Klasse ein Datenbank-Include geladen, das die typischen Datenbankfunktionen wie login, SQL-Statements abschicken und logoff bereitstellt. Es erfolgt überwiegend nur lesender Zugriff auf die Daten, die - wie in Kapitel 3.2 beschrieben – schon in die Datenbank geschrieben wurden. Nur im Bereich Portfolio/MyOnvista ist auch schreibender Datenbankzugriff erforderlich, weil hier persönliche Daten von Benutzern abgelegt werden. Neben der Datenbankfunktionalität

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 12 -

ist die Klasse auch für das Formatieren der Daten verantwortlich. Über die globalen Variablen $LANG und $COUNTRY wird das Ausgabeformat länderspezifisch angepasst. Zum Beispiel ist die deutsche und britische Interpretation von Komma und Punkt für Tausendertrennzeichen und Dezimaltrennzeichen in der Zahlendarstellung genau umgekehrt. Nachdem die PHP-Klasse abgearbeitet ist, wird ein Template aufgerufen. Sofern Fehler aufgetreten sind (falsche Parameter, Suchbegriff wurde nicht gefunden, Datenbankverbindung nicht möglich,...), wird ein spezielles Error-Template geladen. Hier wird nicht nur eine Fehlermeldung mit möglicher Angabe der Fehlerquelle ausgegeben, sondern auch die Möglichkeit einer neuen Suche geboten. Im Normalfall wird ein Template geladen, das die fertig formatieren Rohdaten aus der Datenbank in HTML designter Form ausgibt. Für Lizenzkunden genügt es also, die Templates im gewünschten Design anzupassen, die Klassen bleiben dieselben. Das Anfangsskript bleibt weitestgehend unverändert. Mittels der Templates ist es möglich, auf einfache Weise neben verschiedenen Designs auch verschiedene Sprachen oder Ausgabeformate (WML für WAP; XML, HTML, PLAIN-TEXT...) anzubieten. Es besteht die Option, auch Informationen wegzulassen.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 13 -

4. Beschreibung meiner Projekte

4.1 Übersicht über alle Tätigkeiten Alle bearbeiteten Projekte entstanden im Bezug auf die Realisierung von Release 2 der OnVista Webseite.

• Headfoot-Generator (PHP) mit XML-config • Webbrowser Filemanager FrontEnd (PHP) • Vorhandene perl-Skripte mit HTML- in XML-Ausgabe konvertieren (Metabox) • Dyna2Stat: Dynamische PHP-Skripte in statische HTML-Seiten vorproduzieren • PagesAdmin-Frontend

4.2 Headfoot-Generator (PHP) mit XML-config

4.2.1 Status Quo Alle OnVista Webseiten sind gleich strukturiert. Jede Seite kann in die Bestandteile Header, Content und Footer aufgeteilt werden. Der Headerteil beginnt mit der Metanavigationsleiste. Darunter befinden sich zwei Werbebanner. Daran schließen sich Logo & Mainnavigation (Toolauswahl) und Suchmaske &Toolnavigation an. Im Footerbereich sind zur Zeit Links zu Werbepartnern und Copyright-Informationen untergebracht. Die Navigationsstruktur ist in Release 1 und 2 sehr ähnlich. Die nachfolgende Grafik veranschaulicht den Aufbau von Release 2.

Abb. 4.1: der Navigationsaufbau: Header im neuen Design

Abb. 4.2: der Navigationsaufbau: Footer im neuen Design

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 14 -

Die Toolnavigation ist vom ausgewählten Tool abhängig und ermöglicht die Navigation innerhalb eines Tools. Mit dieser Struktur ist sichergestellt, dass jede OnVista-Seite mit zwei Mausklicks erreichbar ist.

4.2.2 technische Umsetzung Das von mir implementierte PHPshellskript „headfoot_generator“ erstellt einen Header und einen Footer für jedes Tool. Die Konfiguration erfolgt über ein Masterheader- und ein Masterfooter-Template, die hauptsächlich HTML-Tags enthalten und eine XML-Konfigurationsdatei, die die Einträge für Main- und Toolnavigationsleisten und deren Links und MouseOver-Texte enthält. Das headfoot_generator-Skript gibt es einmal über alle Sites und Sprachen. Die drei oben beschriebenen Konfigurationsdateien gibt es für jede Site und für jede Sprache. „Site“ ist hier gleichbedeutend mit dem länderspezifischen Domainnamen, also „onvista.de“, „onvista.co.uk“, „onvista.com“ und so weiter. Dies gilt für Lizenzkunden ebenso, hier heißt die Site „neuermarkt.com“ oder „metabox.de“. Die Einträge in den verschiedenen Navigationsebenen sind Site-abhängig und können sich geringfügig unterscheiden. Die resultierenden Headfoot-Templates pro Tool, die vom Skript in ein konfigurierbares Verzeichnis geschrieben werden, unterscheiden sich nur im gehighlighteten Mainmenüeintrag. Über globale Variablen wird gesteuert, welcher Eintrag in der Toolnavigation aktiviert werden soll.

4.2.3 Sprachen Durch die Internationalisierung des Unternehmens wird jede Seite in Zukunft in sechs Sprachen verfügbar sein. Die Header- und Footer-Mastertemplates werden manuell in die jeweilige Sprache übersetzt. Der Content-Teil einer Seite ist auch template-basiert aufgebaut. Hier gibt es ein Projekt namens „Template-Grabber“, das nicht von mir bearbeitet wurde. Es nimmt sich ein Metatemplate in englisch mit besonderen onvista-internen HTML-Tags, den OVI-Tags. In einer Datenbank werden zu jedem englischen Ausdruck und jeder englischen Phrase ein Äquivalent in allen anderen Sprachen eingepflegt. So können die Templates für die nicht-englischen Sprachen anhand der OVI-Tags halb-automatisch übersetzt und die OVI-Tags danach entfernt werden. Die OVI-Tags enthalten ein context-Attribut mit Werten wie „Button“, „Table“, „Text“, um sicherzustellen, dass sich die Länge der Ausdrücke insbesondere für Buttons nicht merklich unterscheiden. Ich schrieb „halb-automatisch“, weil immer noch ein menschlicher Blick auf die resultierenden Templates nötig ist. Wenn dieses Projekt sich praktisch durchgesetzt hat, ist es eventuell auch auf die Headfoot-Mastertemplates anwendbar.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 15 -

4.3 Webbrowser Filemanager FrontEnd (PHP) Der browserbasierende Filemanager erlaubt das Ansehen eines vorher festgelegten Verzeichnisses, in dem sich nur Dateien und keine Unterverzeichnisse befinden dürfen. Zusätzlich zum Dateinamen wird die Größe und das Datum der letzten Speicherung angezeigt. Dateien können einzeln gelöscht und (über http) upgeloaded werden. Das Dateilisting läßt sich nach Dateinamen, -größe oder -datum aufsteigend bzw. absteigend sortiert ausgeben. Dieses Tool wird benötigt, um der Vertriebsabteilung von OnVista kontrollierten Zugriff auf ein festes Verzeichnis zu gewährleisten, in dem Banner-Dateien von Werbekunden abgelegt sind. Das Tool wurde in PHP 4.0.3 implementiert. Das Tool kann sehr leicht um Logfiles und andere Features erweitert werden.

Abb. 4.3: Screenshot des Filemanagers

4.4 Vorhandene perl-Skripte von HTML- in XML-Ausgabe konvertieren

Dieses Projekt wurde von der Firma Metabox in Auftrag gegeben. Meine Aufgabe bestand darin, bereits drei fertige und auf Produktionsservern eingesetzte Perl-Skripte mit HTML-Ausgabe so zu ändern, dass sie ein vorher vom Kunden festgelegtes XML-Format

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 16 -

ausgeben. Zu diesem Zeitpunkt war das Release 2 nur in Planung, so dass die Skripte per „copy and paste“ angepasst wurden.

4.5 Dyna2Stat: Dynamische Skripte statisch vorproduzieren

4.5.1 Hintergrund Ein Webserver liefert statische HTML-Seiten sehr viel performanter aus als dynamische Skripte. Dies liegt vor allem an den integrierten Datenbankabfragen. Damit häufig abgerufene Seiten wie die Startseite von OnVista (http://www.onvista.de/) und die Startseiten aller Tools in einer akzeptablen Zeit ausgeliefert werden können, werden diese statisch vorproduziert. Hier ist ein Intervallabstand von etwa fünf Minuten sinnvoll, da nach dieser Zeitspanne die Wertpapierkurse bereits veraltet sind. Die Vorproduktion ist aber auch für nicht hochfrequentierte Seiten sinnvoll, etwa beim Personenregister oder beim Börsenlexikon. Das Personenregister listet alle Persönlichkeiten nach ihren Funktionen (Vorstand, Aufsichtsrat, Board of Directors, Anteilseigner) alphabetisch sortiert auf. Das Börsenlexikon gibt zu den aufgeführten Begriffen rund um Börse und Wertpapiere eine Erklärung. Die Inhalte dieser Seiten ändern sich nicht sehr häufig und eignen sich daher besonders gut, statisch vorproduziert zu werden.

4.5.2 Technische Realisierung Die dynamischen Skripte liegen auf einem internen, von außen nicht erreichbaren Webserver (oder in einem nicht öffentlichen Verzeichnis des Produktivservers). Benötigte Datenbankverbindungen müssen hergestellt sein. Ein PHP-Skript, das von der Unix-Shell aus gestartet wird, ruft diese Seiten auf und speichert sie unter einem neuen Namen ab. Beispiel: Aus http://lokalerserver.onvista.de/boerse.php?letter=a wird /usr/local/apache/share/boerse_a.html. Das Zielverzeichnis (hier „/usr/local/apache/share/“) ist über einen öffentlichen Webserver weltweit abrufbar. Hierbei ist zu beachten, dass alle Hyperlinks von außerhalb auf die neuen Namen umgestellt werden müssen. Das PHPshellskript ist so programmiert, dass Links innerhalb der bereits nach einem vorgegeben Muster konvertiert werden können. Wird eine Änderung der Daten in einer Datenbank vorgenommen, die von den dynamischen Webskripten abgefragt werden, wird das PHPshellskript gestartet, um die

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 17 -

resultierenden statischen HTML-Seiten hiermit upzudaten. Der Start des Skripts wird entweder über die unix-crontab in festen Zeitabschnitten oder einmalig manuell bei Änderungen initiiert. Auch dieses Skript habe ich in PHP 4.0.3 erstellt.

4.6 PagesAdmin-Frontend So sieht das PagesAdmin-Frontend aus:

Abb. 4.4: Screenshot des PagesAdmin in der Testphase (mit Dummy-Werten)

4.6.1 Hintergrund Jede OnVista-Seite beinhaltet Daten, bei denen es nicht sinnvoll ist, diese fest in die einzelnen Seiten (templates, scripts oder classes) einzukodieren. Dazu gehören insbesondere der Bannertag, der IVWtag, der Seitentitel und die Metatag-Informationen. Alle diese Angaben sollen über das PagesAdmin-Tool zentral konfiguriert werden. Technisch werden alle Daten in eine Datenbank geschrieben, die über ein Browser-Frontend betrachtet und manipuliert werden können. Als Anforderung wurde gestellt, dass jede „Page“ einzeln für sich konfiguriert werden kann. „Page“ bedeutet hier „jede zu designende Webseite“. Das heißt nach einer Aktiensuche sind drei Pages möglich:

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 18 -

1. Der Suchbegriff war eindeutig: es wird der Snapshot zu einer Aktie angezeigt 2. Der Suchbegriff passt auf mehrere Aktien: Es wird eine Auswahlliste mit Link auf

den Snapshot angezeigt. 3. Der Suchbegriff passt überhaupt nicht: Es wird eine Error-Page mit neuer

Suchmöglichkeit angezeigt. Die zweite Anforderung ist, dass Informationen vererbt werden können. Die Pages sind in einer Baum-Hierarchie mit beliebiger Schachtelungstiefe folgendermaßen strukturiert: Allgemein: /<SITE>/<TOOL>/<SUB_TOOL>/.../<PAGE> Beispiel: /onvista.de/sto/analysts/averages/no_data (sto = Abkürzung für Aktien-Tool, “Stocks”) Wenn im gesamten Analysten-Bereich dasselbe Banner geschaltet werden soll, erfolgt der Bannereintrag für /onvista.de/sto/analysts/, in den darunter liegenden Pages bleibt der Eintrag für Banner leer, hier wird von oben vererbt. Insbesondere in der Testphase für Release 2 eignet sich dieser Vererbungsmechanismus hervorragend, da für /onvista.de/ default-Werte definiert wurden, die von allen anderen Pages geerbt wurden. Keine Seite musste also ohne Seitentitel oder Metatags auskommen.

4.6.2 Erklärung der einzelnen Felder Der Bannertag regelt das Laden des richtigen Banners, so wie der Kunde zuvor seine Wünsche formuliert hat. Pro „Page“ könnte rein theoretisch ein eigener Banner konfiguriert werden. Die IVW (Informationsgemeinschaft zur Feststellung der Verbreitung von Werbeträgern e.V., www.ivw.de) ermöglicht das Erfassen jeder Pageimpression und jeden Webvisits. Die daraus resultierende Statistik ist insbesondere für die Neuwerbung von Werbekunden wichtig. Im November 2000 lag OnVista auf Platz 4 aller deutschen bei IVW registrierten Websites und auf Platz 2 hinter Wallstreet-Online auf dem Sektor der deutschen Finanzdienstleister im Internet. Der IVW-Tag steuert die Zählung der Seitenabrufe für verschiedene Seitenkategorien. Metatags beinhalten Anweisungen für WWW-Server, WWW-Browser und automatische Suchprogramme im Internet ("Robots", „Crawler“). Meta-Angaben können Angaben zum Autor und zum Inhalt der Datei enthalten. Sie können aber auch HTTP-Befehle absetzen, zum Beispiel zum automatischen Weiterleiten des WWW-Browsers zu einer anderen Adresse. Für OnVista sind hauptsächlich die „Keywords“ und die „Description“ (Beschreibung der Webseite) wichtig, ferner auch Angaben über die Gültigkeitsdauer einer Seite und Anweisungen an Proxies, Seiten cachen zu dürfen oder nicht. Mit „Seitentitel“ ist der HTML-Title gemeint.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 19 -

Highlighting: „SUB_NAVI“ steuert den aktiv zu setzenden Eintrag in der Toolnavigation, „SUB_SUB_NAVI“ analog den Eintrag in einer eventuellen Sub-Toolnavigation.

4.6.3 technische Seite: Datenbanken und Entwicklungsebenen Die Einträge für Titel, Metatag-Keywords und Metatag-Description sind sprachabhängig, die Werte der restlichen Felder sind in englisch und damit sprachunabhängig. Es gibt jeweils eine Tabelle pro Kategorie. Primary key in jeder Tabelle ist die Page-ID, der dann die oben beschriebenen Felder zugeordnet werden. In der sprachabhängigen Tabelle besteht der Primary key aus Page-ID und Sprach-ID (1=en, 2=de, 3=fr,...). Für die Administration der Pages gibt es drei Ebenen mit jeweils diesen zwei Tabellen, insgesamt also sechs Tabellen. Die Development-Ebene speichert die Daten, die mit dem Frontend erstellt, geändert und gelöscht werden. Hier sind Vererbungen erlaubt. Daneben gibt es die Test- und die Live-Ebene. OnVista arbeitet mit zwei Webserver-Systemen, dem Test- und dem Livesystem. Das Livesystem ist online und öffentlich zugänglich, das Test-System ist für Entwicklungszwecke. Wird das Testsystem als gut empfunden, wird es auf die Liveserver kopiert. Auf dem Testsystem werden die Page-Einträge aus den Test-Tabellen geholt, beim Livesystem werden die Einträge den Live-Tabellen entnommen. Das Lookup der Tabellen erfolgt in der Ordnung O(1), da keine Vererbungen vorhanden sind. Die Test-Datenbanktabellen beinhalten die gleichen Daten wie die Development-Tabellen mit dem Unterschied, dass hier alle Vererbungen aufgelöst sind und durch die vererbten Werte ersetzt wurden. Um die Testdatenbank zu erstellen, gibt es im PagesAdmin einen Button „go test“, der ein PHP-Skript startet. Dieses holt sich die Datenbankeinträge aus den Development-Tabellen, konvertiert die Vererbungen in richtige Werte und vergleicht dann die aktuellen Einträge in den Test-Tabellen. Sollten Unterschiede auftreten, werden die nötigen SQL-updates, -inserts und -deletes auf die Test-Tabellen ausgeführt. Analog wird die Live-Datenbank mit „go live“ erstellt, mit dem Unterschied, dass hier bereits keine Vererbungswerte mehr konvertiert werden müssen.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 20 -

5. Meine Erfahrungen im Unternehmen

5.1 Fachlich Ich habe dynamische Webseiten mit Oracle8-Datenbankanbindung mit PHP4 und ferner mit Perl5 erstellt. Das sind zur Zeit die neuesten und weitverbreitesten Technologien in diesem Bereich des Internets. Hier konnte ich sowohl durch Vorlesungen erlangte als auch im privaten Bereich neben dem Studium selbst erarbeitete Fähigkeiten ausbauen und vor allen Dingen hautnah in einem Internet-Startup praktisch anwenden. Zudem lernte ich nicht nur, funktionierende Skripte zu programmieren, sondern auch sauber strukturierte. Ganz wichtig ist hierbei die Trennung von Funktionalität und Design, ohne dass die Performance darunter leidet. Besonders am Anfang meines Praktikums wurde ich nicht selten darauf aufmerksam gemacht, dass ich hier und da unsauber programmiert habe. Dies war ich so nicht gewohnt, da die Firma, in der ich vorher neben dem Studium gejobbt habe, das Motto pflegte „Hauptsache es funktioniert“. Das praktische Programmieren hat mir sehr viel Spaß gemacht und ich habe wichtige Erfahrungen gesammelt, auf die ich in Zukunft sicher zurückgreifen werde.

5.2 Persönlich Das Praxissemester war nicht nur fachlich lehrreich und interessant. Das Arbeitsklima in einem Internet-Startup ist wesentlich entspannter als das in einem „herkömmlichen“ Unternehmen. Durchschnittlicher Arbeitstagbeginn ist zwischen 9:00 Uhr und 9:30 Uhr. Montags vor 8:00 Uhr sind nur eine Handvoll Mitarbeiter anzutreffen. Dafür beginnt der Feierabend selten vor 18:00 Uhr und kann sich in der „heißen Phase“ vor einem Going-Online oder Relaunch eines Projektes auch beliebig nach hinten verschieben. Die Arbeitszeit ist also sehr flexibel gestaltbar, ebenso wie die Mittagspause. Für Abwechslung sorgte ein Kickertisch auf dem Flur, der besonders zu Zeiten von Netzwerkausfällen besonders hoch frequentiert wurde. Insgesamt meine ich festgestellt zu haben, dass eine derartige Internet-Startup-Atmosphäre von allen Mitarbeitern sehr geschätzt wird. Und auch die Geschäftsleitung weiß, dass zufriedene Mitarbeiter eher zu Überstunden bereit sind. Bei den meisten Mitarbeitern dürfte die durchschnittliche Anzahl unbezahlter Überstunden, die über die offizielle tarifliche Wochenstundenzahl von 40 hinaus geleistet werden, bei 5-10 liegen. In einem stark wachsenden Internet-Unternehmen wie OnVista – was den Umsatz als auch die Mitarbeiterzahl angeht – wird es immer schwieriger, alle Mitarbeiter zu kennen. Deshalb hat der Vorstand beschlossen, jeden ersten Freitag im Monat ab 17 Uhr einen sogenannten „First Friday“ zu veranstalten. Hier können sich die Mitarbeiter bei einem Glas Kölsch oder Cola und kaltem Büffet unterhalten und sich gegenseitig kennenlernen. Dies ist insbesondere für neue Mitarbeiter eine gute Gelegenheit, sich bei OnVista einzuleben.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 21 -

Insgesamt kann ich auf ein sehr interesantes und lehrreiches Praxissemester zurückblicken und bin froh, dass ich mich für dieses Unternehmen entschieden habe. Für meine im Frühjahr 2002 anstehende Diplomarbeit und für die Jobsuche nach meinem Studium wird der Bereich „Web Development“ bei OnVista sicher zu den ersten Alternativen gehören.

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 22 -

Anhang A

Abb. A.1: Screenshot der OnVista Startseite (altes Design)

Praxissemesterbericht 23.03.2001 Jochen Rondorf OnVista AG, Köln

- Seite 23 -

Anhang B

Abb. A.2: Screenshot der OnVista Startseite (neues Design)