Автономный веб-лаунчер - PullRequest
1 голос
/ 17 июня 2011

Я строю систему распределенного меню для поддержки операционной стороны крупного предприятия.Идея состоит в том, что пользователи могут использовать это приложение для запуска веб-приложений (онлайн или офлайн), виртуализированных приложений, находящихся на удаленном сервере, а также локально установленных устаревших толстых клиентских приложений, которые мы не можем позволить себе изменить (читай: C / C ++, На основе Java.)

Некоторые дополнительные требования:

  • Сетевое развертывание
  • Автоматическое обновление, когда при запуске приложения обнаруживается новыйверсия на сервере
  • Автономная поддержка - отсутствие сетевого подключения не будет препятствовать работе пользователя локально установленных толстых клиентов или автономных веб-приложений
  • Синхронизация данных RESTful (т. е. в меню используется косвеннаяполучить доступ к инструментам / сервисам, запросив REST-сервис для безопасного рандеву
  • Кросс-платформенный, кросс-браузерный с минимальный или установка без клиента (например, не требует JVM, которая постоянно выдает ошибкипользователь может обновить )
  • Интуитивно понятный пользовательский интерфейс, аналогично стекам в Mac OS X или меню, которые доступныn выбрано

на стороне сервера. На данный момент я остановился на ServiceStack в качестве моей инфраструктуры веб-службы RESTful, поддерживаемой SQLБаза данных Server Enterprise.На данный момент серверная сторона не является критически важной задачей.В конце концов мне нужно будет рассмотреть вопросы безопасности, авторизации ролей и т. Д., Но на данный момент у меня есть хороший дескриптор на сервере.

Кандидатские решения на стороне клиента. Клиент являетсядругая история.Я изучил широкий спектр подходов к этой проблеме, ни один из которых не является идеальным (в основном из-за безопасности изолированной программной среды браузера). Я ищу лучшие альтернативы этим:

  • Автономное веб-приложение
    • Google Installable Web Apps
      • Поддерживает большинство моих сценариев использования, но AFAIK не может выполнить локально установленный собственный код
      • Чтобы смягчить это,Я рассмотрел NaCl , но он накладывает ограничения на собственный исполняемый код, и это выходит за рамки моего бюджета и контроля
    • HTML5 Offline WebПриложение
      • Это было бы моим предпочтением, но возможно ли из этого выполнить толстый клиентский код без ограничений NaCl, указанных выше?
  • Расширение браузера
  • Плагин для браузера
  • Толстый клиент веб-службы
    • на основе XUL
      • Из всех моих усилий я пошел дальше всего с XUL.У меня есть приложение на базе XUL, которое отправляет запросы AJAX в мой веб-сервис для динамического заполнения меню
      • Пока это работает хорошо, но есть некоторые проблемы:
    • Java Web Start
    • .NET на основе пользовательского MIME-типа
      • Не уверен, как начать с этого, или куда это приведет меня.
    • Appcelerator Titanium
      • Может быть жизнеспособной альтернативой.Я еще не изучал это.

Престижность, если вы сделали это так далеко!По сути, это приложение заменяет устаревшее меню, построенное из сценариев, для поддержки и обновления которого требуется армия.Я уверен, что есть какое-то решение SOA для этой проблемы, но бюджет не поддержит крупные инвестиции в предварительное проектирование и долгосрочное обслуживание.

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

РЕДАКТИРОВАТЬ: Я заинтригован этой веб-частью быстрого запуска SharePoint .У кого-нибудь есть опыт работы с этим или знаете, как это осуществить с SP?

Ответы [ 2 ]

1 голос
/ 20 июня 2011

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

Боюсь, что единственный способ добиться этого - разработать небольшую надстройку для каждого браузера, который вы хотите поддерживать. Для Firefox это очень просто сделать, так как есть API-интерфейс XPCOM (nsIProcess) для вызова новых процессов. В IE вы могли бы написать ActiveX, который реализован на C ++ и предоставил необходимые привилегии. В Chrome у вас нет выбора, кроме как написать плагин NPAPI.

Если бы это был я, я бы написал плагин NPAPI для Firefox и Chrome, поскольку веб-страницы могут использовать один и тот же код для обоих браузеров. Для IE вы можете написать ActiveX, доступ к которому осуществляется более или менее так же, как и для плагина. Таким образом, веб-страницы, которым требуется возможность запуска внешних процессов, встраивают плагин, устанавливают необходимое значение свойства (то есть путь к процессу, который нужно выполнить) и вызывают метод для встроенного объекта.

0 голосов
/ 22 июня 2011

На основе предоставленных превосходных учебных пособий я пытаюсь построить систему распределенного меню, используя SiteFusion Это основанная на PHP клиент-серверная среда для приложений XUL, которая, следовательно, позволяет клиентам выполнять локальные, собственныеПриложения.Хотя сервер поддерживается только на платформах * NIX, клиент может работать где угодно.Это решение кажется идеальным для большинства моих заявленных требований.

...