PDA

View Full Version : Lesender Zugriff auf Redis per RPG



Seiten : [1] 2 3

dschroeder
12-04-21, 13:59
Hallo zusammen,

unsere Java Kollegen betreiben seit langem einen Redis Server (nicht auf der IBM i). Wir haben vor vielen Jahren mal eine Lösung in RPGLE geschaffen, mit der wir in diesen Server reinschreiben können. Wir nutzen dazu die LIBHTTP Funktionalität von Scott Klement. Da wird eine eigene socket Kommunikation eröffnet usw. Alles ganz schön "tief unten".

Jetzt müssen wir auch lesend auf den Redis zugreifen. Meine Frage ist: Hat das schon mal jemand in RPG gemacht? Oder gibt es da vielleicht inzwischen von IBM eine einfachere Lösung? Beim Googlen stößt man auf Seiten wie "IBM Cloud Databases for Redis". Das sagt mir aber nichts.

In vielen anderen Programmiersprachen (z.B. Java) gibt es fertige Clients. Aber richtig schön ist ein Kommunikation zwischen RPG und Java natürlich nicht.

Wenn jemand eine gute Idee hat, bitte posten.

Im Voraus vielen Dank!

Dieter

Fuerchau
12-04-21, 14:10
Es gibt von Dieter Bender eine schöne OpenSource-Lösung:
http://www.bender-dv.de/AppServer4RPG.html

dschroeder
12-04-21, 15:37
Hallo Baldur. Vielen Dank für deine Nachricht. Ich weiß, dass es diese Lösung gibt. Wir bekommen dann aber nochmal eine weitere "Asynchronität" in unsere Applikation. Ich fände es schöner, wenn wir direkt in unserem Programm einen Call machen könnten, der uns sagt, ob im Redis etwas für uns drinsteht.

Aber ich habe die Lösung im Hinterkopf. Wenn wir nichts passenderes finden, kommen wir darauf zurück.

BenderD
12-04-21, 15:47
Hallo Baldur. Vielen Dank für deine Nachricht. Ich weiß, dass es diese Lösung gibt. Wir bekommen dann aber nochmal eine weitere "Asynchronität" in unsere Applikation. Ich fände es schöner, wenn wir direkt in unserem Programm einen Call machen könnten, der uns sagt, ob im Redis etwas für uns drinsteht.

Aber ich habe die Lösung im Hinterkopf. Wenn wir nichts passenderes finden, kommen wir darauf zurück.

... das ist technisch asynchron, funktional synchron! Hast Du mal nachgesehen, was mit Redis per JDBC geht? Möglicherweise kann man da direkt per embedded SQL via ArdGate arbeiten...

D*B

dschroeder
12-04-21, 16:00
Ob ein JDBC Zugriff auf Redis möglich ist, weiß ich nicht. Ich kläre das mit meinen Kollegen mal ab.
Vielen Dank erstmal.

dschroeder
12-04-21, 16:11
Noch ein Wort zu AppServer4RPG bzw zu ArdGate:

Wir setzen ungern in unserer Individualprogrammierung "fremde" Software ein. Wenn wir Code Snippets bekommen, die wir verstehen können, ist das OK. Oder wenn die Software (zb. per SQL-Funktionen) direkt von IBM kommt und wir da den 7x24 Support im Rücken haben, ist das auch etwas anderes.
Ich weiß, dass jetzt einige sagen "Aber man kann doch nicht alles selbst entwickeln". Im Moment sehen wir das so, dass wir die Dinge, die kritisch sind, doch lieber selbst unter Kontrolle haben. Selbst wenn unsere Lösung dann nicht so schön ist.

Ob wir diese Einstellung dauerhaft durchhalten können, weiß ich natürlich nicht.

Dieter

Fuerchau
12-04-21, 19:31
Nun ja, dafür gibts eben OpenSource. Man bekommt die Quellen gleich mit, lernt diese kennen und kann sie wie eigene Software verwenden.
Alternativ kannst du ja basierend auf den Schnittstellen Wrkreginf durchaus eigene Software entwickeln.

Nach diesen Randbedingungen dürftet ihr eigentlich Office gar nicht einsetzen.

BenderD
13-04-21, 06:23
Noch ein Wort zu AppServer4RPG bzw zu ArdGate:

