banner
Heim / Blog / Socket Runtime zielt darauf ab, die Cloud als Abhängigkeit zu entfernen • The Register
Blog

Socket Runtime zielt darauf ab, die Cloud als Abhängigkeit zu entfernen • The Register

Nov 17, 2023Nov 17, 2023

Interview Socket Supply Co stellte heute Socket Runtime vor, eine Open-Source-Laufzeitumgebung zum Erstellen nativer mobiler und Desktop-Anwendungen für Linux, macOS oder Windows mithilfe von Webtechnologien, jedoch mit optionaler Peer-to-Peer-Konnektivität als Möglichkeit, die Backend-Cloud zu ergänzen oder sogar zu vermeiden Dienstleistungen.

Eine Laufzeit ist eine Umgebung zum Ausführen von Code. Webbrowser dienen als Laufzeitumgebung für JavaScript-Code. Es gibt auch Serverlaufzeiten wie Node.js, Deno und Bun – für JavaScript-Apps, die außerhalb von Browsern ausgeführt werden. Und es gibt App-Laufzeitumgebungen wie Electron, Tauri und Socket Runtime – für JavaScript-Apps, die lokal auf Desktop-Geräten (und auf Mobilgeräten für die beiden letztgenannten) ausgeführt werden.

Electron, ein beliebtes Open-Source-Framework zum Erstellen plattformübergreifender Apps mit Webtechnologien (JavaScript, CSS, HTML), basiert auf der Chromium-Browser-Engine zum Rendern von Webseiten und der Laufzeitumgebung Node.js. Es vereint einen Node.js-Hauptprozess für die Handhabung serverorientierter Funktionen und Dinge wie den Dateizugriff mit Chrome-Renderer-Prozessen für die Darstellung von HTML-basierten Benutzeroberflächen.

„Das große Problem bei Electron ist, dass es nie für den Einsatz auf Mobilgeräten konzipiert wurde“, sagte Paolo Fragomeni, CEO von Socket Supply Co, in einem Interview mit The Register.

Tauri ist ein Open-Source-Framework zum Erstellen mobiler und Desktop-Apps für verschiedene native Plattformen unter Verwendung von Rust und einem WebView zum Rendern von HTML. Tauri-Apps werden nicht mit einer Laufzeitumgebung ausgeliefert, da die endgültige Binärdatei Rust kompiliert ist.

Fragomeni ist jedoch der Ansicht, dass Socket Runtime vorzuziehen sei, da keine neue Programmiersprache erlernt werden müsse. „Mit Tauri gibt es Rust, und das ist für die Mehrheit der Webentwickler ein Nichtstarter“, sagte er.

Ähnliche Einwände erhob er gegen Googles Flutter-Framework. „Flutter führt erneut diese neue Sprache zum Lernen ein, Dart, die im Großen und Ganzen eher unklar ist“, sagte er, räumte jedoch ein, dass Google „großartige Ingenieure hat, die an diesem Zeug arbeiten.“

Fragomeni argumentiert, dass Web-Technologien der richtige Weg seien, und greift damit den Leitspruch des JavaScript-Erfinders Brendan Eich auf: „Wetten Sie immer auf JS!“

„Wir lieben das Internet“, sagte Fragomeni. „Es gibt mehr Webentwickler als jede andere Art von Entwicklern. Das Web verfügt über die beste Dokumentation, die bekanntesten Designmuster und die größten Unternehmen investieren darin.“

Er sagt jedoch, dass Browser für eine bestimmte Art von Client-Server-Software entwickelt wurden, daher haben wir Bemühungen wie Electron und Tauri (ganz zu schweigen von Capacitor, Cordova, Ionic, NativeScript und React Native) gesehen, um Webtechnologie in native Apps zu integrieren Entwicklung. Diese seien begrüßt worden, sagt er, denn die Ausrichtung auf mehrere Plattformen sei aus Entwicklungs- und Managementsicht eine Herausforderung.

„Es ist wirklich schwierig, einen Android-Ingenieur, einen iOS-Ingenieur, einen Windows-Desktop-Ingenieur, einen macOS-Ingenieur und einen Linux-Ingenieur zu finden, einzustellen und dann Anreize zu schaffen und ihn zu unterhalten“, sagte er.

„Socket hilft Webentwicklern, Apps für jedes Betriebssystem, jeden Desktop und jedes Mobilgerät zu erstellen. Und das unter Verwendung von HTML, CSS und JavaScript oder ihren bevorzugten Frameworks.“

Socket Runtime hat auch einen Größenvorteil gegenüber Electron – es produziert viel kleinere Apps. Electron, sagt er, stellt „im Grunde genommen eine 200-Megabyte-Binärdatei bereit, während Socket eine 1,5-Megabyte-Binärdatei liefert. Und das ist eine ziemlich große Sache, wenn man Schwellenmärkte ansprechen möchte.“

