Запуск windows приложений в браузере

Идея запускать приложения не на компьютере пользователя, а на удаленном сервере, и транслировать изображение пользователю по сети – не нова, и давно «витает в воздухе». Согласитесь, идея хорошая: ведь для установки любого нового ПО на свой компьютер необходимо разобраться с политикой лицензирования (кому это актуально), найти дистрибутив (желательно, без вредоносного ПО внутри), установить и настроить ПО — иногда просто руки опускаются. Кроме того, подход с трансляцией ПО снимает необходимость в своем производительном «железе», что становится актуальным в свете ежегодного роста продаж планшетных компьютеров и смартфонов. Да и интернет есть повсюду в мегаполисах: слушать музыку и смотреть кино онлайн, в конце концов, все уже давно привыкли.

Вот только ни одного полнофункциональной разработки, подходящего для применения в сети Интернет до сих пор так и не видно. Мы подумали, что это никуда не годится и решили сделать ее.

Давайте поподробнее

С моей стороны будет, наверное, не совсем честным не упомянуть про вполне себе существующие, и даже неплохо себя зарекомендовавшие Citrix XenApp и Microsoft App-V. Оба продукта неплохо справляются со своей задачей в крупных организациях, но вот беда: оба решения малопригодны для публичного предоставления сервиса (то есть, для сети Интернет). Виной тому технические особенности, ведь эти системы изначально проектировались для интеграции заказчику. Причем речь идет в первую очередь о крупном бизнесе, так как среднему и малому бизнесу такие системы не по карману. Да и клиентское ПО надо ставить на пользовательские устройства, разбираться, настраивать. На практике оказывается, что не для любых устройств есть клиенты (я про планшеты. Смартфоны и вовсе не поддерживаются), несмотря на заверения дистрибьюторов. Стоит ли говорить, что попытки построения публичного сервиса на базе данных продуктов ничем хорошим не заканчивались, насколько мне известно.

А почему бы не сделать систему, способную транслировать Windows-приложения именно для глобальной сети, подумали мы?

Говоря про Windows-приложения, мы имеем в виду любое программное обеспечение, способное функционировать под управлением операционной системы Microsoft Windows. Почему взяли фокус именно на Windows-приложения? Все очень просто: Windows-приложения – это приложения для бизнеса, для работы, для учебы, приложения, которыми пользуются (и, что немаловажно, умеют пользоваться) миллиарды людей по всему миру. Количество приложений уже разработанных под Microsoft Windows, полагаю, исчисляется миллионами, что представляет собой огромный неисчерпаемый функционал, который было бы, на мой взгляд, здорово аккумулировать в одном месте.

В качестве главного критерия системы была выбрана простота понимания для конечного пользователя, чтобы даже моя мама, привыкшая работать с уже установленным и настроенным ПО на своем ноутбуке не самой последней модели, легко разобралась.

Еще одним важным критерием стало желание поддерживать различные типы современных устройств (персональные компьютеры под управлением различных OS, планшеты, мобильные устройства, современные телевизоры, поддерживающие технологию smart TV и другие). Решение напрашивалось само собой: транслировать windows-приложения надо с удаленного сервера в веб-браузеры конечных пользователей, ну или на веб-страницу, если быть более точным. Вот только как это сделать?

Реализация

Начиналось все со старого Б/У сервера, размещенного в коридоре квартиры, и кодинга до поздней ночи. Что только не пробовали в своем поиске: даже использовать Silverlight в качестве программной платформы для портирования .net-приложений пользователю, но ввиду очевидных ограничений по набору возможных к доставке приложений от этого варианта отказались. Сконцентрировались все-таки на трансляции приложений в кроссплатформенную среду и более от этого направления не отходили. По нашему мнению, трансляция отображения работы приложений является на данный момент времени лучшим методом для «доставки» приложений пользователям.

Для реализации системы потребовалось разработать следующий компоненты:

  • сервер доступа web-клиентов – обеспечивает взаимодействие сервера приложений с клиентами;
  • сервер приложений – обеспечивает передачу событий клавиатуры и мыши приложениям, отправку изображения клиенту, изоляцию приложений друг от друга;
  • сервер управления – обеспечивает управление инфраструктурой;
  • файловый сервер – обеспечивает хранения пользовательских данных.

Для реализации сервера доступа web-клиентов выбор пал на SignalR, который способен самостоятельно выбирать оптимальный транспорт в зависимости от условий. В случае, если есть возможность, SignalR использует WebSockets в качестве транспорта, если такой возможности нет (причиной может стать, к примеру, устаревшая версия веб-браузера) — polling, long polling. Добиться оптимальной скорости для комфортной работы пользователя используя polling, long poling нам не удалось, но частичную поддержку для устаревших версий браузеров все-таки обеспечили.