Wir setzen ungern in unserer Individualprogrammierung "fremde" Software ein. Wenn wir Code Snippets bekommen, die wir verstehen können, ist das OK. Oder wenn die Software (zb. per SQL-Funktionen) direkt von IBM kommt und wir da den 7x24 Support im Rücken haben, ist das auch etwas anderes.
Ich weiß, dass jetzt einige sagen "Aber man kann doch nicht alles selbst entwickeln". Im Moment sehen wir das so, dass wir die Dinge, die kritisch sind, doch lieber selbst unter Kontrolle haben. Selbst wenn unsere Lösung dann nicht so schön ist.

Ob wir diese Einstellung dauerhaft durchhalten können, weiß ich natürlich nicht.

Dieter

Auch da kann ich weiterhelfen! Statt ArdGate könnt ihr auch Infosphere Federation Server nehmen, das ist von IBM und damit kann man auch von der AS400 mit SQL auf JDBC Data Sources zugreifen. Da brauchts dann lediglich einen weiteren Server auf dem das läuft und die Software ist nicht Open Source und kostet einen schmalen Obolus an IBM. Mit dem Support durch IBM wünsche ich euch viel Glück - ich kenne nämlich niemanden, der das im Eier Umfeld einsetzt.
Was die grandiosen Java-SQL procedures und functions angeht, falls ihr die einsetzt, müsst ihr mit dem Einsatz von Java aufpassen, die mögen das nicht, dass da noch jemand nicht-IBM Java einsetzt.
Was ich nicht ganz verstanden habe, habt ihr eine eigene Implementierung von Redis oder gibt es das von IBM?

Dieter

dschroeder
13-04-21, 08:10
Ich hatte schon befürchtet, dass ich hier eine Grundsatzdiskussion auslöse. Das war aber nicht meine Absicht.

Ich denke, ich bin da etwas missverstanden worden. Ob wir fremde Software einsetzen oder nicht, hängt natürlich zunächst davon ab, ob wir die Lösung mit vertretbarem Aufwand überhaupt selbst entwickeln könnten. Beim Office Paket ist das augenscheinlich nicht der Fall.

Wenn wir dann bei einem Probem, das wir selber lösen könnten, vor der Entscheidung stehen, ob wir Fremdsoftware einsetzen oder ob wir es selber bauen, stellen wir uns folgende Fragen:
- Wieviel Aufwand erspart uns die fremde Lösung?
- Wie abhängig machen wir uns von der fremden Software?
- Wie kritisch ist unser Problem, also: wie schnell benötigen wir einen workaround, falls die fremde Software mal nicht mehr läuft und wie schnell könnten dann wir einen workaround selber schaffen?

Was wir im konkreten Fall für den Redis Zugriff benötigen, ist ja nur ein sehr kleines Tool. Aber es wird an einer kritischen Stelle eingesetzt. Deshalb fände ich es besser, dieses Tool vollständig unter Kontrolle zu haben. Und deshalb fände ich ein Code-Snippet oder etwas ähnliches besser. Wenn es das nicht gibt, muss ich neu überlegen.

Zum Thema OpenSource: Ich habe die Befürchtung, dass, wenn eine Software komplex genug ist, einem OpenSource nicht zwingend weiterhilft. Man muss ja im Zweifel auch genug Zeit und Ressourcen haben, um den OpenSource Code zu lesen, zu verstehen und ggf. zu korrigieren. (Das ist allgemein gemeint. Ich habe überhaupt keine Ahnung, wie komplex ArdGate ist).

dschroeder
13-04-21, 08:21
Übrigens noch eine Anmerkung zum IBM Support. Ich hatte schon oft mit dem Support zu tun. Die Webseiten von IBM sind immer noch furchtbar. Aber wenn man es geschafft hat, ein Ticket zu eröffnen (geht ja auch telefonisch), bekommt man meiner Erfahrung nach hervorragenden Support. Schnell und kompetent. Und IBM bleibt solange am Ball, bis das Problem gelöst ist. Das klappt natürlich alles am besten, wenn man sich komplett in der IBM Schiene befindet. Bei einem Problem im RDi bezieht der Support bei Bedarf z.B. automatisch Leute von der Datenbankentwicklung mit ein.

Ich muss allerdings zugeben, dass ich nicht weiß, wieviel der Wartungsvertrag kostet.