Ich war auf meinem zweitem Meetup. Das Thema war Ruby und Web-Developement. Ein breites Gebiet, in dem auch der Lehrplan der FH-Salzburg und deren Bemühung zur Ausbildung neuer Web-Developer seinen Platz fand. Die Gruppe war mit ca.17 Teilnehmern überraschend groß und die Organisatoren haben wirklich eine großartige Arbeit geleistet. Vor allem die Verpflegung konnte sich sehen lassen!

Beim Thema Ruby sind meine Sprachkenntnisse relativ gering und ich konnte nicht viel zum Thema beitragen. Dafür ist mir bei einer Unterhaltung die Ähnlichkeit zwischen einem WebService-Aufruf zur Datenbeschaffung und einer Datenbankabfrage richtig klar geworden. Als WebService-Aufruf bezeichne ich hier, einen Zugriff auf einen Dienst oder Anwendung über HTTP. Klassische Beispiele für WebService-Aufrufe sind SOAP und REST.

Das soll nicht heißen ein WebService-Aufruf ist gleich zu setzten mit einer Datenbankabfrage. WebService-Aufrufe haben auch eine entscheidende Rolle bei der Verteilung und Skalierung von Prozessen und sollten deshalb nicht auf Datenabfragen reduziert werden. Bei aktuellen Projekten, an denen ich beteiligt bin, wird jedoch sehr selten eine Bearbeitungen in einem anderen Systemen angestoßen. Meistens wird auf Daten aus anderen Systemen zugegriffen.

NoSQL (Not only SQL) Datenbanken bieten ebenfalls sehr häufig ein REST-API für den Zugriff und die Bearbeitung von Daten. In meiner Beobachtung sind aber auch die meisten Anwendungen schon richtige NoSQL-Datenbanken, selbst wenn sich dahinter eine relationale Datenbank verbirgt. Durch die angebotenen REST-API werden oft Funktionen einer Datenbankschnittstelle angeboten.

Tools in Java

In JavaScript  ist die Verwendung von NoSQL-Datenbanken, durch die Bereitstellung von REST-API’s mit JSON-Daten, ein logischer Schritt. Schon alleine durch die große Anzahl der Möglichkeiten(Redis, MongoDB oder CouchDB), die für JavaScript existieren, ist dieser Zusammenhang gesichert.

Im Java-Umfeld, in dem ich mich aktuell bewege, ist dieser Gedanke noch um einiges weiter entfernt. Auch das Tooling ist oft vergleichbar mit dem direkten Level von JDBC. Die Schwierigkeit besteht in diesem Fall mehr auf dem Unterschied zwischen dynamischen und statisch typisierten Daten.

Für mich war der Gedanke neu, andere haben diese Ähnlichkeiten viel früher erkannt. Im “Spring Data” Projekt wird hierfür auch schon eine Unterstützung geboten. Dort finden sich bekannte Vertreter aus dem NoSQL-Datenbanken Umfeld wie MongoDB und Redis.

Ich hatte zwar noch nicht genügend Zeit mir die Projektbeschreibungen genau anzusehen, doch werde ich mich beim nächsten eigenen Projekt darauf zurück kommen.

Bildquelle