Сервер приложений является ядром и наиболее не простой частью разрабатываемой системы. Передача изображения от запущенного на сервере ПО осуществляется с помощью снятия скрин-шотов и передачей полученных кадров в режиме реального времени. Изображение разбивается на области, и пользователю передаются только изменения для экономии трафика. Изначально планировалось использовать технологию Desktop Duplication API, но так как она может дуплицировать только рабочий стол целиком, а нам нужны окна, то от нее пришлось отказаться. Модуль создания скриншотов в итоге пришлось разрабатывать самостоятельно. Для разработки кодека в качестве «образца для подражания» был принят FreeRDP WebConnect, серверную часть естественно писали сами. Для передачи событий клавиатуры и мыши приложениям имитируются события на стороне сервера с использованием функций send input.
Файловый сервер и сервер управления представляют меньше интереса, по этой причине не будем на них заострять внимание.

На данный момент бета-версия выглядит так:

И немного импрессионизма в Gimp от автора статьи

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Что вы обо всем этом думаете?

65.61% Мне понравилась идея, хочу узнать поподробнее;353

7.06% Это гениально! Я бы хотел попробовать разместить свою разработку в такое облако;38

10.78% Я ничего не понял! Но название поста понравилось;58

16.54% Зачем это нужно? Не вижу преимуществ перед Web-приложениями.89

Проголосовали 538 пользователей. Воздержались 111 пользователей.

Most of the time we focus on helpful tips for Windows users, but today’s article will also appeal to anyone with a Chromebook. A company named Cameyo is known for its software that lets you run Windows program from a USB stick, but it also offers a virtualization service that lets you run full-blown Windows desktop programs in a browser for free.

Cameyo offers a number of open source programs by default, and if you don’t find what you need you can also upload your own EXE files. Cameyo isn’t perfect. Virtual programs tend to run slowly, some don’t work at all, and using personal files with the apps is not as obvious as it could be.

Nevertheless, Cameyo can come in handy in a pinch when you’re away from your primary PC. Here’s how it works.

Getting started

The first thing you need to do is sign-up for a Cameyo account and then link your Dropbox account to Cameyo. Once that’s done you’ll be able to access files that are saved in your Dropbox folder under AppsCameyoDesktop while you’re inside virtualized Cameyo apps. Any files you create while using Cameyo will also be saved back to this location.

In the virtual programs themselves, you’ll find your files as though you were navigating through a regular Windows system. In my tests, my files were either under RemoteUser1 or RemoteUser2.

Start a program

Irfanview running in Cameyo.

Firing up a virtual program is simple. Just hover over the program name and click the small play button that appears. The program will start and you can use it as you would on a Windows desktop.

Just remember that when you navigate the file system inside a Cameyo browser program you do not have access to your local files. It’s as though you are running a separate Windows system inside your browser. The only way to access or store files is via the desktop for RemoteUser1 or RemoteUser2, which is connected to your Dropbox account if you set things up properly in the previous step.

Cameyo’s programs

You’ll find a ton of programs you can try out in the browser window, but truth be told only a few truly make sense for casual users. VLC, for example, wasn’t worth it in my tests. Any videos I tried to play were choppy and didn’t have sound since the virtual app is in its own sandbox with no access to my PC’s native audio capability. Plus, if you have a video online that you’d like to watch, it makes more sense to try and view it in a cloud service that offers video streaming for saved files.

Program’s I’d recommend trying out in Cameyo are Irfanview for photo editing, 7Zip for compressing files into a zipped format, and Audacity for working with audio files.

Have a look around and you may find other programs that suit your needs. Cameyo is also an excellent place to just try out software without having to download it. And remember you can always try uploading your own EXE files to access specific programs you need.

I wouldn’t recommend relying on Cameyo as an everyday solution, but for those times you need quick access to a desktop program from a Chromebook or browser, it’s a useful service to know about.


|

Разработан бесплатный эмулятор, который позволяет всем желающим запускать классические приложения для Windows на большинстве популярных платформ или прямо в веб-браузере. Проверить работоспособность инструмента можно, не устанавливая его, непосредственно на посвященном ему сайте.

Проект Boxedwine

Выпущен бесплатный инструмент, который позволяет запускать приложения для Windows, в том числе неподдерживаемые актуальными версиями операционной системы Microsoft, в других ОС или непосредственно в веб-браузере, пишет Liliputing.

В рамках проекта под названием Boxedwine ведется разработка бесплатной кроссплатформенной утилиты, которая делает возможным запуск 16- и 32-битных Windows-приложений.

Автором заявлена работа эмулятора на платформах x86, x64, ARMv7 и ARMv8. Судя по заметкам разработчика, достигнуты некоторые успехи в деле портирования инструмента на популярный одноплатный компьютер Raspberry Pi 4.

Главное окно Boxedwine для Windows 10

Что касается программных платформ, разработчиком заявлена поддержка Linux, macOS и даже Windows 10. Версия для Windows 10 может оказаться полезной при необходимости запустить устаревшие приложения, например, предназначенные для Windows 3.1/3.11.

Где можно протестировать

Дистрибутив актуальной версии Boxedwine 20.1.2 для Windows занимает примерно 147 МБ и доступен для загрузки с сайта проекта. Он включает в себя минимальную сборку Debian Linux, Wine 1.8 и 5.0. Для использования программы достаточно распаковать архив в любую папку и запустить boxedwine.exe, установка не требуется.

На сайте Boxedwine доступен запуск нескоторых классических приложений прямо в браузере

