Dynamische Abbildung von Java Objekthierarchien auf REST Schnittstellen
Ziel
"REpresentational State Transfer" (REST) ist ein etabliertes Prinzip für den einfachen Zugriff auf verteilte Ressourcen mittels Web Services. Das Ziel dieser Arbeit ist der Entwurf und die prototypische Implementierung eines Java Frameworks um beliebige Java Objetktgraphen per REST Prinzip im Netz verfügbar zu machen.
Vorgehen
Die Arbeit besteht aus mehreren Schritten. Zum einen muss eine Abbildung von REST URIs auf Java Objekthierarchien zum Zwecke der Adressierung spezifiziert werden: bei einem Zugriff nach REST Prinzipien identifizieren übergebene URIs die Ressourcen. Im Kontext dieser Arbeit sind Ressourcen Java Objekte, inklusive Ihrer öffentlichen Felder und Methoden. Es ist also nicht nur notwendig festzulegen wie ein Teil einer REST URI auf ein Java Objekt abgebildet wird, sondern auch wie beispielsweise mit Collections, Rückgabewerten, Verweisen, usw. umgegangen wird. Zum anderen muss eine Abbildung der bei REST eingesetzten HTTP Methoden auf Operation der Java Programmiersprache (Methodenaufruf, Auslesen oder Schreiben eines Felds, etc.) festgeschrieben werden. Als dritter Bestandteil der Arbeit muss eine einfache Spezifikation der impliziten Abbildung von in Java gehaltenen Daten auf die REST-typischen Repräsentationsformate (JSON, XML, HTML) erfolgen. Hierbei geht es nicht um eine Konvertierung zwischen Datenrepräsentation, sondern nur um einen Selektionsmechanismus zur Auswahl der Datenformate, die bestmöglich zu einer Anfrage passen.
Im praktischen Teil der Arbeit soll, aufbauend auf den theoretischen Erkenntnissen, ein System zur Freigabe von Java Objekten per dynamischer (d.h. zur Laufzeit generierter) REST Schnittstelle entwickelt werden. Technisch ist beabsichtigt, das Framework mit Hilfe von Java Reflection zu implementieren. Die Analyse der Objektgraphen geschieht dabei "on demand", d.h. als Reaktion auf eine REST Anfrage. Es gilt zu evaluieren, ob sich an dieser Stelle auch Just In Time (JIT) Compilation Ansätze anwenden lassen, obwohl dies nicht als Kern der Arbeit verstanden wird . Ein einfacher HTTP Server kann zur Verfügung gestellt werden, so dass die Abwicklung des HTTP Protokolls nicht notwendigerweise Bestandteil der Arbeit sein muss.