
Einfach Komplex – Der Software- und IT-Podcast· Folge 94
VRPC: Die REST-Alternative für Event-getriebene Architekturen - made by Burkhard #94
Dienstag, 7. Oktober 2025 · 1 h 05
Kapitelklicken springt direkt hin
Shownotes
REST APIs sind der Standard für die Kommunikation im Web, doch für Entwickler bedeuten sie oft ein starres Korsett: Semantisch reichhaltige Aktionen müssen in umständliche CRUD-Operationen gepresst werden, während moderne Anforderungen wie Event-Handling, Asynchronität oder Service Discovery nur mit viel "Klempnerarbeit" realisierbar sind.
In dieser Folge stellt Burkhard sein eigenes Open-Source-Projekt vor: VRPC (Variadic Remote Procedure Calls), eine direkte Alternative, die genau diese Schmerzpunkte adressiert. Die gesamte Heisenware-Plattform basiert auf dieser Technologie.
Der Kern von VRPC löst die alten Probleme durch zwei entscheidende Änderungen: Statt einer direkten Client-Server-Verbindung wird ein Message Broker (MQTT) als Vermittler genutzt, was die Inbound-Problematik in IoT-Szenarien beseitigt. Statt manueller API-Definitionen macht VRPC bestehenden Code mittels Reflection direkt und non-invasiv über das Netzwerk verfügbar. Funktionen können wieder als Verben (startMotor()) aufgerufen werden, statt sie in Substantive (PUT /motor/state) zu pressen.
Das Ergebnis ist eine extrem flexible und entkoppelte Architektur, die Entwicklungsgeschwindigkeit drastisch erhöht und in der asynchrone Prozesse und Echtzeit-Events zu nativen Konzepten werden. Burkhard erklärt die Kompromisse des Ansatzes und ordnet VRPC im Vergleich zu REST und gRPC ein.
Links:
VRPC Docs - docs.heisenware.com/developers/vrpc
VRPC on Github - github.com/heisenware/vrpc-js
------
Einfach Komplex ist ein Podcast von Heisenware.
Starte kostenlos mit Heisenware unter heisenware.com/einfach-komplex
Aktuelle Infos im Linktree linktr.ee/heisenware (linktr.ee/heisenware)
Transkriptvom Podcast bereitgestellt · Zeitmarken springen hin
Moin und Hallo zur Folge 94 von einfach komplex nach 2 Themen mehr mit Industriebezug geht es heute mal wieder um pures Developer Gold. Wir werden von Burkhard erfahren, wie er eigentlich auf die Idee kam, Vrpc zu programmieren. Kann man das so sagen, zu erfinden und zu programmieren? Ja und was das eigentlich genau ist? Wir haben das irgendwann mal angerissen, aber jetzt machen wir das mal heute kurz und knackig wir mal auf Vrpc ein. Und verstehen gleichzeitig noch in dieser Folge, was eigentlich die Probleme mit Rest vor allem sind VPC ganz kurz, Burkhard, wofür steht es?
Man könnte meinen, das heißt sowas wie versatile, also RPC Remote procedure calls stehender Begriff. Diese 3 Letters und dann gibt es das V davor und das ist aber nicht versatile oder irgend sowas, sondern das heißt Variadic und Variadic fragt man sich, was ist los mit dem Heisen, wieso Variadic kommt aus C plus plus, es gibt die Variadischen Templates, Programmierpetter relativ modern im C plus plus. Gibt es noch nicht immer und nur mit den Variatischen Templates kann man das lösen, was VRPC macht und das deswegen fand ich das so krass als add on in der t plus plus Sprache, dass ich es variatic RPC getauft hab, weil man damit auch t plus plus anbinden kann, quasi aber nur über diese Technologie. Ja, also variatic Remote
procedure calls VRPC wir. Sprechen darüber, weil es ist n Open Source Projekt, was unter der MIT Lizenz glaub ich verfügbar ist. Jeder, jeder das Benutzen unter Heisenware, Github, repo oder wofür will man das finden, wenn man das mal angucken möchte oder benutzen würde? Ja genau, also man findet es einfach in github.
Es gibt das VRPC in verschiedenen Ausprägungen kommen wir dann in der Folge noch drauf, weil es gemacht werden muss für alle Technologien, für alle Programmiersprachen, das Bestausgebauteste ist VRPC minus JS, so heißt es repo, das liegt bei uns in der AT Heisenware Company quasi no organization. Ob er das ist?
Da steht halt at heißen wir davor, stört aber nicht. Das Repo ist genauso wie der wie der Code und wie die Lizenz MIT also free to use Free to change baut es ein in kommerzielle Produkte könnt ihr sogar weiterverkaufen und so weiter also hat die krasseste und die weit geöffnetste Open Source Lizenz, die es im Prinzip gibt, ja.
OK, prima. Der Plan ist für heute tatsächlich mal zu gucken, wie ich schon erwähnt habe, was sind eigentlich die aktuellen Schmerzen, zum Beispiel mit Rest, welche potenziellen? Themen sind da nicht optimal. Wenn man Entwickler ist. Ja, und damit arbeitet und im zweiten Schritt zu gucken, wie VRPC vielleicht auch Remote Procedure Calls n bisschen allgemeiner hier und da das Ganze besser lösen. Am Ende wollen wir natürlich auch noch n bisschen drauf gucken, wie wir das eigentlich bei uns einsetzen, vielleicht ganz kurz, weil n großer Teil von Heisenway ist. Eben auf VRPC auch basierend, so viel darf man sagen. Genau.
OK, Burka dann. Erzähl doch mal wie. Was hast du damals gedacht? Er hat so ne Restappi vor dir gedacht, hast du die Hände überm Kopf zerschlagen, zerschlagen, geschlagen und gedacht? Nein, schon wieder eine restappi ich hab keine Lust mehr oder wie lief das? Ja, es ist so n bisschen so ne. Also ich kann mal sagen, Gerrit und ich sind ja auch, wir müssen ja ab und zu mal pitchen, so als Co Founders eines Startups und wenn man pitcht, dann lernt man, dass man ne Geschichte erzählen muss, also mit dem und anfängt mit dem Pain. Ja und ich will jetzt gar nicht Rest dissen oder irgendsowas ja es geht gar nicht darum, dass.
Rest oft schlecht ist oder irgend so wie ja das das das kann dann so klingen in der Folge, aber es war halt mein Pain ne ich hatte gewissen Pain als Entwickler n Entwickler Pain und den hatte ich schon ziemlich lange und wenn man wenn man viel pain verspürt dann dann verspürt man im nächsten Moment also jedenfalls manche Leute bei mir geht es ganz stark so dass man irgendwie was machen muss um den Pain zu releven ne ich würde gerne anfangen zu erklären warum ich VLPC gemacht hab.
Indem ich einfach erzähle, was mein Pain war. Und unter anderem war Halt Rest in Pain genau, ja, das ist so und da muss man kurz n bisschen gucken, wo waren wir in welchem Setting, also das weiß auch nicht jeder, ich kannte den Gerrit auch schon bevor der bevor wir mit der Heisenware losgelegt haben in in einer anderen Company, die auch IOT im größten und IIOT im größeren Sinne gemacht hat, da kommt einem sofort ein Pain in den Weg und zwar.
Netzwerkarchitektur, das will ich mal ganz als Erstes nennen. Ja, ich hab ich hab mir so n auf meinen Spicker hab ich inbound geschrieben ja also und warum ja IOT heißt ja, dass ich ganz oft entfernte Geräte und so weiter Remote kontrollieren will, also digitaler Zwilling und so weiter alles das kann ich nur machen wenn ich oder macht nur Sinn wenn ich irgendwie zentral von der Cloud aus mit Remote quasi n Zwilling bauen kann, mit irgendwer der der nicht bei mir in der Cloud liegt, ja der liegt normalerweise in irgendeiner. Factory oder wenn es IOT ist, dann ist es vielleicht auch irgendwie nur ein Mülleimer oder irgendwas, der draußen steht, der Smart gemacht hat oder so.
Ja und was diese Dinger nicht mögen ist, dass wenn man jetzt muss, man sich die Netzwerkarchitektur angucken, die mögen nicht als Server auftreten, diese Dinge, ja, die mögen keinen, und wenn sie nämlich als Server auftreten, dann muss ich quasi einen wählen, das nennt sich inbound, ja, ich muss quasi aus der Cloud Reinwählen in das Device, ja.
Und warum mögen die das nicht? Weil meistens die IT Abteilung das nicht mögen und aus gutem Grund, weil dann muss ich nämlich n Port aufmachen und ich bin nicht ich bin nicht gut geschützt, ja ich weiß ja nicht wann mich jemand anruft, ja wenn ich, wenn ich einfach sage ich bin ich, ich kann angerufen werden, dann mach ich mich relativ weit auf ja also das ist was was man nicht haben will, ja ich will das, ich will, die will die Verantwortlichkeit drehen, ich will wenn ich kommunizieren will, dann ruf ich gefälligst an mit dem, dem ich kommunizieren will, das ist sicherheitstechnisch.
Von der Logik her und so weiter ist es das, was ich haben will. So, und da ist schon das erste Problem, weil in der Restwelt, also wenn ich das jetzt technisch realisieren will, muss ich irgendwas nehmen, ich brauch netzwerkkommunikation Punkt ja also ich brauch irgendwie was, ja und was ich als erstes aus der Schublade ziehe, weil es halt der krasseste Standard ist überall und so weiter ist halt die Rest API.
Ja und in der Rest API gibt es die Server und den Klienten und der Server ist der der länger lebt und der Klient ist der der anruft und kürzer lebt typischerweise. Und wenn man das über Rest API denkt, dann muss ich jetzt trotzdem irgendwie dem der Maschine oder Irgendsowas die würde jetzt trotzdem der Server werden.
Ja von der Logik her geht gar nicht anders. Ja und jetzt bin ich aber auch schon im Klo, weil ich wenn ich n Server bin brauch ich halt ne inbound connection ne also jetzt muss ich doch einwählen ne und hab den ganzen Server am Start ja das ist irgendwie n Mist. Ja also da fängt man schon an Kopfschmerzen zu bekommen und das ist schon mein erster großer Kopfschmerz wie kriegt man also das das will man einfach nicht, man will es irgendwie drehen ne so.
Mehr zu sag ich das sogar nicht, aber es ist halt voll nicht easy das mit Rest Krams aufzubauen. Ne ist mein 1.1. Pain ne so weit so klar geritt das. Das das soweit so klar ja und ich ich schätze mal man könnte jetzt wahrscheinlich bei jedem dieser einzelnen Paints sagen, Moment, da gibt es aber dies und das, aber wir müssen wahrscheinlich die Pains als Gesamtpaket am Ende betrachten.
Genau deswegen würde ich auch das so aufbauen, dass ich erst mal die ganzen Pains runterratter und von ihr merkt, dass es dann irgendwie, dass man dann schon auch irgendwie Schmerzen haben kann. Oder auch nicht. Ja, ich bin natürlich auch, also man muss ja auch dazu sagen, die Entwickler sind ja sehr sehr faule Menschen, ne, also wir haben überhaupt keinen Bock irgendwie uns immer mit mit Boilerplay zu beschäftigen und so weiter und je weniger wir Code tippen müssen und je wie einfach alles irgendwie funktioniert, desto glücklicher ist man ja.
Also es kann ja auch schon n pain sein, wenn man irgendwo zu viel machen will, bringt mich zum nächsten, zum nächsten Pain den ich hab, wenn man jetzt nicht nur ne Datenbank hat. Wo man irgendwelche Records irgendwie crud mäßig verhandelt. Ja, also was heißt crud noch mal kurz create read update delete ja also mein normaler Zyklus, ich mach nen Ich trag was neues ein in die Tabelle das ist das create ich les was aus read ich update eine Row Fine Update und dann delete ich lösch den Eintrag ja und wenn ich nicht so einfache Sachen hab wie irgendwie Blog, Post oder irgendsowas ja dann kann so nen crud basierter Ansatz den Rest halt auch wieder hat ja auch voll zum Pain werden ja weil. Jetzt bin ich auf einmal.
Ich bin auf einmal weg von einfach nur Datenbanken. Ja, ich bin auf einmal auf Devices, ja, ich hab digitaler Zwilling am Anfang gesagt, ja, auf einmal hat so ne Device ja ne semantic ne was heißt semantic, ich will sagen connect Disconnect ja is connected set registers set variable oder was weiß ich und dann auch noch hochspezifisch je nach je nach Device ja spreche ich mit dem OBCOA Server hab ich ja ne ganz andere Nomenklatur. Ne ganz andere Semantik mit dem ich sprechen will und ich hätte gerne die Semantik auch beibehalten, weil die Experten die Domain Experten dieses bedienen sollen. Die wollen ja nicht in einer Wahnsinns abstraktionsschicht irgendwie sich das mappen, müssen selber mental. Was heißt denn jetzt irgendwie
put Connect oder irgendsowas ah das macht wohl ne Connection oder irgendsowas ja. Das Problem mit Rest ist, es ist halt n krasser Abstraktions und krasser Standard. Das ist cool, damit wird es quasi nutzbar, ziemlich zu vielen Sachen, verlierst aber komplett die Semantik der Dinge, ja weil alles müssen Nomen sein, ja es gibt es gibt eigentlich gar keine Verben in der AP, weil die Verben sind ja schon das Get Put, Patch, Post und delete, ja quasi die Anweisung was ich mache retrite Update und delete ja das ist ja umgesetzt in die Verben und dann hab ich nur noch so Nomen ja in der AP ja.
Damit es irgendwie Sinn macht. Ja, und ich sprech so von Ressourcen, das passt ja auf viele Sachen, aber es passt halt, es ist halt voll, ist halt voll Schwachen. Wenn ich jetzt mehr als Datenbanken mache und irgendwie ne ne wilde IOT Welt habe und irgendwie alle möglichen Dinge mir vorstelle die ich damit machen könnt.
Das heißt, du sagst die Rest AP ist ursprünglich wahrscheinlich auch dafür gemacht, insbesondere gut mit Datenbanken zu kommunizieren? Ja, die die crod Operation lassen sich direkt übersetzen auf die Haupt. Operationen oder werben, die es in in der Rest AP gibt. Deswegen und wenn ich jetzt aber n reales Device angucke oder irgendwelche auch auch nicht realen oder virtuellen Dinge, die man in der Fabrik zum Beispiel findet wie NOPCA Server oder vielleicht auch irgendeine PLC oder so oder sonst was, dann ist das nicht unbedingt aufgebaut.
Wieso ne Datenbank wo ich nur mit Kontooperationen weiter komme, das heißt ich müsste diese Operation, die ich in der Rest AP zur Verfügung habe immer schwer umbiegen und mappen. Um dann doch wieder mit den Devices zu kommunizieren. Und das will ich eigentlich nicht, oder? Das ist n Pain einfach letzten Endes.
Ja, genau das ist n Pain und das ist vor allen Dingen auch n Entwickler Pain, weil du musst. Es ist überhaupt nicht einfach ne schöne Rest LPI zu designen. Wenn du n sehr semantisches Problem hast. Es sind ja Sachen weißt du in dem Moment wo ich vielleicht auch zum Beispiel mehrere Sachen zusammenfinden muss und wo ich filtering anbiete, ja wo ich wo ich dem Nutzer sage, OK, du kannst ja ganz dynamisch mit mehreren Ressourcen sprechen und so weiter den den der erste Pain den du hast, du musst das ja. Du hast ja Code am Ende des Tages und Du hast schöne Funktionen aufgeschrieben.
Ja, die haben einen schönen Namen, das lernt man als Entwickler im ersten Semester, das ist das Wichtigste. Ja, Namen, Namen, Namen, du schreibst also Klassen hin, du strukturierst deinen Backend Code, der quasi das macht was du machen möchtest und die Funktionen haben tolle Namen, da steht genau drin was du machst. Die haben verschiedene Argumente und die Argumente haben auch Namen und widerspiegeln genau das was da rauskommen soll. So hast du wenn du den Code liest zum Beispiel ein sehr gutes Verständnis was da los ist. Im besten Fall hast du sogar noch JS Dock. Also eine Art Dokumentation.
Das ist in Python mit in der Funktion sogar drinne, bei anderen Programmiersprachen wird das extra dran geklebt, wenn man das liest. Als Entwickler ist man eigentlich fertig, wenn man das toll designt hat, hast du eine wunderbare API und jetzt kommt Rest und jetzt kommt der Pain, jetzt musst du diese wunderbare API auseinandernehmen und neu ausdrücken mit diesen Verben und diesen Nomen und du musst itempotent sein und es gibt 1000 regeln.
Und dann wird es einfach kacke, so meistens ja, und es ist auch nicht standardisiert und weil es kacke wird, wird es halt auch für den Nutzer dann kacke sag ich mal ja und wie gesagt bei einfachen Sachen genau du hast gesagt Gerät funktioniert das leidlich sobald es komplexer wird würd ich sagen hat das schnell n Ende ja. Und das mit dem Nomen heißt so viel wie ich nehm jetzt zum Beispiel nen nen GAD und dann hab ich das Nomen dahinter ist dann sowas wie Maschine oder so und. Zustand oder sowas oder oder was meinst du mit mit wer? Ja, die die die, die ja die Nomen sind, ja die die Namen der also ne Rest API sind ja immer URLS, wenn das dich gehört, der hat noch mal ne Folge, also in
den in den Browser und dann heißt das Halt irgendwie Blogs zum Beispiel also bla bla bla bla bei der Domäne heißen wir topcloud oder irgendwas slash so dann kannst du zum Beispiel sagen und dann kommt meistens noch AP damit angezeigt wird hier kommt nichts für den Browser sondern für die für die Klienten AP, Slash und dann zum Beispiel Blogs.
Blogse mit g, also deine deine Blogeinträge ja so, das ist das Nomen das ich meine, also deine ganze Funktion, dein ganzes Getöns heißt einfach nur noch Blogs, ja und dann kannst du sagen, get, wenn du n get Call machst, dann heißt es so viel wie Get Blogs, dann kriegst du halt alle ja so, wenn du ne bestimmte haben willst, dann musst du schon wieder mit query Parametern irgendwie mit dem Fragezeichen und so weiter darum Hühnern und so das ist ja alles voll nicht intuitiv, ja.
Das ist ja quasi das Beispiel, was ich gerade machen wollte, mit wenn ich nicht Blogs, sondern übertragen auf diese Welt, in der du unterwegs warst mit Maschine. Genau und und und dann slash weiß ich nicht, Motor 5 oder n slash Zustand oder sowas. Genau, Motor 5. Genau und dann müsstest du sagen, genau und dann musst du auch gucken, irgendwie zustand oder oder Speed oder was heißt denn Start und Stop und so weiter du kannst ja noch nicht mal hinschreiben Motor 1, slash Start oder irgendsowas weil Start ist eigentlich keine saubere Rest App in dem Sinne ja aber dann was machst du denn dann?
Ja Motor 1 Post und in der Nachricht Post schickst du dann in den Start Befehl mit und so weiter und wie kriegst du die Antwort dass er gestartet wurde und so kriegst du. 1000 Kopfschmerzen ja und fängst und denkst dir irgend, oh, ich muss das irgendwie standardisieren und so weiter ja, wenn du das denkst, ich muss das irgendwie standardisieren, dann sind wir bei der Folge, die wir auch hatten, Asset Administration, Shell und so weiter die haben nämlich auch genau diesen Pain gefühlt. Ja und dann wird rum standardisiert, dann werden Modelle entwickelt und so weiter das sind aber alles mappings, ja und du bist du bist als Entwickler gezwungen es zweimal zu schreiben, es zweimal zu denken und fühlst dich irgendwie trotzdem immer noch nicht wohl.
Ja ich hab das gehasst. Ja ist für mich n krasser Pain. Da hab ich das verstanden. Ja, also erst Thema Inbound zweites jetzt mappings ja überflüssige Mappings letzten Endes. Überflüssige Mappings und erstens überflüssig und zweitens Verschlimmbessern die das ja, weil du typischerweise Semantik kurzer Teaser heute unsere ganze KI Welt ist unglaublich semantisch, was mein ich denn überhaupt mit semantisch? Semantisch heißt es kommt total drauf an wie ich Sachen benenne und wie der Kontext ist von Benennungen ne unsere KI ist deswegen gut weil wir prompts schreiben. Die semantischen Kontext darbieten. Ja, ich weiß auf einmal, wenn ich von Apple spreche, hab dahinter irgendwie noch iphone
oder Irgendsowas, dann entsteht n Kontext. Ich weiß, dass ich von der Firma Apple spreche und nicht vom Apfel, ja, weil ich nicht, nicht nicht Pia dahinter geschrieben hab oder irgendwas nicht bei den Früchten ja und der Teaser ist, wenn wir Semantik erhalten in der gesamten Kommunikation und in der Ansprache zwischen und Kommunikation kann ja auch zwischen Softwarestücken sein, dann ist KI mächtig.
Weil KI kann ja mit semantischen APS viel besser umgehen und die verstehen als diese runtergedampften 1234 Art Anweisungen und irgendwelche komischen Nomen. Ne vielleicht der wieviel nächste Infos so gut der pain wenn ich denke ich denke der ist n bisschen klar geworden gehen wir zum nächsten Pain ne nächster riesiger Pain eventhandlung eventhandling. Und das ist krass in da, in dieser Welt. Wenn einfach mir der Server Nachrichten geben will. Ja, also noch mal, der Server wär quasi unser Device, also unsere Maschine nehmen wir noch mal gerade und die einfach ne Info hat für mich ja scheiße mir geht es schlecht, mir ist heiß geworden Alarm ja oder was oder Störung ich bin hängen geblieben also das ganze Alarming sowieso,
dann aber auch vielleicht ganz normale Sachen wie ich ich arbeite Stücke ab und jedes Mal wenn n Stück Arbeit abarbeitet ist krieg ich n Stückzahl Feedback ja. On product done oder Irgendsowas einfach so. Callbacks nennt man oder Events das gleiche Prinzip. Hier also quasi Sachen, die ich nicht andauernd anfragen will, wo ich nicht sagen will, hey, geht es dir noch gut ja hey geht es dir noch gut ja hey geht es dir noch?
Nein jetzt hab ich n Alarm, so gibt es einfach nicht ja nächster pain mehr muss ich jetzt noch nicht sagen ist klar oder weil der Rest sieht es nicht vor genau wir müssen jetzt mal ja ja wir müssen jetzt noch ich war ganz kurz zu kurz gesagt so ne. Gute Tee. Aber, aber wir wollen, wir gehen ja erst mal die Pains durch.
Ja, du warst ja sind ja paar Jahre zurück und du hast auf das auf die Welt geguckt und so festgestellt, erst mal ja. Ja und Vorsicht. MQTT ist halt nicht West. Ja West IPI setzt den Transportkanal fest und der ist HTTP und Punkt und nichts MQTT. Ja genau, MQTT ist Teil meiner meines Pain, wie Leavers später, das erzähl ich dann genau, aber hast du gut gefühlt ja genau OK next pain.
Asynchronität auch so n Scheiß ja, als wäre unsere Welt nicht asynchron. Ne, also das muss man sich ja einmal, das muss sich ja einmal runter verdauen, ne also wenn man entwickelt heutzutage als Entwickler und man hat noch nie was von Promises oder Asynchronität gehört, dann kann man auch, ja dann lassen wir es über die KI machen sag ich mal.
Aber die Welt ist halt komplett asynchron, ne ist alles dauert seine Zeit, ja und wenn es nur n Datenbank also alles ist verteilt, das ist nämlich modern. Wenn was verteilt ist, dann hab ich Netzwerk dazwischen. Dann hab ich einfach überall Zeit, selbst wenn ich NSQL query mache und sag hier gib mir mal alle was weiß ich gib mir mal alle maschinenlaufzeiten raus oder so, das macht es schon, es geht auch relativ schnell, aber das ist wurscht wie schnell das ist, dass es relativ schnell geht heißt, dass ich nicht im Programm anhalte, alles anhalte, warte bis der Befehl zurückkommt und dann weitermache und das nennt sich synchron, wenn ich quasi ne sagen wir mal ich bin nen Backend.
Und ich mache diesen Request. Gib mir alle Maschinendaten raus und selbst wenn der nur 10 Millisekunden dauert, ich will nicht alles anhalten. Ja ich will sagen, hol mir das raus und wenn du es hast, sag mir Bescheid und ich verbaue das quasi in meinen in meinen Fluss. Ja, das nennt sich asynchron, ja asynchronität kannst du auch wieder nicht darstellen mit HTTP ja wenn irgendwas lange dauert mit Rest Entschuldigung ja und HTTP in dem Sinne ja wenn was lange dauert bist du auch geflickt. Gibt es Wege und und Umwege?
Also sowas wie n Longpol jetzt für die alle die sagen ja gibt es ja, gibt es ja longpol ja, gruselig ist nicht, ist hackey ja es ist funktioniert nicht gut ist errorproon dann gibt es noch die Möglichkeit wenn man asynchron Prozesse hat, dass man quasi sagt ich stoß den an und dann krieg ich im HTTP zurück ne Nachricht ja hast du angestoßen ist asynchron lösen wir irgendwie auf oder so ist alles alles großer Rand hab ich alles probiert hatte immer. Also es schmerzt, ja, funktioniert nicht. Bleibst du also, bleibst du also am Ende dabei und pollst ja und optimierst Polling ja, da fängst du an, wirst Experte im Polling, wie kann ich geschickt, wenn ich muss mich ganz viele Sachen Pollen auf einmal.
Also wenn ich natürlich nur eine Maschine Pollen muss mit dem Alarm, das ist ja fein ne, aber jetzt wir haben ja Flotten von Devices, manchmal will ich ja 10000 Devices auf einmal sehen, ne dann poll die mal alle da hast du aber da hast du aber Alarm auf dem auf auf dem Klienten der das alles Pollen soll und so ja. Implementier das mal geschickt, Pain ohne Ende, Pain gut, Next Pain ja, fehlerbehandlung auch sowas was mich total nervt. Ja, also das ist eigentlich fast so wie das Mapping, deswegen fasse ich es kurz die Entwickler wenn sie Code entwickeln, also in Python oder in Java Script oder in Java oder in C plus plus egal ja machen sich viele Gedanken was passiert wenn irgendwas nicht so läuft wie es
laufen soll. Ja zum Beispiel jemand sagt mir lies aus das file aber das scheiß File gibt es gar nicht auf der Platte ja. Dann kann ich ja als Funktion die die heißt CSV zum Beispiel und das CSV. Der Pfad ist nicht da. Ja, da kann ich nichts machen, ja, da muss ich mir, also da muss ich, das ist ne fehlerkondition ne und in allen allen Programmiersprachen ist das super schön standardisiert, das heißt Exceptions oder error ja, meistens heißt Exception, ja ist eine Ausnahme und Ausnahmebehandlung ist Teil einer jeden modernen Programmiersprache, das kann ich wunderbar machen, ja, das ist ein zweiter Fluchtweg, normalerweise hab ich ne Funktion, die kriegt Argumente. Und die hat n Return wert.
Ja ja hab ich gelesen oder? Hier hast du das ganze File oder wie auch immer bei dem RE CSV zum Beispiel kann ich das aber einfach nicht machen, weil mir irgendwie die Knüppel zwischen die Beine geschmissen sind technisch, weil das File gar nicht da ist brauch ich ne Ausnahme. Ja und dann schmeiß ich eine Exception, so sagt man das ich schmeiß eine Ausnahme da sagt man zum Beispiel New Error oder irgendwas im im im javascript ja und dann kann ich noch ne Beschreibung reinpacken was ist denn mein Fehler ja.
Ja, hier. Ich wollte das File lesen, aber es ist nicht da und so weiter und diese diese Fehler, die die die Bobbeln dann quasi in die nächste Funktion, weil wir haben ja im Code ganz viel, dass Funktion, Funktion, Funktion aufrufen, das ist ja alles nächste, das ist ja alles nicht nur ganz einfach, es ist alles gut ausgedacht, ja hundertprozentig kommst du als Entwickler ganz klar so, und jetzt jetzt wirst du aufgerufen über ne Rest API mit dem ganzen Kram. Ja, da kommen wunderbare Exceptions an und Rest API hat kein Verständnis, nichts von Fehlern und Ausnahmen, ne. Musste Mappen in Nummern, ja in HTTP nummern ja 500 400 irgendwas und so weiter die ganzen Texte die da drinne sind in der Exception musst du
programmatisch umbiegen, dass die in dem HTTP Protokoll entsprechend ankommen und so weiter hat ne ganz andere Idee. Stack Traces gibt es nicht und so weiter Katastrophe ja also du du schmeißt einfach an dieser Grenze, dass du an dieser Abi Grenze schmeißt du einfach die die Capability der Programmiersprachen weg ja und fängst schon wieder an drüber nachzudenken. Oh, wenn das file nicht da ist.
Was ist denn das für n Fehler? Ist das irgendwie 403 oder 407 oder was weiß ich? Da gibt es n Riesenkatalog dann der ist halt vorgegeben weil es n Standard ist. Dann musst du das Hinmappen zu deinen Dingern fängst du schon wieder an nachzudenken als nächsten Pain ne einfach so pain so ich denk so scheiße das ich hab es doch schon gemacht ich will es einfach nicht noch mal ja so plus und was ich ganz kacke finde ist plus. Du hast ja dann, wenn du ne Rest API bist. Du bist ja auch noch am Server und und das ist auch noch relativ viel Code, der einfach gar nicht die Business Logik bedient, sondern einfach nur die Kommunikation selber, also die ne das etablieren der Rest AP da kann auch Fehler passieren und diese Fehlercodes werden einfach
hart zwischengemischt da da kriegst du als Client kriegst du alles mögliche ab, ja musst du genau mal gucken, ist das überhaupt jetzt n Fehler der der API oder n Fehler des tatsächlichen logischen Backends? Ja find ich auch Scheiße, dass das alles durcheinander ist, ja. Aber gut ist so, ja. OK, das hab ich glaub ich verstanden. Klingt jetzt so als wär restapi wirklich erstmal so ne klar durchlässige aber irgendwie so ne Mauer, die sich da in den Weg stellt, die jetzt nicht besonders. Für den Entwickler belassen ist ja. Also man muss gucken ne.
Also wenn man ne tolle Rest AP hat die gut funktioniert, dann ist das als Anwender schon auch erträglich. Ja und als als Klient der dagegen ist. Ich hab die Brille eines Softwareentwicklers auf heute und der der wirklich 8 Stunden am Tag verdonnert ist Sachen fertig zu kriegen. Und dann? Dann dann kommst du, dann kommst du diesen ganzen Stacheldraht an und musst musst diese einzelnen Dinger irgendwie alle abfräsen und lösen. Ja, weil dein Chef im Notfall interessiert sich nicht dafür, was du da alles für Pains hast ich gerade gesagt, also will einfach dass es funktioniert.
Gut, dann komm ich zum letzten, da hab ich n bisschen was zusammengefasst aber ich hab es genannt Discovery also ist n gutes deutsches Wort es gibt so n Service Discovery heißt das ist das Passwort so in der Tag Sprache also automatisches. Erkennen, wer ist da würde ich sagen, ja, ist jetzt auch wieder n Thema was du nicht brauchst, wenn du weißt, dass du ne Datenbank hast und so. Aber gib mich mal mal den Teaser zur IOT und so ne, also kann ja sein, gibt ne neue Maschine oder ne neue Mülltonne, manchmal sind ja die Sachen auch sehr klein, neues Device, neues IOT Device, das wird einfach reingerollt ja ist jetzt auch da, ja und und dann willst du vielleicht auch nicht wieder fragen wer ist alles da und muss ich dann und
und im schlimmsten Falle müsstest du sogar sagen Oh da ist n neues Device jetzt muss ich noch n Stück mehr Rest API schreiben. Und zwar muss ich jetzt als Softwareentwickler noch mal aktiv werden auf dem Device selber, was jetzt da ist. Und dann muss ich noch mal und dann muss ich als Klientenbediener, also derjenige, der Rest ABI bedient, der muss es auf einmal auch noch wissen und muss lesen. Ah Version 3 der AP oder so, ja oder jetzt hab ich noch mehr, also wenn ich gut mache, dann hab ich das als Ressourcen und so weiter aber oft ist es noch mal damit involviert, dass ich die, dass ich es anfassen muss, ja. Das mein ich mit Flexibilität.
Ja, Discovery ist es. Ich sehe, dass es ist. Automatisch integriert sich das System Service Discovery, ich sehe was ist wer ist alles da, mit wem könnte ich kommunizieren, Flexibilität ist ich will eigentlich gar keinen Aufwand haben, weil das ist eigentlich das gleiche Ding noch mal und das muss von alleine non intrusive so schön wie ich das sage einfach eingebunden werden ja und dann hab ich noch n Multi Backend wenn man wenn man im Restbusiness unterwegs ist dann hab ich ja immer ne direkte Kommunikation zwischen Client und Server das heißt ich kann von einem Client aus gar nicht.
Also technisch tieftechnisch Entwicklermäßig kann ich nicht mit mehreren Servern sprechen. Ne das könnte man aber wollen. Ich wollte das immer, ich fänd es mich total toll wenn ich im wenn ich in meiner in meiner UI quasi einen Client hätte einmal authentifiziert und ich spreche auf einmal mit allen, mit allen Dingen auf einmal wär noch Luxus ja also für mich war das auch n pain ne. Ganz schöne, ganz schöne Liste die du da aufzählst. Ja, also wenn man, wenn man das so hört, als nicht Softwareentwickler.
Klar, du hast das jetzt natürlich auch alles gut zusammengefasst und und und auf einen Schlag und aber wenn man das hört ja auch du patchst das genau oder bin ich jetzt mal n bisschen n bisschen böse? Ja da könnte man so denken, Oh mein Gott, wieso benutzt das überhaupt noch jemand? Ja, aber vielleicht kann man am Ende das ja noch mal alles einordnen, ich will dich jetzt nicht so lange aufhalten.
Ja, ja, nee, ich wollte ja auch jetzt wie gesagt ne, ich will das nicht dissen, aber ich wollte, ich wollte euch einfach mal so n in die Lage versetzen mein Bauchgefühl mitzufühlen, ja weil. Also und und und. Und der Pain muss schon groß sein, bevor du das machst, was ich dann gemacht hab. Ich hab überlegt wir brauchen halt ne andere Art der Internet oder Web oder überhaupt Kommunikation. Ja und das ist ja schon was ziemlich fundamentales. Ja so ne Aussage zu treffen ja und ich bin jetzt auch weg von naiv, dafür bin ich schon zu alt und ich weiß, dass man im in der Softwarebranche entweder die Best practices nimmt und sich gefälligst an den Standard hält, das gehört sich so ja oder wenn man dann was macht, dann muss
es. Dann musst du irgendwie die Ärmel hochkrempeln. Das sehr, sehr gut machen und am besten auch auf Standards aufsetzen, die es schon gibt. Ja, und dann wird es ne Innovation, quasi auch ne tiefgründige und ich hab mir überlegt gut ich hatte irgendwie Bock und der Pain war so high, dass ich gesagt hab ich mache das ja ich entwickel tatsächlich, ich versuche es mal und entwickel mal ne Alternative die alle diese Pains releved damit ich mal endlich ne Kommunikation hab die genau.
Die genauso funktioniert, wie ich es gerne hätte. Ja, das war natürlich, das kann man sich ja wünschen und ob man das dann schafft, weiß ich nicht, aber ich würd sagen, ich bin nah dran ne, es gibt vielleicht immer noch hier n paar mühs, aber wo es noch cooler sein könnte ja ich finde es ist gelungen ja Mhm. Ein kurzer Hinweis in eigener Sache. Kennst du das auch, dass von neuer Software zur Digitalisierung der Produktion zurückgeschreckt wird? Ihr seid gefangen zwischen starrer, veralteter Standardsoftware und endlosen Individualentwicklungsprojekten. Unsere Mission bei Heisenway ist es, das zu beenden. Mit unserem App Baukasten geben wir dir die Möglichkeit, maßgeschneiderte Software für
den Shopfloor schnell und ohne Code zu erstellen. Denk an Maschinendatenerfassung moderne Visualisierung für die Produktionsleiter oder eine mobile App zur Buchung von Zeiten direkt am Arbeitsplatz und das beste du kannst deine Lösungen ganz einfach ohne IT Aufwand selbst betreiben kurz gesagt, günstiger als eine externe Entwicklung unendlich passender als Software von der Stange.
Weitere Infos und eine kostenlose 30 Tage Testphase findest du auf heisenware.com. Slash einfach minus komplex als Träumhörer bieten wir dir im Anschluss 20% Rabatt auf alle Pakete im ersten Jahr und jetzt viel Spaß mit der weiteren Folge OK, dann gut, gehen wir jetzt noch mal deine deine Pains gestartet von Inbound los durch und dann sagst du mal was VPC an der Stelle anders macht oder wie es das Macht oder wie hast du es vor? Ja, so könnte man es machen.
Ja genau richtig, ich sag noch eine Sache, bevor ich das tue, ich find es n guten Plan, wir gehen jetzt noch mal einfach von vorne los die Pains und dann dann mach ich die Solutions quasi dran es gibt das wissen alle, es hat es ja RPC dazu muss ich kurz 2 Worte verlieren, RPC ist ja im Namen drin und ich hab gesagt RPC gibt es ja schon und so ist stehender Begriff Remote PCJ Calls ja das ist schon immer ne alternative Art der Kommunikation gewesen die anders ist als zum Beispiel Rest.
Weil was heißt RPC heißt. N Remote Procedure Procedure steht im Prinzip für Funktionen, ne Funktion nämlich und welche Funktion ja Funktion eigentlich deines, deines Backends, deiner deiner Logik. Ja, also diese dieses Maschinen zum Beispiel ist Start Motor oder irgendsowas ja, wenn wir das jetzt mal hätten, ja wir haben jetzt ne ne Klasse, die heißt Motor und da ist der funktionstart Motor, dann würde im RPC Sinne tatsächlich auch nichts mehr gebunden und nichts mehr abstrahiert und so, sondern man würde einfach start Motor aufrufen wollen. Und zwar von der Ferne, deswegen Remote. Also dass ich start Motor aufrufen kann, wenn ich in der Anwendung selber bin.
Ja und das ist ja ist ja einfach, das ist ja quasi in der in der Programmiersprache die Kunst ist des RPCS ist die Funktion Start Motor, die jetzt auch in irgendeiner Programmiersprache geschrieben sein kann, sag mal C plus plus ja weil es n altes Dingel ist. Keine Ahnung, ja diese Funktion will ich jetzt aufrufen können. Von Remote, das heißt übers Internet verbunden oder wenigstens über ein Netzwerk verbunden, muss nicht unbedingt das Internet sein.
Mit einem Klienten, also einem anderen Programm, was irgendwie eine Idee hat davon, von diesem Motor und diese Funktion irgendwie sehen kann oder sie ihm vermittelt bekommen wurde irgendwie, dass es die gibt und das ruft jetzt Start Motor auf und dieser Aufruf wird quasi seamingly rüber gesendet zu dem echt zu der echten Anwendung die das die das wirkliche Start Motor trägt. Und ruft es auf.
Und zwar kann dann dieser, der Aufrufende kann, ganz andere Technologie sein, könnte zum Beispiel Java Script sein, während der Aufgerufene die Start Motor in C plus plus geschrieben ist. Das ist die fundamentale Idee von RPC und das auch die fundamentale Idee von VRPC ja, ich bin, muss es einfach sagen, ich bin einfach ein totaler Verfechter von dieser Grundidee, ja, weil diese Grundidee säuft schon ein paar Paints, die, das könnte jetzt, da gehen wir gleich noch mal durch, aber das könnt ihr jetzt schon sehen.
Weil, was fällt nämlich weg? Im besten falle ne ganze Menge von diesen, von diesen Ummappings, von dieser Abstraktionsschicht, ja, weil jetzt muss ich nämlich nicht mehr den Namen mappen, das ist das erste, was wegfällt, ja, ich hab die Semantik des Backends im Klienten, im Aufrufer, alles was sich der Entwickler schön ausgedacht hat, wie das heißen soll, bleibt auch so, selbst wenn ich es von perne bettine.
Es hat aber viele Nachteile und so, das will ich gar nicht sagen, was da geht. Und RPC ist auch erstmal Client Server und sofort. Es gibt auch da können wir n bisschen gleichzeitig mit drauf gucken, ne sehr tolle RPC Bibliothek die Google mal initiiert hat, deswegen heißt die auch GRPC nicht zu verwechseln mit VRPC das ist das der Kram den ich da auch rausgestellt hab, da sind viele guten Gedanken drin, aber immer noch zu viele Pains würde ich sagen ja. Die wir mitgenommen haben.
Genau da musst du mal gucken, wenn dich das interessiert, wie das GAPC oder sowas dann gelöst hat. Ich will das nicht zu komplex machen, aber wir haben ja schon Rest jetzt irgendwie auf der Audiospur im Kopf wer bin ich da gerne was zu, ansonsten würd ich es erstmal kurz weglassen einfach nur erklären wie ich das jetzt alles gelöst hab ne?
Ja genau, lass uns das vielleicht. Vielleicht kannst du es am Ende ja sogar noch mal n bisschen machen, wenn wir ne Einordnung machen, was könnte man wofür vielleicht noch besser benutzen oder so ne aber erstmal. Das ist ne gute Idee glaub ich. Dann lass uns erstmal kurz verstehen was ich so gemacht hab und dann können wir vielleicht wenn wir das verstanden haben, noch einmal kurz gucken, wo sind jetzt noch die Unterschiede zwischen zwischen GAPC und VRPC oder so ja OK gut dann Let's Go Inbound, hab ich zuerst gesagt Mein mein größter Schmerz erinnert euch IT Abteilungen mögen nicht angerufen zu werden in ihrem privaten Shopfloor und in Netzwerken wie kann man das lösen?
Gerrit hat es schon zwischendurch MQTT gesagt, ist halt auch genau das Ding. Ja, also wenn du nicht angerufen werden willst, musst du rauswählen, das heißt Netzwerktechnisch kannst du nicht mehr Server sein, das ist die erste Erkenntnis und das ist mal auch nicht mehr in NVRPC Netzwerktechnisch ist ja das Device die Maschine das IT Device derjenigen den denjenigen den ich kontrollieren will, das Backend quasi im allgemeinen wird nen Client, das ist ne krasse Änderung ja jeder Rest. Server, also jede API in einem Rest Business, ist ein Server technisch tatsächlich TCP.
Technisch gibt den Unterschied zwischen Server und Client ja, jetzt ist es so, in Power PC wird der Angerufene auch Client netzwerktechnisch. So und jetzt kannst du aber nicht mit einem Client also und was was du aber auch willst ist, dass der Anrufende ja der dir den Befehl abgibt startmotor. Der soll jetzt aber nicht auf einmal Server werden.
Ich hab das nicht nur gedreht, weil das würde ja überhaupt gar keinen Sinn machen. Also das ist ja dann noch katastrophaler, weil den Server zu schreiben ist halt einfach und aufzubringen ist halt der hätte dann inbound Scheiß und so, der ist auch Client, der soll schon klein bleiben. Jetzt hab ich war das Problem ich hab der der Angerufene und der Anrufende sind beides Clients, das funktioniert aber nicht, es ist wie 22 Stecker oder 2 Buchsen da.
So funktioniert einfach die Netzwerktechnik nicht. Ja, das weiß jeder, der entwickelt hat. Also wir brauchen schon noch n Server und jetzt die Frage, aber wo ist dieser Server? Ja und das ist die krasseste, die krasseste Änderung und die tatsächlich krasseste, wenn man das sich anguckt auch zu GRPC sag ich jetzt schon mal architektonische Neuerung in VRPC es basiert auf einem dritten Komponente an, nämlich einem Message Broker.
Und der Message Broker ist quasi so ne Art man in the Middle ne ein eine Art also es wird eine Art Sternenarchitektur, es ist ein Server, der außer der quasi als dritte Komponente irgendwie außerhalb steht und den und den Traffic, den die Unterhaltung zwischen den 2 Klienten vermittelt als zentrale Instanz und dieses Vermitteln, das kann man jetzt, das könnte man jetzt alles neu erfinden, dann wäre es uncool.
Ich hab ja gesagt, wenn man. Wenn man so Bolt ist und will was Neues aufbauen, dann muss man wenigstens sehen, dass man so viel wie es geht an Standard Grundkomponenten mit Reinnimmt. Das hab ich gemacht und ich hab mich entschieden MQTT zu nehmen. MQTT ist n erstens n Protokoll für was erlaubt Publish Subscribe Patterns zu lösen, also quasi Events von sich aus gut zu managen und was voraussetzt einen zentralen Message Broker zu haben ne und für Inbound ist das.
Key ja, weil jetzt hab ich auf einmal nur noch ausgehende Verbindung. Ja diesen Message Broker, den kann ich irgendwo in die Cloud setzen und auf einmal dürfen alle Clients und sowohl der aufgerufene und der Aufruf finde die dürfen alle Outbound funktionieren ne und dann brauch ich der IT Abteilung noch sagen ich brauch diesen Port frei im Notfall kannst du das sogar über 443 machen der Standardport der ist immer frei meistens und ich hab überhaupt gar keinen Schmerz mehr volles Pain Relief an dieser Stelle einfach durch ne komplette andere. Netzwerkarchitektur durch das Einführen dieser zentralen Komponente und durch das Umkehren der Server Client Architektur, ja.
Das das hat nachher noch mehr Vorteile, aber für das Inbound List ist das ja und ich meine jetzt hast du aber ne extra Komponente eingeführt, also es ist ja schon auch nen Kompromiss sag ich mal oder es ist ne gewisse Abhängigkeit die du dann hast von dieser extra Komponente Broker vielleicht auch n Nachteil oder die Vorteile bewegen einfach so stark oder ist das gar kein Nachteil? Doch es hat immer alles vor und Nachteile. Ja, der größte Nachteil ist Latenz, weil wir haben Server Client sind wir quasi direkt verbunden mit dem, mit dem Wir sprechen wollen, das heißt, wenn ich das Paket rüber schicke ist das relativ zügig da und wenn der die Antwort schickt ist die auch relativ zügig da.
Im GAPC gibt es sogar die machen das mit HTTP 2, die können sogar gleichzeitig schicken und senden, das ist n sogenanntes Duplex Protokoll ne also ist quasi wieder der der Zug der fährt hin und der andere fährt schon zurück und die treffen sich irgendwo in der Mitte das wo das Kabel ist. Mal bildlich gesprochen, ja, während mit mit meinem Broker jetzt in der Mitte es ist. Es ist es weder so, dass da 2 Züge gleichzeitig fahren, noch das stimmt nicht ganz, wenn ich zum Beispiel aufrufe, dann schick ich ja das erst mal.
Zum Message Broker ist der erste Hop das Paket, der muss gucken, wo soll denn das überhaupt hin? Ja der muss das Routen, ja das macht nur sogenannte Topics und da steht quasi drin mit wem will ich überhaupt sprechen später wenn ihr das Geroutet habt, dann schickt ihr das noch mal weiter ja zweiter Hop ja das heißt ich erzeuge. Ne dauerhafte Verlangsamung des Transports der Nachrichten ja um Millisekunden.
Ich sag aber wir haben es wird immer so schnell, also die Hardware und das Internet und die Netzwerkverbindungen ja konstant besser und nicht schlechter, deswegen sag ich das ist n akzeptables akzeptables Down ja das ist n Nachteil ganz klar so und und das zweite Nachteil ist an der Stelle du hast gefragt nach den Nachteilen ist du hast ein ja wie ich für ne Komponente ein und die ist auch noch Single Point of Fail ja. Weil alle Kommunikation jetzt mit VRPC, also wenn du nur einen nimmst, ja und wenn du in in diesem Raum kommunizieren willst, dann hast du halt quasi einen Message Broker. Und ja, der ist natürlich, der ist alleine, ja den kannst du nicht skalieren, stimmt aber auch nicht, also logisch wäre der alleine auf dem Bild auf dem
Blatt Papier aufmals hast du n Stern in der Mitte ist der Message Broker und dann hast du verteilt die ganzen Kringel die alle miteinander sprechen technisch kannst du das auch wieder machen wenn im Q zum Beispiel wunderbar ja kannst du irgendwie logisch den Broker aussehen lassen als einen. Und faktisch sind das ganz viele Notes, wenn man sagt, also verschiedene Hardware Server die das übernehmen, ne, also das hatten, da hatten wir auch ne Folge, hört euch die gerne an, super spannend von mit MQTT mit Hive MQ Entschuldigung Hive MQ ist nämlich die Firma die dahinter steht, die Wissen wie man genau dieses Problem, das haben die nämlich auch weil das sind die MQTT Experten wie man das gut beseitigt, ja das ist
gelöst. Also gibt es gibt es das Problem nicht nur auf dem Papier. Jetzt muss ich doch noch kurz eine Frage stellen dazu, auch wenn das jetzt alles n bisschen länger dauert, kann ich jetzt. Wenn ich VRPC nutze beliebige MQTT Broker nutzen zum Beispiel. Gute Frage. Ja, weil ich nichts Spezial gemacht hab.
Genau du kannst. Du kannst den IFMQ Server nehmen und das ist zum Beispiel cool. Es gibt von IFMQ ich ich mach mal kurz n bisschen Werbung, aber Kollegen sind total nett, die haben sogar n freien Broker ja das heißt du musst eigentlich diese dritte Komponente noch nicht mal bedenken, du kannst einfach VRPC benutzen und tippst halt quasi als Server, das musst du eintippen im Protokoll ist ne Konfiguration welchen Broker willst du nehmen? Erstens kann das kann das Moskito sein, Burn, MQ, hif, MQ, alles alle die das ist ja ein Standard, alle die diesen Standard ordentlich implementieren, es geht sogar mit dem alten 3.1.1 nutzt VRPC funktioniert einfach ja und das heißt du kannst auch einfach den
freien Broker von von Hif MQ nehmen, der ist immer da, der ist highly available eigentlich und es funktioniert schon mal. Ja würde ich jetzt nicht für Produktion irgendwie raten weil es gut wir wissen ja wenn es nichts kostet dann. Na ja, aber easy. Ja, kannst du ja auch bei Hifum Q. Wenn du keinen Bock hast auf n Broker selber schmeißt die Münzen ein, bei Hifum Q kriegst du einen oder wenn du keinen Bock hast auf Broker ziehst du den Dockercontainer mit nem Broker drinne bis nach 5 Minuten hast du n Broker ja und du musst nichts machen, den musst du nicht konfigurieren, der kommt einfach hoch fertig ja und los geht es ja. Also es ist jetzt zwar ne neue Komponente aber der Aufwand die irgendwie ins Leben zu rufen ist
echt minimal. Ja gibt keinen Kane dabei. OK. Gut, das inline Thema ist dann jetzt erstmal gelöst. Würde ich sagen, vollständig gelöster, genau nächster Pain den ich gesagt hatte. Punkt 2 war das Mapping und hier die Semantik und so weiter ne Crat die ganzen blöden Wörter und Vokabeln, das machen wir jetzt schnell, weil das hab ich gerade schon gesagt als ich RPC erklärt hab, das ist halt einfach gelöst damit, dass man, dass man bei RPC kein Mapping hat und bei VRPC erst recht nicht, ja. Und hole dich jetzt doch noch mal kurz aus. Das heißt, ich kann einfach als Entwickler mein Backend schreiben, in der Sprache, auf die ich Bock hab. Ja, also am besten funktioniert es da jetzt auch gleich auf Tonspur im No JS.
So, jetzt kann ich einfach no JS hingehen, schreibt ne Klasse ja class Motor zum Beispiel ja dem gebe ich alle Funktionen die ich so hab Bock hab ja die und die Funktion die benenn ich schön ja und die machen ganz verschiedene Sachen ja manche starten irgendwas, manche stoppen irgendwas, manche geben irgendwas zurück, lesen irgendwelche Parameter aus was weiß ich ja und es muss nicht nur Motor sein, es kann irgendwas sein also die. Jetzt was ich sagen will ist Programmier einfach auf was du Bock hast.
Einfach in no GS. Ja und das ist total horizontal. Ja und jetzt das VR PC versprechen ist non intrusive also nicht. Also du musst dich vergiss mal VR PC mach mal erstmal dein Business fertig ja und wenn das funktioniert dann kannst du jetzt sagen okay das wäre aber cool wenn ich das von der Ferne ausrufen könnte und das kannst du indem du quasi diese klasse oder den Code.
Mal den du da geschrieben hast, registrierst da. Da gibt es eine Komponente in Vrpc, die heißt Adapter und man kann sich wirklich auch vorstellen wie ein Adapter. Du hast den ganz normalen Code, der muss nicht vorbereitet werden auf auf Vrpc, der muss noch nicht mal ein Requirement sein, in einem anderen weiteren Pfeil kannst du sagen, so jetzt lad mir den, gib mir mal den Vrpc Adapter vrpc ist eine Bibliothek für no ts und adaptiere diese klasse.
Und was jetzt passiert ist, ist pure Magie. Das ist das, wo ich geschützt hab, als ich VAPC gemacht hab. Jetzt nutze ich quasi, und das ist für jede Programmiersprache anders, die sogenannte Reflection Reflection ist, die man nennt, Reflection ist NN, Fachwort aus der Softwareentwicklung, Reflection heißt mit der Programmiersprache selber finde ich raus was programmiert wurde, also so n bisschen wie tatsächlich Reflektion da ich reflektiere selber über mich ja also die ne, so kann man sich, deswegen heißt es so ja. Also man reflektiert quasi mit der Programmiersprache. Was hab ich eigentlich alles, das kann man machen und das Macht der Adapter, der sagt quasi Hey in dem in der Anwendung die ich jetzt hier
gerade habe, was hat denn der, was ist denn da alles zur Verfügung, welche Klassen gibt es und welche Methoden haben die Klassen, welche sind statisch, welche sind normal und so weiter das kannst du alles machen ne das Macht der Adapter um rauszufinden was da ist und wie es wie es heißt und was der Adapter auch macht, sogar der liest sogar die Kommentare von den Codes. Und alles das wird zusammengepackt und das wird das Interface, das wird quasi rausgeschickt an den Message Broker und der und dann und dann kann jeder Client kann sehen, ah guck mal auf diesem auf diesem Agenten, also in diesem Programm was da läuft, gibt es die klasse Motor und die hat die Funktion salalalalü und nicht nur hat das
die Funktion, sondern da war sogar ne Dokumentation dran. Die Argumente der Funktion heißen so und so sind optional oder und so weiter haben die Datentypen so und so. Das heißt, wir haben eine vollkommene, ein vollkommenes, komplettes Abbild mit voller Beschreibung vom Backend, so wie es ist, so wie es der Entwickler einmal gemacht hat.
Je besser der das gemacht hat, je schöner der das benannt hat, je mehr Kommentare der dran gemacht hat, desto toller wird die API, quasi die VR PC API für denjenigen, der den irgendwann mal von Remote aufruft, da der muss den überhaupt noch nicht gekannt haben. Ja und jetzt kommt jetzt nehme ich 1 voraus Discovery. Es kommt nicht immer an der Stelle mit, weil und weil einfach, wenn ich das Anmache mit dem Adapter und dann gibt es jetzt noch den Agent.
Der Adapter ist quasi nur im Code, der macht diese Reflexion und im Prinzip macht er sowas wie ne automatische Erstellung der Rest API wo man es jetzt noch mal da vergleichen würde, er erstellt quasi die Schnittstelle und der Agent der sagt so und jetzt stell ich dich online der macht die MQTT Verbindung ja und ich stell dich nicht nur online sondern ich sage auch, dass du da bist und alle dürfen das sehen, ne?
Der Adapter ist so ne Art Crawler auf dem Stück Code was da vorhanden ist und versteht, das kann man sagen, von vorne bis hinten und ja tatsächlich erstellt dann automatisch ne mindestens mal Beschreibung. Nee nicht nur ne Beschreibung dieser dieses ja dieses Codes oder dieses was dort ist, sondern gleichzeitig auch noch die Schnittstelle, also er sagt nicht nur das ist da, sondern er sagt dir gleichzeitig wie ich es aufrufen kann, weil du es ja aufrufen kannst mit den Originalnamen quasi ne. Genau, ja.
OK, und jetzt kommt der nächste Clou. Er sagt zwar, wie man es aufrufen kann, aber das krasse ist, jetzt muss ich ja jetzt gehen wir mal rüber, jetzt haben wir die Seite verstanden die adaptiert wird, also die die ich aufrufen möchte gehen wir mal kurz auf die andere Seite wie wie würde es denn aussehen für den der aufruft das ist auch ne Komponente, ich hab ja gesagt Adapter das ist das ist der Crawler richtig dann haben wir den Agent, der stellt quasi das Ding mit MQTT zur Verfügung, sodass es aufgerufen werden kann, der der macht ja quasi die stehende Verbindung, den Telefonanruf stellt er zum Verfügung zum Broker und jetzt hab ich ja. Beliebig viele Klienten, die den Aufrufen können, die können kommen und gehen.
Aber wie sieht der Klient aus? Das ist der vrpc Klient, das ist die dritte Komponente, das sind 3 wichtige Komponenten, die es da gibt, den Klienten, den Agenten und den Adapter, Adapter und Agent arbeiten zusammen auf der bilden quasi den Aufrufenden ab und der vrpc Klient, das ist der Aufrufende und der Klient ist auch da für jede Programmtechnologie ja.
Du musst jetzt, musst den Agenten, wenn der Note JS geschrieben ist, muss es nicht ein Note JS client sein, der den aufruft. Kann irgendein Client sein, irgendeine Sprache die du Bock hast? Ja wo du dich wohlfühlst. Manchmal sind ja die Frontend Entwickler, das sind typischerweise die Frontend Entwickler die den Aufrufen andere anderes Gesortet als die Backend Entwickler, die haben verschiedene Programmiersprachen das das schicke ich kann das jetzt mixen ne aber wie sieht der Client aus? Das krasse ist wenn ich jemanden aufrufe dann bin ich dann mach ich das am liebsten ja auch so wie ich es kenne als Entwickler und was kann ich denn als Entwickler ja mein Code ja. Jetzt gibt es Proxy Objekte.
Ich hab quasi mit VRPC einen digitalen Zwilling des Codes geschrieben. Ja, wenn die klasse Motor hieß, dann kannst du jetzt mit dem VRPC Klienten diese klasse Motor instanzieren ne Instanz machen ne als wäre sie in deinem Code drin, genauso wie du es machst. Ja mit dem Code ohne Schnörkel ja und du rufst einfach diese Funktion auf und es funktioniert einfach und die Funktion ist so als hättest du die.
Direkt neben dir aufgerufen, dass das ein Netzwerktraffic Macht, zum Broker geht, aussortiert wird, das aufruft, da den Returnwert abholt, der wieder zurückkommt und dir den Returnwert Reinspielt, kriegst du alles nicht mit, es passiert einfach, das ist das Ultrakrasse daran, du kannst einfach programmieren, als ob du in einer Anwendung bist.
Monolith, aber es ist krass verteilter. Das hab ich verstanden. Das klingt ziemlich cool und ich kenn das ja auch irgendwie so bei uns, ich, ich, ich hab ja die ganze Zeit n Bild im Kopf wie das so aussieht. Was sind Produkte auch und so was das bedeutet wenn da jetzt n Agent an ist und dann plötzlich sind da die Funktionen exposed und dann kann ich einfach aufrufen in irgendwelchen anderen Netzwerken so das kann man sich ja bei uns alles ansehen und ich mach das ja auch aber jetzt Devils advocard ja also jetzt muss ich ja schon alles Mögliche an Funktionen kennen in diesen ganzen verteilten Dingen die ich da so angebunden habe. Also alle möglichen Funktionen ne. Also ich muss schon wissen was
die dann tun. Ich hab nicht so ne Art Abstraktion drinne die vielleicht runtergebrochen auf 4 werben, auch wenn die vielleicht zu wenig sind mir eigentlich sagen was man da so tun kann, ne? Ja, was wäre denn der Mehrwert, wenn du das hättest? Gibt es nicht. Ja, weil du willst. Ja weil du willst ja komplexe Sachen mit deinem Backend machen und du willst es nicht abstrahieren, ne du willst und es gibt auch nichts zu abstrahieren ne weil weil das du das ist ne 1 zu 1 Übersetzung das dessen was da ist ja.
Und das nutzt du oder nutzt du nicht? Du musst ja die nutzen. Ja, du kannst ja auch, also du hast alle Funktionen da, aber wie du sie nutzt und so ist ja völlig frei. Ja genau, also da, da gibt es überhaupt gar keinen Pain, das ist einfach nur Release. Ja das ist einfach so schön und wenn wenn ich das sehe wenn wir Frontend entwickeln und die Backend Entwickler, also wir sind alle hier Full Stack n bisschen aber du musst halt also bis wir ne neue Funktion reinschreiben du sagst du kennst das ja weil wir auch noch die Funktion dann grafisch darstellen ja du kannst ja sogar bei uns, das ist ja das heisenware coole, aber das löst sich halt auch nur durch VRPC.
Wir sehen ja sogar die Funktionen grafisch ja, aber sogar programmiertechnisch wenn du was Neues machen willst, ja dann dann programmierst du einfach ganz plain in deinem Backend hin, was du Bock hast. Adaptierst das mit dann das ist eine Zeile Code wo du sagst Register VAPC Adapter Punkt Register my Code ja und schon kannst du es aufrufen im Frontend benutzen ne es ist halt vom Developer Speed und Releave der ist halt gigantisch ja wenn du überlegen müsstest wenn du das jetzt wenn wenn du jetzt ne Rest API hast, dann musst du erstmal. Ja, dann musst du erstmal deinen Code mappen in die Rest API, dann musst du neue Dokumentation der Rest API schreiben, dann musst du die Fehlercodes mappen
und so weiter den ganzen Scheiß den ich dir vorher gesagt hab und dann geht es erst los ja und dann musst du im Kleinen verstehen ah die heißt Rest API ist neu muss ich mir rausholen, du musst dir alles zurückmappen und so. Kannst du nicht. Also das ist einfach nicht ja dazwischen. Ja, es ist Fiat gegen delorean weiß ich nicht, aber gut, das muss ich jetzt sagen, es war jetzt wieder gepitcht, Entschuldigung.
Ja, absolut richtig. Ja, ich bin ja nur hier um das auch n bisschen versuchen rauszukitzen. Also also der größte Pain Releave ist halt echt beim Developer und einfach der Speed. Ja und die die Flexibilität, die Dynamik die du reinkriegst. So und jetzt wo wir da sind muss ich komm ich jetzt zum nächsten Thema der nächste Pain war Event ja der passt hervorragend jetzt da rein müssen wir auch noch mal kurz angucken weil. Jetzt ist es auch so, das musst du auch verstehen. Gehört in der Programmiersprache selber. Also wenn du codest, dann kannst du ja alle Patterns machen. Ja, also wir sind jetzt weg von Netzwerk Patterns. Ja beim Netzwerk gibt es halt immer dieses Ding Request Response Publish und Subscribe
und so das kennt man ja diese Patterns ja oder oder Worker und Slave und so ja im Code selber machst du das den ganzen Tag für den Entwickler ist das völlig klar, entweder rufst du mal was direkt auf ja sowas wie was weiß ich Set entry oder Irgendsowas so dann Datenstrukturen oder. Da wo du sagst Funktionen, alter, Ruf mich zurück, wenn wenn du irgendwas gelesen hast und sofort ja, also da gibt es diese ganzen Patterns.
Ja und The Note JS ist es sogar noch noch viel cooler als in anderen Sprachen, da gibt es den sogenannten Event Emitter als Objekt, als Teil der Programmiersprache, wo du sagen kannst, ich registriere mich zum Beispiel gegen so n Event Emitter ist wieso ne Art Mini Broker, das ist wie der Message Broker nur innerhalb des Codes ja der Event Emitter, da sagst du halt on value on dann. On error on irgendwas.
Ja, kannst du dich registrieren und dann ruft er Funktion von dir auf und dann kannst du auch sagen Imit, Events und so weiter und sofort ja alles da, alles prima. Ja kannst du nutzen und das coole ist VRPC ist halt nicht nur halbseiden geschrieben, sondern ich hab halt versucht alle Features einer jeden Programmiertechnologie zu supporten. Ja das heißt wenn du jetzt in dem Client sagst der eigentlich übers Netzwerk und von Ferne ist on. Dann oder on on alarm, sag ich mal von der Maschine und die Maschine hat hat auch das Ding on alarm wo einfach eine Funktion reinkommt.
Programmiermäßig ein Callback der dann aufgerufen wird wenn ein Alarm ist von Alarm, ja dann machst du das einfach, ja dann machst du im Client on alarm und machst dein clientseitigen Listen dahin, was eine Funktion ist in der Technologie wo du Bock hast und magisch. Wenn tatsächlich ein Event kommt. Auf dem Angerufenen dann wird dieses Event Event getrieben weitergeleitet über ein MQTT Publish Subscribe. Da ist kein Polling, da ist gar nichts und da muss aber eine ganze Menge passieren im Hintergrund. Ich muss richtig mich subscriben also wenn du das machst wenn du das Registrierst wenn du dich an ein Event registrierst von einem Klienten aus, dann muss ich quasi technisch subscriptions aufbauen am Topic und so weiter
und das macht das ist das wo wo Vrbc viele Versionen hat. Das effizient zu machen und nur genau das minimale Rüberzuschicken und dabei nicht nachdenken zu müssen, dass das sogar Events sind. Ja, das heißt VRPC dieses Eventgetriebene ist ist ne grundsatzlösung es ist nicht nur n pain Relief das ich glaub das ist das erste Mal so gelöst wie man es eigentlich haben. Will du willst nicht drüber?
Nachdenken soll einfach funktionieren, die Scheiße. Ja, und tatsächlich ist das ich hab jetzt auch gerade die letzten Tage noch mal was verbessert an diesem Eventing, es ist sogar so krass. Dass jetzt was für die ganz technischen, dass sogar die callback Objekte, das ist wichtig. Ich kann n gleiches Objekt Referenzidentität heißt das vom Pointer, die werden auf der anderen Seite auch mitgetragen, sodass ich sogar so Event dublications und so weiter ich kann quasi auf dem Aufrufenden sehen, ob dieses Event von diesem Typ schon mal registriert wurde, damit ich es eventuell Skippe für ne noch weitere Registrierung, weil sonst krieg ich sowas wie Event dublications hin. Kriegt 2 Nachrichten, das ist
immer das schwierige bei eventgetriebene Systeme, da denkt man nie da, das ist total geil und total effizient, weil ich die Nachricht krieg, wenn ich es ist. Aber du musst aufpassen, dass du nicht zu viele Nachrichten schickst. Ja, das geht schnell, geht schnell in die Binsen, ja, und wir wollen auf keinen Fall übers Netzwerk zu viele Nachrichten schicken, hat das auch gelöst.
Ja und Schwierigkeit hier kurz Randnotiz was man nicht wissen kann auf beim Aufrufenden und auch grundsätzlich nicht wissen kann im Code es ist ne Schwierigkeit es gibt 2 Arten von Callbacks. Es gibt die Callbacks, wo ich mich registriere, wird einmal aufgerufen und dann hat er quasi mich von von sofort vergessen. Ja so n so ne, ich nenne die Dun callbacks wird heute eigentlich über Promises abgelöst, aber gibt es halt noch. Ja sag mir einfach, sag mir einfach, wenn du zum Beispiel ich sag connect und dann dann sag sag mir wenn connect fertig ist connect dann ja und dann hab ich nur einmal aufgerufen und dann gibt es die sogenannten Event callbacks wo ich weiß ich registrier mich einmal und Krieg
ganz viele Antworten auf dem gleichen Wissener also sowas wie. Gib mir immer wenn du nen neuen Value hast auf dem Server OPCUA gib mir halt was ja on value change da, also registrier ich mich einmal und Krieg aber auf diesen gleichen Händler immer den neuen Wert. Ja auch das hat VRPC mit drin. Ja da gibt es Mittel und Wege wie ich wie ich dem wie ich im Client rauskriege was für ne Art von Event bin ich ja werde ich nur einmal zurückrufen oder werde ich potenziell ganz oft zurückrufen alles mitbedacht, ja nur damit wenn man auf der Tonspur sagt, dass das jetzt irgendwie ist. Nicht Jette NASA RPC Framework mal schnell gemacht, sondern steckt n bisschen.
Da steckt n bisschen was drin, ne so, das heißt ich kann Events synchronisieren jetzt, jetzt müssen wir weitermachen, sonst geht die Zeit kaputt, asynchronität ist quasi auch mit nativ eingebaut und no JS ganz besonders schick no JS ist voll mit Promises, da gibt es dieses Async away und nur so viel du kannst quasi auf dem Aufrufenden den Call.
Der am Backend passiert und was muss man dafür machen? Man muss diese Promises promises sind versprechen, das ist n gehört das einfach nur n Architektur Pattern wo man sagt so funktioniert ne Asynchronität gibt es ja als Problem und die Programmiersprachen hier haben lange drüber nachgedacht und sehr gut gelöst. Ja weil dieses Problem das Rest hat mit Asynchronität das dann nicht so gut funktioniert, das muss sich an den Programmiersprachen mal spätestens gelöst haben, ja haben die auch und es gibt so ne genannte Promis und dann funktioniert alles wunderbar.
Und was VAPC kann, ist Promises, also dieses Versprechen übers Netzwerk zu serilisieren. Und du kannst dann quasi auf ein Versprechen, dass im Backend gegeben wurde, warten, bis es im Backend fertig ist und die Promises löst sich quasi im Frontend auf, auch so, als würdest du gerade, dass du irgendwie daneben sitzen und im Code darauf warten.
Ne ist Wunder wunderbar auch relativ challenging zu implementieren, aber passiert und das ist auch unabhängig von der Technologie. Weil du sagst, VAPC ist für bestimmte Technologien verfügbar und in denen funktioniert es dann. Genau, genau. Es ist in C plus Plus ist ist es. Anders und in Python auch. Ich hab versucht es halt je nach Technologie so umzusetzen, dass sich derjenige, der in der Technologie entweder als Aufrufen da programmiert oder als aufrufen, denn ne, also Client oder dings, jeweils wohlfühlt und sich die Best Practices von der.
Technologie, wie man das Macht, aufnehme und es miteinander kohärent funktioniert. Da, da gibt es immer Luft nach oben. Ja, das ist natürlich auch krass, weil ich bin bin ja auch nicht ganz tiefer Experte in allen Sprachen, aber in denen, wo ich es bin, also jetzt no GS und n bisschen und C plus plus vor allem geht das schon so.
Ja ja sag mal, fällt mir dazu ein, du sagst ja open. Source MIT Lizenz und so weiter jeder darf es benutzen, darf da auch jeder mit dran mitarbeiten. Ja ja ne herzliche Einladung. Ja gut, dass du es. Noch mal sagst, ja, ich bin. Ich bin ja nebenbei noch Geschäftsführer von von der Eisenware, also auch relativ bisschen mit anderen Sachen.
Ich freue mich, wenn wenn das vielleicht hier irgendjemand hört und sich kompetent fühlt, also ich bin nicht so jemand, der so, also das soll nicht so ein Projekt sein, wo wie jeder irgendwie kauderwelschig da irgendwie mitarbeiten soll, das habe ich auch in meine entsprechenden Beschreibung für das Open Source Projekt reingeschrieben, aber wer Lust hat, wer zum Beispiel sehr gut Python kann oder so, darf sich gerne mal bei mir melden und freue mich auf eine Community die sich da bildet. Ja Open Source es es kennt fast keiner, also so ein bisschen. Eigenwerbung heute ich glaube, es ist ein cooles Produkt, das erste richtig coole Produkt, was ich geschafft habe in meinem Leben, würde ich sagen, ja
genau, Gerrit kann, kann, kann Open Source mitgemacht, das ist ja die Idee von Open Source, also eine Community aufbauen und das mit, das wird alles zusammen daran arbeiten ne also bei dem No GS habe ich schon mal Community also Feedback bekommen und auch PRS und so aber es ist noch überschaubar, das können wir noch, können wir noch verbessern ne OK unser großer Kick off für heute kick off. Version 35. 1.
Dann hast du glaub ich. Alle Pains einmal abgefräst oder außer die Fehlerbehandlung. Aber nee doch, die eigentlich auch, das ist ja abgetarnt quasi mit dem ja, die Fehlerbehandlung ist halt funktioniert, das sind so Sachen die. Funktionieren dann einfach so wie man denkt. Die Exceptions werden halt auch übers Kabel geschickt.
Ja, die Promises, die Exceptions, das ist halt so, ja und das ist im Prinzip ein asynchrones RPC geworden, ne, das ist immer also wenn man RPC denkt und deswegen sind Leute vorsichtig, das ist eigentlich früher synchron gewesen, das heißt derjenige der aufruft den Client, der wartet halt tatsächlich voll. Hast bis die Antwort kommt und dann kannst du keinen asynchronen Code mehr schreiben.
Auf der kleinen Seite. Das wollen wir aber, weil kleinseitiger Code ist oft React und React darf halt nie stehen. Ja dann hast du halt und klebt sofort deine Maus ja also das muss alles asynchron sich da einfüttern ja und das kannst du mit VRPC super realisieren ne die sind wir einmal durchgegangen und sind so Punkt für Punkt für.
Punkt. Aber jetzt machst du vielleicht noch mal den kurzen Elovator Pitch dafür und dann würd ich sagen, wenn du Lust hast. Dass wir das auch noch mal beisammen haben, ja. Und, und nicht nur so die. Einzelnen Fetzen ja, also ich mein, es ist schon viel bei rüber gekommen, aber vielleicht kannst du es uns noch mal zusammenfassen, möglichst kurz und knackig und und dann und in was vielleicht noch mal ein, wie wir es vorgehabt haben, ja ich ich ich, ich kann es machen. Und ich, ich, ich nehm mal n bisschen KI. Ich hab KI natürlich auch gefragt. KI kennt natürlich auch n bisschen das VRPC Projekt, ich find es gar nicht so schlecht was da rausgekommen ist und es fasst das ganz gut zusammen.
Also VRPC ist ein Noninvasives oder Nonintrusives RPC Framework. Was das heißt? Habt ihr begriffen, dass man quasi den Code erstmal so schreiben kann, wie man Bock hat und muss sich nicht an eine AP richten? Ganz oft musst du dich als Entwickler richten, ja musst du nicht, also es ist ein non inklusives RPC Framework, das eine neue Komponente hat, nämlich diesen Message Broker und damit maximale Entkopplung der Komponenten, maximale Flexibilität und maximales Service Discovery und so weiter bietet ja das technische Prinzip ist, dass es Code first ist. Ja und Brokerbasiert ist.
Und den Code zur Laufzeit sogar analysieren kann. Und die Verträge, die entstehen zwischen den beiden Partnern zur Laufzeit updaten kann. Ne, das heißt du du brauchst also in der Runtime, ohne dass du die App neu bauen musst oder irgendwas neu entwickeln musst, kannst du quasi flexibel Stücke, Logiken, Code backends hinzufügen?
Ja genau und was halt noch, hab ich ja gesagt was noch n krasses Feature ist ist, dass wir eingebaute Echtzeit Events haben, dass wir dieses dieses ganze Eventing. Quasi mitbekommen und wir haben ne krasse Resilienz und das System ist halt auch sehr stabil gegenüber netzwerkausfällen und so weiter weil mitgeteilt wird durch das Service Discovery.
Oh der Agent ist gerade weg in der IOT Welt ist total wichtig irgendjemand zieht den Stecker oder die Batterie über alle der ist kurz weg, dann siehst du das Discovery Point wenn er wieder da ist hängt er sich einfach wieder ins System ein. Ich kann die Funktion einfach wieder aufrufen ne das ist noch mal so in der in der in der Box vielleicht gesagt was VRPC ist und es ist halt vor allen Dingen.
Es ist halt euer Speedmaker, wenn für die Entwickler, wenn man wenn man wenn man sich drauf einlässt und will so will sowas ausprobieren. Ich glaub dann kriegt man extrem viel Geschwindigkeit. Ja und ich kann euch sagen es ist natürlich immer jetzt ist die Frage Boah also das ist halt die krasseste Entscheidung ja also manchmal das ist ja irgendwie Bowl zu sagen Wir haben Rest und wir haben GAPC es gibt noch Graph QL ja aber auf der Liga spielt halt VRPC ja es ist genau dazu ein. Eine, ich sag mal eine Ergänzung oder n Kompetitor oder wie auch immer das Schimpfen möchte.
Aber auch das Abstraktionslevel ist das und wenn ich jetzt natürlich n großes Softwareprodukt baue ne Architektur und sage ich basiere das mal auf VRPC, dann ist das natürlich auch ne krasse Entscheidung. Ja weil das kannst du so schnell nicht mehr hin und her schwuppen ja weil es gibt ja quasi ganz viel Architektur für die High Level komponenz vor, was ich aber sagen kann ist, wir haben das gesamte heisenware Universum, die gesamte Plattform, ja. Auf VRPC aufgebaut es ist alles VRPC, ja Backend zu Frontend, dann über IMQTC Stockets gelöst.
Dass ich die Events hab ja es auch, also gibt es auch alles Libraries für auch MIT Backend zu den IOT Dingen vor und zurück die ganzen Agenten, Docker und so weiter die interne Kommunikation zwischen den Microservices unserer Microsoft Plattform, es ist alles komplett auf VRPC wir haben hier und da noch n bisschen Rest für so die Standarddinger, dass man sagt OK ich mein meine Resources, mein Media Server, die will ich doppelklicken runterladen. Das sind klare Nachteile von VLBC ich schicke nicht große Files über einen Message Broker und so, aber das kann man da an der Stelle auch mixen.
Machen wir auch und dann finde ich kriegst du damit eine krasse Architektur hin ne also ich das war auch für mich Schweißperlen, so kann man das machen, aber es ist ja so, wenn du Innovation machst und dann haben wir gesagt, OK lass mal die Plattform ausprobieren, die ganze Grafik und so stellt sich heraus, dass das Zeug funktioniert, ziemlich stabil ja, obwohl es basiert auf einer komplett neuen Kommunikationstechnologie. Also das noch mal als Teaser für alle, die entweder n bisschen mitarbeiten wollen bei dem Open Source Projekt oder mal Bock haben es auszuprobieren.
Kann ja mal kein Projekt ausprobieren und mal n Gefühl für kriegen ob das cool ist oder nicht ja OK, sehr cool dann. Lass uns doch final die diese Einordnung machen und mein Gefühl ist jetzt n bisschen Rest ist irgendwie schon so n universeller Standard, der ist auch da, ja und der wird auch so schnell wahrscheinlich nicht verschwinden.
Vielleicht muss auch das auch genau. Auch gut geeignet für irgendwelche öffentlichen. Apis oder solche Geschichten, ne. Also maximal kompatibel, aber vielleicht irgendwo n bisschen umständlicher in der Entwicklung. Ja, und vor allem wenn es auch um bestimmte Entwicklungen geht. Während VRPC also extrem flexibel ist.
So das hab ich auch mal mitgenommen, ja perfekt für schnelle Entwicklung, das hast du jetzt zuletzt auch noch mal gesagt für den IOT Space, den IOT Space, alles was irgendwie total eventbasiert ist. Also eventbasierte Systeme ne, also live Dashboards, vielleicht sogar Control, also nicht nur anzeigen Monitoren, sondern auch Steuern von irgendwelchen Dingen. Mehr oder weniger Eventbasiert und relativ live ne und bei denen irgendwie maximale Entkopplung total wichtig ist. Ne von den ganzen Renten untereinander, so was magst du hinzufügen nix, das hast du super zusammengefasst. Ist genauso.
Ja ich. Ich find schön, dass du es zusammenfasst. Zum Schluss. Ja, das ist es ja, wir haben hier ne Plattform und wenn man immer glaub ich wo man viele verteilte Komponenten hat und auch für die innere Kommunikation und so weiter das ist super geeignet. Ja ich was du sagst ist richtig. West APIS haben ihre Begründung und sind auch gut, ja, als als äußerste Wall für absolute Kompatibilität innerhalb des Netzes. Ja, das ganze Map ist voll mit West APIS, ist auch gut so, wir werden auch in unserem Produkt haben, haben wir ja auch West APIS anbieten um bestimmte Sachen zu kontrollieren, weil man das einfach erwartet genau, aber ich glaube es ist klar geworden in den in den Erläuterungen wo es schlägt, ja wofür es cool ist, dann würde
ich sagen, machen wir den Deckel. Drauf auf VRPC. Ihr habt es gehört, die Links kommen natürlich in die in die Showbeschreibung. Guckt es euch mal an, auf GH, probiert es aus, arbeitet womöglich sogar mit Haut bookart an für Detailfragen, ich glaub da ist er mehrheitsoffen für dazu Rede und Antwort zu stehen, zu diskutieren ne und und und auch Verbesserungsvorschläge gegenzunehmen aber vor allem probiert es aus als Entwickler.
Ja für mich ist glaub ich nichts oder probiert es in der Heisenware aus ja wie Bookart sagt, da kann man sich das visuell angucken was wie. Die da die Funktion aufpoppen ja plötzlich von sonst. Dazu verlier ich vielleicht den letzten Satz noch, das ist. Nämlich tatsächlich cool. Das haben wir jetzt in dem neuen 8 und 80er Release, was der noch nicht draußen ist, aber der kommt bald sehr bald.
Ihr könnt euch sogar auch n freien Account machen von Heisenwehr und dann, wenn ihr das Mal ausprobieren wollt, es geht immer, da könnt ihr tatsächlich die nur diesen Adapter und Agentenkrempel machen, ihr nehmt also einfach n Stück no JS schreibt irgendeine Klasse auf irgendeinen Code, registriert das mit VRPC und dann habt ihr den freien Account von Heisenwehr braucht ihr quasi nur die richtigen.
Konfiguration angeben wo das Hinfunken soll, nämlich gegen euren Account und dann seht ihr eure Funktion und Eure Klasse live in unserer Plattform als Low Code Funktion und könnt die sogar, also könnt die grafisch aufrufen und auch grafisch Business Logik, die miteinander in Beziehung setzen und sogar auch die Daten visualisieren und am Ende eine App machen, die auf jedem Telefon läuft. Das ist ultra cool, also wer da mal Bock drauf hat ist eingeladen sich einen freien Account auf der Plattform zu machen und dann einfach VLPC.
NPM runterzuladen und los geht es ja. Wir haben auch die Doku dann entsprechend am Start, ist schon fast ganz fertig und wenn 88 durch ist, mach das mal am Ende der Woche oder nächste Woche dann ist Safe safe cool so und ihr könnt das mal ausprobieren. Prima wird auch noch verlinkt, OK dann. Vielen herzlichen Dank Burkhard, dass du uns VLPC näher gebracht hast und n bisschen mitgenommen hast in deine. Ja, was deine Gedanken der Vergangenheit, sagen wir es mal so, ja was abgegangen zu daher von deiner Arbeitswelt? Jetzt werden wir tatsächlich auch immer wieder gefragt, Moment, was habt ihr eigentlich vorher gemacht? Ja, das war es genau dann danke dir und danke danke euch fürs zuhören, wir hören uns in 2
Wochen bye einfach geplex tschau tschau Tschüss aus Hamburg. Einfach. Komplex wird produziert. Und präsentiert von Heisenware Heisenware ist deine Low Coop Plattform zur Erstellung und zum Betrieb interaktiver Apps rund um den Shopfloor. Starte noch heute deinen Free Trial unterheisenware.com einfach minus komplex.