Tauri ist in Bezug auf die Binärgröße konkurrenzfähig, obwohl Fragomeni die Architekturentscheidungen von Tauri beanstandet, weil sie trotz der in Rust verfügbaren Speichersicherheitsvorteile unsicher sind.

„Tauri, da steckt großartige Arbeit drin“, sagte er, „aber sie haben die Idee des Hauptprozesses [wie in Electron zu sehen] übernommen. Der Hauptprozess ist eine Art willkürlicher Prozess, der auf Ihrem Computer läuft. Das hat er.“ vollständiger uneingeschränkter Zugriff auf Ihren Computer, und es gibt keine Möglichkeit für einen Benutzer, irgendwelche Zusicherungen darüber zu haben, was dieser Prozess bewirken würde.“

„Socket verfolgt einen völlig anderen Ansatz, indem wir Webstandards übernehmen“, sagte Fragomeni. „In Webstandards gibt es eine sogenannte CSP-Content-Security-Policy. Wir verwenden sie, um die IPC-Aufrufe (Inter-Process-Communication), die an die mittlere Ebene gehen, auf feinkörnige Weise zu entschärfen.“

Die mittlere Schicht, erklärt er, kümmert sich um den Dateisystemzugriff, stellt UDP über JavaScript bereit und so weiter. Dies geschieht jedoch mithilfe eines URI-basierten Schemas. „So kann ich tatsächlich Dinge tun, wie bestimmte Arten von Dateisystemaufrufen oder bestimmte Pfade oder bestimmte Funktionen auf die Whitelist zu setzen, und ich kann eine wirklich fein abgestimmte Kontrolle erhalten, aber unter Verwendung eines Webstandards“, sagte er.

Laut Fragomeni basieren Socket-Apps auf der WebView-Komponente, die mittlerweile in den wichtigsten Betriebssystemen vorhanden ist, wenn auch in unterschiedlicher Form. „Diese Komponente ist auf allen Betriebssystemen inkonsistent, daher normalisieren wir sie“, sagte er.

Was Socket Runtime auszeichnet, ist seine Peer-to-Peer-Unterstützung (P2P), die sich laut Fragomeni deutlich von den P2P-Designs unterscheidet, die vor zwei Jahrzehnten auf den Markt kamen, wie etwa die verteilte Hash-Tabelle Kademlia.

„Die heutigen Netzwerktopologien unterscheiden sich aufgrund der mobilen Nutzungsmuster völlig von den frühen 2000er Jahren“, erklärte er. „Das moderne Peer-to-Peer-Protokoll, das wir entwickelt haben, berücksichtigt dies wirklich. Wir haben ein kleines Zeitfenster, um den Benutzer zufrieden zu stellen. Daher haben wir uns deutlich von den beliebten Designs von Peer-to-Peer entfernt.“ Protokolle, die wir in den letzten Jahrzehnten gesehen haben, wie BitTorrent oder libp2p.

Laut Fragomeni besteht die Socket Runtime P2P-Spezifikation aus weniger als 1.500 Codezeilen in reinem JavaScript. So kann es gelernt, verstanden und überprüft werden.

Der Grund für den Einsatz von P2P liegt laut Fragomeni darin, dass es Entwickler von kostspieligen Cloud-Diensten befreien kann.

„Meine Beziehung zur Cloud ist eine Vermieter-Mieter-Beziehung“, sagte er. „Ich bin Jeff Bezos oder wem auch immer verpflichtet, und ich habe einen lebenslangen Mietvertrag für mein Produkt, nachdem ich es gebaut habe, weil es viele Rohre gibt, die zusammenpassen müssen. Es gibt eine Menge Klebecode, der diese verschiedenen Dienste verbindet – eine ganze Menge.“ des Risikos grundsätzlich.“

„Die Cloud ist für alle der größte Kostenfaktor. Es ist verrückt, dass wir so viel Geld für diese Art von sinnlosen Zeremonien ausgeben, bei denen es darum geht, diese Teile [von Apps] zusammenzufügen, die am Ende des Tages jedoch keinen wirklich großen Mehrwert bieten.“ Sie erhöhen die Komplexität enorm.“

Das bedeutet nicht, dass Cloud-Dienste wie Speicher für bestimmte Anwendungsfälle nicht geeignet sind.

„Der Speicher hängt ganz von den Zugriffsmustern Ihrer App ab“, sagte Fragomeni. „Wenn ich beispielsweise einen Notion-Klon erstellen möchte, können die Daten an Benutzer in der Organisation verteilt werden. Aufgrund der Funktionsweise unseres Protokolls werden die Daten über das Netzwerk gepuffert. Die App funktioniert auch dann weiter, wenn die Benutzer offline sind .

„Aber nehmen wir an, Sie haben Petabytes an Filmarchiven, auf die fast niemand über einen längeren Zeitraum zugreifen wird. Das wäre ein großartiger Anwendungsfall für Amazons Cold Storage.“

