Socket Runtime стремится отказаться от облака как от зависимости

    0
    2


    Интервью Сегодня компания Socket Supply Co представила Socket Runtime — среду выполнения с открытым исходным кодом для создания собственных мобильных и настольных приложений для Linux, macOS или Windows с использованием веб-технологий, но с опциональным одноранговым подключением в качестве дополнения или даже обхода серверных облачных сервисов. .

    Среда выполнения — это среда для выполнения кода. Веб-браузеры служат средами выполнения для кода JavaScript. Существуют также серверные среды выполнения, такие как Node.js, Deno и Bun — для приложений JavaScript, которые работают вне браузеров. И есть среды выполнения приложений, такие как Electron, Tauri и Socket Runtime — для приложений JavaScript, которые запускаются локально на настольных устройствах (и на мобильных устройствах для последних двух).

    Electron, популярный фреймворк с открытым исходным кодом для создания кроссплатформенных приложений с использованием веб-технологий (JavaScript, CSS, HTML), использует движок браузера Chromium для рендеринга веб-страниц и среду выполнения Node.js. Он объединяет основной процесс Node.js для обработки серверно-ориентированных функций и таких вещей, как доступ к файлам, с процессами рендеринга Chrome для представления пользовательских интерфейсов на основе HTML.

    «Большая проблема с Electron заключается в том, что он никогда не предназначался для работы на мобильных устройствах», — сказал Паоло Фрагомени, генеральный директор Socket Supply Co, в интервью порталу Регистр.

    Tauri — это платформа с открытым исходным кодом для создания мобильных и настольных приложений для различных нативных платформ с использованием Rust и WebView для рендеринга HTML. Приложения Tauri не поставляются со средой выполнения, поскольку окончательный двоичный файл компилируется на Rust.

    Но Фрагомени утверждает, что Socket Runtime предпочтительнее, потому что не нужно изучать новый язык программирования. «С Tauri есть Rust, и это не начало для большинства демографических веб-разработчиков», — сказал он.

    Аналогичные возражения он выдвигал против GoogleФреймворк Flutter. «Флаттер снова представляет этот новый язык для изучения, Дарт, который довольно неясен в общей картине», — сказал он, хотя и признал, что Google «над этим работают отличные инженеры».

    Фрагомени утверждает, что веб-технологии — это то, что нужно, вторя лозунгу создателя JavaScript Брендана Эйха: «Всегда делайте ставку на JS!»

    «Мы любим Интернет, — сказал Фрагомени. «Веб-разработчиков больше, чем любых других разработчиков. В Интернете самая лучшая документация, самые известные шаблоны проектирования, и в него инвестируют крупнейшие компании».

    Но браузеры, по его словам, были разработаны для определенного типа клиент-серверного программного обеспечения, поэтому мы видели такие попытки, как Electron и Tauri (не говоря уже о Capacitor, Cordova, Ionic, NativeScript и React Native), чтобы внедрить веб-технологии в нативные приложения. разработка. По его словам, это приветствуется, потому что ориентация на несколько платформ является сложной задачей с точки зрения разработки и управления.

    «Очень сложно найти, нанять, а затем стимулировать и поддерживать инженера Android, инженера iOS, инженера настольных компьютеров Windows, инженера macOS и инженера Linux», — сказал он.

    «Socket помогает веб-разработчикам создавать приложения для любых ОС, настольных компьютеров и мобильных устройств. И это с использованием HTML, CSS и JavaScript или их любимых фреймворков».

    Socket Runtime также имеет преимущество в размере по сравнению с Electron — он создает гораздо меньшие приложения. Electron, по его словам, предоставляет «200-мегабайтный двоичный файл в основном в конце дня, в то время как Socket поставляет 1,5-мегабайтный двоичный файл. И это довольно большое дело, если вы хотите обратиться к развивающимся рынкам».

    Tauri конкурентоспособен с точки зрения размера двоичного файла, хотя Фрагомени не согласен с архитектурным выбором Tauri из-за его небезопасности, несмотря на преимущества безопасности памяти, доступные в Rust.

    «Таури, здесь проделана большая работа, — сказал он, — но они перенесли идею основного процесса [as seen in Electron]. Основной процесс — это своего рода произвольный процесс, который выполняется на вашем компьютере. У него есть полный неограниченный доступ к вашему компьютеру, и у пользователя нет никаких гарантий относительно того, что этот процесс сделает».

    «Socket использует радикально иной подход, поскольку мы поддерживаем веб-стандарты», — сказал Фрагомени. «В веб-стандартах есть такая штука, как CSP — политика безопасности контента. [inter-process communication] вызовы, которые идут на средний уровень».

    Он объясняет, что средний уровень обрабатывает доступ к файловой системе, обеспечивает UDP поверх JavaScript и так далее. Но это делается с использованием схемы на основе URI. «Таким образом, я действительно могу делать такие вещи, как внесение в белый список вызовов определенных видов файловой системы, определенных путей или определенных функций, и я могу получить очень детальный контроль, но с использованием веб-стандарта», — сказал он.

    Приложения Socket, говорит Фрагомени, полагаются на компонент WebView, который сейчас существует в основных операционных системах, хотя и в различных формах. «Этот компонент несовместим в разных операционных системах, поэтому мы его нормализуем», — сказал он.

    Что отличает Socket Runtime от других, так это поддержка одноранговых сетей (P2P), которая, по словам Фрагомени, значительно отличается от проектов P2P, появившихся два десятилетия назад, таких как распределенная хеш-таблица Kademlia.

    «Сегодняшние сетевые топологии из-за моделей использования мобильных устройств полностью отличаются от тех, что были в начале 2000-х», — пояснил он. «Современный одноранговый протокол, который мы разработали, действительно учитывает это. У нас есть небольшое окно времени, чтобы удовлетворить пользователя. протоколы, которые мы видели за последние пару десятилетий, такие как BitTorrent или libp2p».

    Фрагомени говорит, что спецификация Socket Runtime P2P состоит из менее чем 1500 строк кода на чистом JavaScript. Так что это можно изучить, понять и одитировать.

    Смысл использования P2P, по словам Фрагомени, заключается в том, что он может освободить разработчиков от дорогостоящих облачных сервисов.

    «Мои отношения с облаком таковы, что это отношения арендодателя и арендатора», — сказал он. «Я обязан Джеффу Безосу или кому-то еще, и я нахожусь в пожизненной аренде со своим продуктом после того, как я его создам, потому что есть много каналов, которые нужно соединить вместе. Существует много связующего кода, который соединяет эти различные службы — много риска в основном».

    «Облако — это самая большая статья расходов для всех. Это безумие, что мы платим столько денег, чтобы проводить такие бессмысленные церемонии по сборке этих частей вместе. [of apps] которые, в конце концов, не приносят особой пользы, хотя и усложняют».

    Это не означает, что облачные сервисы, такие как хранилище, не подходят для определенных случаев использования.

    «Хранилище зависит от шаблонов доступа вашего приложения», — сказал Фрагомени. «Так, например, если бы я хотел создать клон Notion, данные можно было бы распространять среди пользователей в организации, из-за того, как работает наш протокол, данные буферизуются через сеть; приложение будет продолжать работать, даже если люди не в сети. .

    «Но допустим, у вас есть петабайты киноархивов, к которым почти никто не будет иметь доступ в течение длительного периода времени, это было бы отличным вариантом использования Amazon Cold Storage».

    На вопрос, будет ли приложение с поддержкой Socket P2P разряжать аккумулятор мобильного устройства, работая в фоновом режиме, Фрагомени настаивал, что приложению не нужно будет предъявлять чрезмерные требования к устройству пользователя. «Статистически, если каждый вносит небольшой вклад в построение сети, вероятностно это действительно работает довольно хорошо», — сказал он. «Тогда, что касается надежности, в моделировании, которое мы видели в академическом корпусе, мы можем получить высокую надежность, равную надежности, которую мы наблюдаем в облаке».

    «P2P никоим образом не означает, что хранилище или вычислительные ресурсы пользователя доступны для захвата», — добавил он. «Никто, кроме разработчика, не контролирует ваши вычислительные ресурсы, и это точно так же, как с веб-приложением или собственным приложением, использующим облако».

    Регистр — спросил Феросс Абухадие, основатель и генеральный директор Socket Inc — независимой компании по обеспечению безопасности с открытым исходным кодом, — что он думает о Socket Runtime.

    «Socket Runtime привлекает разработчиков по целому ряду причин, — сказал Абухадидже, отметив, что он знаком с некоторыми людьми, работающими в Socket Supply Co. двоичный размер. Исполняемые файлы Electron большие, потому что они включают полную копию Blink [Chrome’s rendering engine] и Node.js. Но Socket Runtime использует собственное веб-представление ОС, поэтому нет необходимости включать в двоичный файл весь браузер. В отличие от Electron, он также работает на мобильных устройствах».

    «Включение P2P в качестве первоклассного решения очень интересно и отличает его от Electron», — продолжил он. «Преимуществ приложений P2P множество: лучшая конфиденциальность, поскольку данные не нужно хранить в облаке, лучшая автономная поддержка и более низкие затраты на серверы для создателей приложений».

    Socket Runtime — это бесплатное программное обеспечение с открытым исходным кодом. Чтобы поддерживать свою дальнейшую работу, компания продает управление производительностью приложений через приложение под названием Socket Operator.

    «Socket Operator, наше коммерческое предложение, включает в себя дополнительный продукт для управления производительностью приложений (APM), который используется для диагностики и устранения проблем в приложениях Socket, которые вы создаете», — пояснил Фрагомени. «В нашем приложении Operator есть дополнительные плагины, такие как развертывание нескольких магазинов одним щелчком мыши, аналогичное консоли AWS, которые помогают разработчикам на протяжении всего жизненного цикла создания своих приложений».

    «Это НЕ обязательно, вы можете развернуть коммерческое приложение и без него. Однако, если вы развертываете коммерческое приложение, лучше всего иметь какой-либо инструмент мониторинга/APM (т. е. если что-то пойдет не так, вы захотите иметь возможность диагностировать и устранять проблемы в вашем приложении)».

    Вполне возможно создать приложение Socket Runtime, построить его для собственной платформы, такой как macOS, и никогда не использовать сеть P2P. Но Фрагомени считает, что P2P имеет смысл в то время, когда так много вычислений выполняется на границе сети.

    «Когда мы начинаем говорить о подобных вещах — о замене облака или даже значительном его дополнении — это довольно серьезное заявление», — сказал Фрагомени. «Люди думают, что облако только зарождается. Как могут люди уже пытаться заменить его?»

    «Но я думаю, что это правда, как говорится, что все популярное в технике заменяется чем-то другим. И это почти всегда неожиданно … Я думаю, когда мы начинаем видеть это распространение оборудования, и когда мы начинаем видеть это невероятное увеличение количества создаваемых данных контента по направлению к границе сети… эти поездки туда и обратно в центр обработки данных через некоторое время просто потеряли смысл». ®

    Предыдущая статьяNintendo Live, личное фан-мероприятие, проходит в Сиэтле
    Следующая статьяDiscord увеличивает ограничение на размер загружаемых файлов для всех пользователей
    Виктор Попанов
    Эксперт тестовой лаборатории. Первый джойстик держал в руках в возрасте 3 лет. Первый компьютер, на котором „работал” был с процессором Intel i386DX-266. Тестирует оборудование для издания ITBusiness. Будь то анализ новейших гаджетов или устранение сложных неполадок, этот автор всегда готов к выполнению поставленной задачи. Его страсть к технологиям и приверженность качеству делают его бесценным помощником в любой команде.