#HowTo: Mit K2 und PubNub in der Echtzeit


Nicht selten bin ich damit beschäftigt, K2 Interessenten zu erklären worum es sich bei einer LowCode App Plattform wie K2 eigentlich handelt. Gerade bei “echten” Entwicklern entsteht schnell der Eindruck dass man beim Arbeiten mit derartigen Plattformen irgendwann nicht mehr gebraucht wird oder alle Flexibilität eingebüsst werden muss, was wohl zu der Befürchtung führt, dass man als Entwickler nicht mehr mit den allerneuesten Frameworks und Services “spielen” darf.
Auf den ersten Blick ist diese Reaktion nachvollziehbar und natürlich, und ja, natürlich muss man sich an diverse Gegebenheiten anpassen – aber bedeutet das wirklich, dass man als Entwickler in der K2 Welt gefangen wäre? Setzt man diese (frühe) Wahrnehmung vor den Spiegel der Realität, lässt sich deutlich erkennen, dass K2 Kunden oftmals Anforderungen umsetzen, die ziemlich weit entfernt vom Standardverhalten einzuordnen sind. D.h. Kunden profitieren permanent von Standardfunktionen die mit der Plattform kommen (HTML5 UI Technologie, Mobile-Readiness, Workflowengine, Datenintegration, invididuelle Dashboards etc.), können aber aufgrund von APIs oder durch Komponenten wie den REST Broker auch Funktionen bzw. externe Services nutzen, ohne überhaupt die K2 Infrastruktur dafür anfassen zu müssen (Stichwort: Cloudkompatibilität).
Ein nettes Beispiel hierfür ist ein Cloudservice wie PubNub!

Was ist PubNub?

APIs for developers building secure realtime Mobile, Web, and IoT Apps.The PubNub Data Stream Network powers low-latency secure messaging at massive

Wie kann man mit K2 Nachrichten an einen PubNub Channel senden?
Ganz einfach und ohne Service-Side Code. PubNub bietet wie fast alle modernen Plattformen eine REST API, welche mit dem K2 REST Broker genutzt werden kann.
Für eine genaue Beschreibung bitte diese Doku lesen
https://www.pubnub.com/docs/pubnub-rest-api-documentation#publish-subscribe-publish-v1-via-post-post

Die URI sieht generisch wie folgt aus:
“https://pubsub.pubnub.com/publish/{pub}/{sub}/0/{channel}/0”

Was fehlt ist die einmalige Erstellung einer sog. SWAGGER Beschreibung für die Verbindung zu K2. Praktischerweise übersetzt der K2 REST Broker alle erwarteten Werte als Inputparameter für SmartObject-Methoden. Das Ergebnis ist ein wiederverwendbares, typisiertes Objekt im Repository, das man nun direkt von der UI aus oder in Workflows via Drag&Drop nutzen kann.

Eine mögliche Ausprägung der Swagger (JSON) Datei könnte so aussehen:

https://1drv.ms/u/s!Alwsd9IjhMleiqYt8I5fyRE_UV-xHw

(Hinweis: Natürlich wäre es auch möglich den Aufruf ohne den REST Broker via JS direkt auf einem K2 Formular zu machen. Dann würde die Nachricht sogar komplett am K2 Server vorbei an PubNub publiziert – allerdings hätte man dann nicht den Vorteil eines generischen und wiederverwendbaren Objekts und die Funktion wäre auch nicht in WFs nutzbar!)

Das SmartObject kann dann wie gehabt, in den K2 Designern typisiert genutzt werden.

K2 Smartforms Regeldefinition, nach einem Mausklick auf einen Button soll eine PubNub

Regelkonfiguration

Das funktioniert natürlich genau so in den K2 Workflow Designern, wo man nun on-demand an jeder passenden Stelle eine Nachricht an PubNub übermitteln kann:

SmartObject Event Methodenauswahl

In einer echten App kann das ganze dann so aussehen. Im rechten Fenster hinterlässt der Benutzer Bob eine Nachricht, die dann im Dashboard eines anderen Benutzers dargestellt wird:

Buffer this pageShare on LinkedInShare on FacebookTweet about this on TwitterEmail this to someone

Leave a Reply

Your email address will not be published. Required fields are marked *