Das Hauptziel des Projekts war es eine WEB-Anwendung zu schaffen, ähnlich der Windows- und Linux-Anwendungen wie Stellarium, Starry Night oder KStars. Ebenso wie zum Beispiel Neave planetarium sollte diese Anwendungen nur Web 2.0 Techniken (AJAX) verwenden, das heißt, keine eigenen oder auf Plug-ins basierten Verfahren zurückgreifen, wie Flash, Java Applets oder ActiveX.

Diese Anwendung ist einer mehrerer Teile eines Projekts mit dem Namen Ciclope Astro an der Fakultät für Informatik an der Politechnischen Universität Madrid , Spaniel. Dieser Arbeit ist einige Forschung vorangegangen bzgl. Web Toolkits, Frameworks und Techniken für das Ciclope Astro Projekt im Allgemeinen, als auch mehrere Design Studien. Nichtsdestotrotz ist das in Teamarbeit geschehen und wird hier nicht dokumentiert.
Wie oben erwähnt, kann ein web-basiertes Planetarium geschaffen werden, indem Plug-ins, wie Java Applets, ActiveX oder Flasch verwendet werden, aber das Projekt hat verlangt keine Techniken dieser Art zu benutzen. Deshalb führt die Anwendung von ausschließlich AJAX-Techniken zu zwei möglichen Szenarien:
Die beiden oben erwähnten möglichen Herangehensweisen haben verschiedene Stärken und Schwächen. Die client-based Version minimiert den Verkehr über das gesmate Netzwerk / Internet, als auch die notwendige Perfomance auf der Serverseite. Nichtsdestotrotz würde dies intensive Verarbeitungsleistung vom Client verlangen und würde wahrscheinlicherweise an die Grenzen der JavaScript Leistung stoßen.Unter der Voraussetzung, dass man die Position tausender Sterne berechnet, die dann auf ein Bild gezeichnet werden und sehr wahrscheinlich SVG Funktionalitäten verwenden, die das JavaSkript bietet (z.B. in ein Framework wie Dojo) und zu guter letzt alle paar Sekunden oder wenigstens Minuten upgedatet werden müssen, was JavaSkript immense Perfomanceprobleme einbringt.
Wenn wir die server-based Vorgehensweise betrachten, könnten wir auf alle Fälle diese Beschränkungen aufheben. Der Client müsste dann nur das Bild anzeigen, obwohl in diesem Fall der Server die gesamte Arbeit verrichten müsste. Im Detail bedeutet dies, die Position von Himmeslobjeten zu berechnen und die Bilder zu erzeugen, die der Client angezeigt bekommt. Obwohl es ziemlich ausgefeilte Techniken gibt, um diese Aufgaben zu erledigen, wie zum Beispiel JSP, ASP oder PHP, was zu dem Problem führt, dass die Arbeitslast extrem von der Anzahl dier Clients abhängt und von den Möglichkeiten, verschiedene Ansichten je Client anzuzeigen. Deshalb bräuchte man abhängig von der gewählten Methode irgendetwas zwichen einen billigen Standard-Pc und einem High-End Server Cluster, um diese Anwendung zum Laufen zu bringen.
Betrachtet man die starken Beschränkungen von Java Skript und die größere Flexiblität, wenn man eine server-based Version verwendet, kommt man zu dem Schluss, das die zuletztgenante letztendlich Anwendung findet in diesem Projekt und im nächsten Kapitel im Detail diskutiert wird.
Wie bereits gesagt, mit einer Server-basierten Lösung variieren die Anforderungen an den Web-server in Abhängigkeit der aktuellen Implementation und Funktionalität der Anwendugn. Im schlechtesten Fall einer Planetariumsanwendung, wo einige tausend Sterne eines typischen Katalogs, wie Hipparcos angezeigt werden und der Anwender frei von seinem beliebigen Ort auf der Erde aus, als auch zu einem beliebig ausgewählten Zeitpunkt, wofür die Sternenkonstellationen angezeigt werden, all das innerhalb einer Update-Rate weniger Sekunden und mit 1000 gleichzeitig verbundenen Usern, würde das zu einer enormen Serverauslastung führen, da dieser alle Konstellationen berechnen muss und gemäß der Bilder für jeden verbundenen User das Sternenbild zum gewünschten Zeitpunkt am gewünschten Ort liefern muss. Darüberhinaus müsste das alle paar Sekunden wiederholt werden, um die Konstellationen für den User zeilich zu aktualisieren.
Auf Grund derzeit beschränkter Hardware Ressourcen für dieses Projekt und in Übereinstimmung mit dem ursprünglichen Ziel, eine zusätzliche Möglichkeit zu lieferen, das Tleskop zu kontrollieren, das am Fakultätsgelände stehet, wurde dieses Szenario auf das folgende Design reduziert, das weniger Rechnerleistung benötigt:
Während die Client-Seite mehr oder weniger aus einem einfachen Web-Browser besteht, dass eine AJAX- Webseite lädt, besteht der Server aus zwei Teilen:
Das folgende Diagramm zeigt eine logische Übersicht über das Design der vollständigen Anwendung und hebt die Beziehung und die Interationen zwischen Client und Server-Seite hervor:
Um die Arbeitslast der Client-Seite der Applikation auf einem Minimum zu halten, aber auch wegen seiner Funktionalität,wurde Google Maps API gewählt, um das Planetarium auf die Client-Seite zu bringen. Es liefer alle notwendigen Funktionalitätn, um Bilder gezielt zu laden und sie in verschiedenen Auflösungen anzuzeigen, als auch sie zu bewegen und heranzuzoomen. In anderen Worten: Es ist perfekt um Himmelbilder anzuzeigen.
Besonders wichtig ist tatsächlich, dass dieses API sehr ausgefeilt ist, um Bilder anzuzeigen. Es sind nur Ausschnitte notwendig um das aktuelle Feld der Sicht anzuzeigen und somit vom Server zu laden. Wenn man sich im Bild bewegt, werden zusätzliche Teile von Server geholt, genau dann, wenn sie gebraucht werden. Darüberhinaus sollten die meisten User mit der verwendung der Anwendung vertraut sein, wie sie es bereits sein sollten vonGoogle Maps.
In Bezug auf Zeitersparnis durch Verwendung existierender Lösungen, soll an dieser Stelle auch das Google Web Toolkit erwähnt werden. Dies war zwar nicht von besonderer Bedeutung für das Planetarium, wird jedoch als Framework für das Ciclope Astro Projekt an sich verwendet. Das GWT stellt ein Framework und eine Sammlung von Web 2.0 Klassen speziell in Bezug auf User Interfaces aber auch für asynchrone Datenübertragung, XML Parsing und weiter Anwendungen im Bereich Web 2.0 zur Verfügung. Das Besondere an diesem Toolkit ist jedoch die Tatsache, dass es ein JAVA Framework inklusive Debugger beinhaltet. Die gesamte Programmierung findet in JAVA statt und erlaubt daher nahezu perfektes Debuggen der entwickelten Anwedungen. Das Deployment zum Schluss erfolgt durch einen einzigen Mausklick mit dem die JAVA Anwendung in reines HTML und JavaScript übersetzt wird, durch einen eigens von Google bereitgestellten Compiler.
Die Integration des Planetarium in dieses Framework war allerdings nicht ganz einfach. Da das Framework keine Klassen zur Benutzung der Google Maps API beinhaltet, war es nötig den Übergang zwischen JAVA Code und JavaScript API manuell zu programmieren. Dazu waren einige Workarounds für diverse Problem nötig. Letztendlich war es aber möglich die Probleme zu lösen und die fertige Version steht hier ebenfalls zum Download bereit.
Die Java Anwendung, die genutzt wird um Bilder zu erzeugen, die gebraucht werden für das Planetarium ist eine angepasst Version der Open Source Anwendung namens Mobile Star Chart. Nach intensiver Nachforschung, wie bestehende Planetariumsanwendugen wie Stellarium, KStars or PP3 aufgebaut sind, um die benötigten Bilder zu erzeuen für Internetplanetarium, konnte Mobile Star Charrt als einzige Anwendung identifiziert werden, um in angepasster Weise die benötigten Bilder zu generieren innerhalb einer akzeptablen Zeit und mit einem angemessenen Programmieraufwand.
PP3 hat unpasseinde Beschränkungen bzgl. der Größe der Outputbilder, da es tex engine benutzt. KStars und besoders Stellarium sind noch weniger brauchbar, um für die Bildergenerierung angepasst zu werden, da sie 3D Wltern und eigene Projektions Cods benutzen, als auch Hardwerdbeschleunigung im Sinne von OpenGL. Ein enormer Zeitaufwand wäre notwendig gewesen diese Anwendung so zu verändern, dass sie die gewünschte Aufgabe erfüllt.
Letztendlich war Mobile Star Chart genau das, was gebraucht wurde. Da es vorsieht auf Mobile Divices zu laufen, enthielt es bereits den Code um die Sternen Kalkulationen zu berechnen und sie auf ein 2D Bild zu projezieren (dem PDA-Bildschirm) ohne irgeneine OpenGL-Library zu benutzen. Nichtsdestotrotz, eine akzeptable, aber noch signifikante Menge an Programmierarbeit musste gemacht werden, umd diese Anwendung auf J2SE, anstatt auf J2ME zum Laufen zu bringen und darüberhinaus große, skalierte und zugeschnittene Sternencharts verschiedener Zeitpunkte der Festplatte auszugegen. Zu guter Letzt wurde die Anwendung so verändert umd das Mapping jedes Sterns in der Database auszuliefern.(Yale Bright Star catalog) u seinem Ort an jedem Teilbild zu einer (MySQL)Datenbank, die wichtig ist, die Mausclicks auf dem Planetarium zu handeln und die Information über die Objekte unter dem Mauscursor anzuzeigen.
Diese angepasste Version der Anwendung ist übertragbar bzgl. verschiedener Alpekte des Outputs wie die anzuzeigenden Objekte, den Zeitpunkt, die Erdposition und viele andere Einstellungen. Details darüber können dem operativen Teil dieser Dokumentation entnommen werden.
Der Webserver hostet prinzipiell den Inhalt des HTML und JavaSkript Inhalt ( als Teil der kompletten Ciclope Astro Seite). Innerhalb dieses Dokuments ist nur sehr wenig Code, der (ohne gesonderte Erwähnung zu bedürfen) die Parameter für Google Maps API konfiguriert und schließlich eine Instanz der Himmelskarte kreiert. Es wurden nur 2 erwähnenswerte Dinge hinzugefügt:
Bezüglich des ersten Punktes wurde ein Event Handler registriert mit Google Maps API, um auf Mausclicks auf dem Bildschirm zu reagieren. Ein Click auf en Bildschirm startet ein asynchrones JavaSkript Request zu einer serverseitigen JSP Seite, die die Koordinaten der Maus enthält, den Zoomlevl und die aktuelle Kartenzeit. Als Ergebnis liefert die Seite eine XML-Datei, die das Objekt unter dem Cursor enthält, falls eines existiert, als auch ihren Katalog-ID. Mit diesem Ergebnis kann der Code der Clientseite schließlich ein Pop-up Fenster öffnen, dass die Informationüber dieses Objekt unter dem Mauscursor anzeigt.
Bezüglich dem zweiten Punkt wurd ein JavaSkript Timer hinzugefügt zu der Seit, das einen asynchronen Anruf auf ein JSP auf dem Server jede Minute macht, die die aktuelle Zeit auf dem Server zurückliefert. Das geschieht um die Client-Seite synchronisiert mit dem Server, umd den Himmel, so wie der gesehen werden kann mit einem Teleskop an der Fakultät zu dieser Zeit und nicht den Himmel gemäß der Zeit auf dem Computer des Users (die falsch sein könnte oder wegen Zeitverschiebung verschieden sein könnte).