Hallo zusammen,
Im zweiten Teil möchte ich die generelle Funktionsweise der Internetpräsenz von Megaflieger vorstellen und euch die Schritte und Überlegungen zur technischen Realisierung näherbringen. Zuersteinmal wäre dort die Frage: Woher kommen diese Daten überhaupt? Wann fliegt welches Flugzeug wohin? Wie aktuell sind diese Daten und warum dauert eine Flugsuche eigentlich so lange?
Im Falle der Megaflieger GmbH ist für jede Anfrage ein Drittanbieter involviert, der eine einheitliche Schnittstelle zur Verfügung stellt und die Anfragen an die jeweiligen Fluggesellschaften weitervermittelt und zusammenfasst. Nach einer gestellten Suchanfrage wird ein temporärer Token generiert, der diese Anfrage eindeutig identifiziert. Nun kann solange dieser Token gültig ist, das temporäre, gesammelte Ergebnis abgefragt werden. Anfragen können bis zu vier Start- und Zielflughäfen enthalten, sowie weitere Optionen wie Rückflüge, Passagierzahlen und deren Alter sowie die Option auf flexible Reisetermine (+-2 Tage). Die API besitzt allerdings keine weiteren Funktionalitäten, sodass es Aufgabe der Entwickler ist, die vorhandenen Slots der Abflugflughäfen zum Beispiel sinnvoll durch in der Nähe liegende Flughäfen zu füllen. Einige Fluggesellschaften antworten auf Anfragen innerhalb weniger Sekunden, andere Fluggesellschaften lassen ihre Systeme gerüchteweise noch auf Windows NT 4.0 laufen und antworten dementsprechend später – oder auch gar nicht. Damit sich das Ergebnis für den Anwender nicht ständig aktualisiert, wird – wie auch bei anderen Flugsuchmaschinen – bis zur Ausgabe einige Zeit gewartet.
Gleichzeitig bedeuten diese zum Teil veralteten Systeme, dass Angebote nicht – oder nur in einem sehr begrenztem Rahmen – automatisiert erstellt werden können. Systematisches Crawling von vielbereisten Routen ist damit nicht möglich, da einige Fluggesellschaften diese Kapazitäten nicht zur Verfügung stellen. Dies führt dazu, dass Angebote wie “Hannover – Barcelona für nur 25€” für kleinere Anbieter nur aus Suchanfragen der eigenen Nutzerschaft generiert werden können und dementsprechend Probleme mit der Aktualität haben. Dies bedeutet, dass jeder als eindeutig identifizierbare Flug intern in einer Datenbank gespeichert werden muss, wenn auf Basis dieser Daten eine Auswertung oder die Generation von Werbeangeboten/Landingpages erfolgen soll.
Für die technische Umsetzung wurden auf serverseite PHP und eine MySQL-Datenbank verwendet, in der die Suchergebnisse gespeichert werden, bis sie dem Anwender präsentiert werden. Zur Erstellung von komplexeren und zusammenfassenden Resultaten wie “Zeige alle Flüge von Deutschland nach Rom oder umliegenden Flughäfen im Umkreis von 200km in der Preisklasse unter 75€” wurde zudem eine Apache Solr Instanz auf dem Server installiert. In vorangegangenen Projekten haben wir sehr gute Erfahrungen mit Solr gemacht und dessen Fähigkeit auch auf komplexere Anfragen in Bruchteilen einer Sekunde Resultate zu liefern.
Neben der eigentlichen Entwicklung bestand mein Aufgabengebiet vor allem auch in der Abschätzung und Planung von erdachten Features: Lässt sich das Ganze umsetzen? Stehen die Daten dazu zur Verfügung? Wie hoch ist der Aufwand? Steht der Aufwand in Relation zum zeitlichen Aufwand? In welcher Art wird das Feature umgesetzt? Welche Technologien kommen dabei zum Einsatz?