Auf die Frage, ob eine Socket P2P-fähige App den Akku eines Mobilgeräts belasten würde, da sie im Hintergrund läuft, bestand Fragomeni darauf, dass die App keine übermäßigen Anforderungen an das Gerät des Benutzers stellen müsse. „Wenn jeder einen kleinen Beitrag zum Aufbau des Netzwerks leistet, funktioniert es statistisch gesehen recht gut“, sagte er. „Was die Zuverlässigkeit angeht, können wir in Simulationen, die wir von einer Reihe von Wissenschaftlern gesehen haben, eine hohe Zuverlässigkeit erreichen, die der Zuverlässigkeit entspricht, die wir in der Cloud sehen.“

„P2P bedeutet in keiner Weise, dass die Speicher- oder Rechenressourcen eines Benutzers zur Verfügung stehen“, fügte er hinzu. „Niemand außer dem Entwickler hat die Kontrolle über Ihre Rechenressourcen, und das ist genau das Gleiche wie bei einer Web-App oder einer nativen App, die die Cloud nutzt.“

The Register fragte Feross Aboukhadijeh, Gründer und CEO von Socket Inc – einem unabhängigen Open-Source-Sicherheitsunternehmen –, was er von Socket Runtime hält.

„Socket Runtime ist für Entwickler aus verschiedenen Gründen spannend“, sagte Aboukhadijeh und bemerkte, dass er einige der Leute kennt, die bei Socket Supply Co. arbeiten. „Zum einen gehen sie eine der größten Beschwerden der Endbenutzer bei Electron an, nämlich die Binärgröße. Electron-Binärdateien sind groß, da sie eine vollständige Kopie von Blink [Chromes Rendering-Engine] und Node.js enthalten. Socket Runtime verwendet jedoch die native Webansicht des Betriebssystems, sodass kein vollständiger Browser in die Binärdatei eingebunden werden muss. Im Gegensatz zu Electron es funktioniert auch auf Mobilgeräten.

„Die Einbeziehung von P2P als erstklassige Überlegung ist super spannend und unterscheidet uns von Electron“, fuhr er fort. „Die Vorteile von P2P-Apps sind zahlreich: besserer Datenschutz, da Daten nicht in der Cloud gespeichert werden müssen, bessere Offline-Unterstützung und geringere Serverkosten für App-Ersteller.“

Socket Runtime ist eine kostenlose Open-Source-Software. Um seinen weiteren Betrieb zu unterstützen, verkauft das Unternehmen Anwendungsleistungsmanagement über eine App namens Socket Operator.

„Socket Operator, unser kommerzielles Angebot, umfasst ein ergänzendes Application Performance Management-Produkt (APM), das zur Diagnose und Behebung von Problemen innerhalb der von Ihnen erstellten Socket-Apps verwendet wird“, erklärte Fragomeni. „In unserer Operator-App gibt es zusätzliche Plugins wie One-Click-Multi-Store-Deploy, ähnlich einer AWS-Konsole, die Entwickler während des gesamten Lebenszyklus der Erstellung ihrer Apps unterstützen.“

„Es ist NICHT notwendig, Sie können eine kommerzielle App auch ohne bereitstellen. Wenn Sie jedoch eine kommerzielle App bereitstellen, ist die Verwendung einer Art Überwachungs-/APM-Tool eine bewährte Vorgehensweise (d. h., wenn etwas schief geht, sollten Sie dies tun). in der Lage sein, Probleme in Ihrer Anwendung zu diagnostizieren und zu beheben).

Es ist durchaus möglich, eine Socket Runtime-App zu erstellen, sie für eine native Plattform wie macOS zu erstellen und niemals ein P2P-Netzwerk zu verwenden. Aber Fragomeni glaubt, dass P2P in einer Zeit sinnvoll ist, in der so viele Berechnungen am Netzwerkrand stattfinden.

„Wenn wir anfangen, über solche Dinge zu sprechen – die Cloud zu ersetzen oder sie sogar deutlich zu ergänzen –, ist das ein ziemlich großer Anspruch“, sagte Fragomeni. „Die Leute denken, dass die Cloud gerade erst am Anfang steht. ‚Wie könnte es Leute geben, die bereits versuchen, sie zu ersetzen?‘“

„Aber ich denke, dass es wahr ist, wie man sagt, dass alles, was in der Technologie populär ist, durch etwas anderes ersetzt wird. Und es ist fast immer eine Überraschung … Ich denke, wenn wir beginnen, diese Verbreitung von Hardware zu sehen, und wenn wir beginnen, es zu sehen Diese unglaubliche Zunahme der Erstellung von Inhaltsdaten in Richtung Netzwerkrand ... diese Hin- und Rückfahrten zum Rechenzentrum machten nach einer Weile einfach keinen Sinn mehr. ®

Senden Sie uns Neuigkeiten

33Holen Sie sich unser3