Сборку под иные платформы желающим воспользоваться наработками проекта придется осуществлять самостоятельно в соответствии с документацией, которая размещена на сайте Boxedwine.

Age of Empires, запущенная в браузере через Boxedwine

На сайте проекта можно попробовать Boxedwine в деле, ничего не устанавливая вовсе. Для этого автор выложил несколько десятков классических приложений, которые можно запустить и испытать их работу прямо в браузере. Однако производительность некоторых из них, например, легендарной стратегической игры Microsoft Age of Empires, оставляет желать лучшего. При использовании версии Boxedwine для Windows 10 та же программа, как убедился CNews, работает значительно быстрее.

Как это работает

В основе утилиты лежит немодифицированная 32-битная версия Wine – прослойки, которая представляет собой свободную реализацию Win32 API. Wine работает в виртуальном окружении – эмулируются ядро Linux и инфраструктура на базе x86-совместимого процессора. Работа в браузере реализована с использованием Emscripten – компилятора LLVM-байткода в код на языке Javascript. Имеется поддержка нескольких версий Wine – от 1.8 до 5.0.

Boxedwine написан преимущественно на языке программирования C++ и задействует графическую библиотеку SDL. Исходный код проекта опубликован на условиях GNU General Public License v2 (GPL). Таким образом, он доступен всем желающим на хостинге ИТ-проектов Github. Автор проекта и основной разработчик зарегистрирован на платформе под псевдонимом danoon2.

Что такое Wine

Wine – это свободное ПО, которое позволяет исполнять приложения, созданные для Microsoft Windows, на UNIX-подобных операционных системах, таких как Linux или macOS. С его помощью можно также запускать приложения, созданные для устаревших версий Windows, на новых версиях этой ОС.

Первый релиз Wine был выпущен в 1993 г. Название Wine представляет собой рекурсивный акроним и расшифровывается как Wine Is Not an Emulator, что в переводе означает «Wine — не эмулятор». Wine, действительно, не использует механизмы эмуляции или виртуализации — это альтернативная свободная реализация Win32 API.

Основанная в 1996 г., CodeWeavers базируется в США и занимается развитием проприетарной версии Wine под названием CrossOver. Компания также деятельно занимается развитием свободного Wine.

Попытки «оживить» старые программы

Энтузиасты нередко предпринимают попытки «реанимировать» старые программы.

К примеру, в конце августа 2018 г. на Github был выложен эмулятор Windows 95 для запуска в современных версиях macOS, Linux и Windows.

Святослав Кульгавый, «Колан»: Псевдороссийские технологии растут как грибы после дождя

Импортонезависимость

В 2016 г. два никак не связанных между собой разработчика запустили Windows 95 в браузере и на «умных» часах Apple Watch.

В 2018 г. CNews сообщил о том, что ученые Университета Карнеги–Меллона (США) создали систему, которая позволяет запускать старые программы, предназначенные для различных аппаратных и программных платформ, на современных компьютерах, при этом не требуя от конечного пользователя самостоятельного развертывания виртуальных машин или скачивания образов дисков для них. Решение получило название Olive, которое представляет собой акроним Open library of Images for virtualized execution – «Открытая библиотека образов для виртуализированного исполнения». Оно призвано помочь в работе ученым в тех случаях, когда возникает необходимость перепроверить результаты экспериментов и вычислений прошлых лет, которые нередко производились с использованием ныне устаревших программ и библиотек.

В 2020 г. CNews рассказал о разрабатываемом энтузиастами кроссплатформенном эмуляторе Flash под названием Ruffle. У проекта есть хорошая финансовая поддержка – деньги на его разработку выделяют, в частности, издание The New York Times и развлекательная площадка Newgrounds. Поддержка технологии Flash была свернута ее правообладателем – компанией Adobe – в начале 2021 г., однако по-прежнему остается востребованной. Ruffle, в частности, применяется «Архивом интернета», который сохранил более 1 тыс. значимых Flash-роликов и программ и позволяет всем желающим просматривать их на своем сайте.

  • Что лучше — ГЛОНАСС или GPS: главные различия систем навигации

Вот такую клёвую штуку мне показал Саша Зеленков (из нашей команды CLUB.ORG) :

для всех, кто помнит те самые времена зарождения игр и Windows 95-98, запусти в браузере.

Почему в заголовке «Осторожно»?

В общем, я запустил, прослезился и залип жестоко в Quake 1))

Представьте, а ведь может быть лет через 20-30 мы так сможем запускать в браузере и игры вроде “Ведьмака 3”

Всем добра и позитивного настроения!

Развиваю CLUB.ORG — международное бизнес-сообщество и сообщество «Авторы с Уолл-Стрит» для тех, кто выпускает или хочет выпускать успешные статьи на vc.ru и других СМИ.

Делюсь опытом в ТГ-канале Замятин Иван из CLUB.ORG.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Восстановить удаленный windows store
  • Android планшет как монитор windows
  • Cmake install prefix windows
  • Эмулятор приложений ios для windows
  • Dhcp не включен на сетевом адаптере беспроводная сеть что делать windows 10 ноутбук