Веб приложение - Web application

Орда групповое ПО является Открытый исходный код веб приложение.

А веб приложение (или же веб-приложение) является программное обеспечение который работает на веб сервер, в отличие от компьютерных программ, которые запускаются локально на Операционная система (ОС) устройства. Пользователь получает доступ к веб-приложениям через веб-браузер с активным подключением к Интернету. Эти приложения программируются с помощью клиент – сервер смоделированная структура - пользователь ("клиент") предоставлен Сервисы через внешний сервер который размещен на стороннем сервере. Примеры часто используемых веб-приложений: электронная почта, розничные продажи через Интернет, онлайн банкинг, и онлайн-аукционы.

Определение и аналогичные термины

Общее различие между динамическая веб-страница любого вида и "веб-приложение" неясно. Веб-сайты, которые, скорее всего, будут называться «веб-приложениями», - это те, которые имеют функции, аналогичные программным приложениям для настольных компьютеров или мобильное приложение. HTML5 представила явную языковую поддержку для создания приложений, которые загружаются как веб-страницы, но могут хранить данные локально и продолжать работать в автономном режиме.

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

Мобильное веб-приложение

Существует несколько способов настройки таргетинга на мобильные устройства при создании веб-приложения:

  • Адаптивный веб-дизайн можно использовать для создания веб-приложения - будь то обычный веб-сайт или одностраничное приложение, которое можно просматривать на небольших экранах, которые хорошо работают с сенсорными экранами.
  • Прогрессивные веб-приложения (PWA) - это веб-приложения, которые загружаются как обычные веб-страницы или веб-сайты, но могут предлагать пользователю такие функции, как работа в автономном режиме и доступ к аппаратному обеспечению устройства, традиционно доступный только для собственных мобильных приложений.
  • Родные приложения или «мобильные приложения» запускаются непосредственно на мобильном устройстве, точно так же, как обычное программное обеспечение запускается непосредственно на настольном компьютере, без веб-браузера (и, возможно, без необходимости подключения к Интернету); они обычно записываются на Ява (за Android устройства) или Цель-C или же Быстрый (за iOS устройств). В последнее время фреймворки позволяют разрабатывать собственные приложения для всех платформ с использованием языков, отличных от каждого стандартного родного языка.
  • Гибридные приложения встраивают веб-сайт в собственное приложение, возможно, используя гибридную структуру. Это позволяет разрабатывать с использованием веб-технологий (и, возможно, напрямую копировать код с существующего мобильного веб-сайта), сохраняя при этом определенные преимущества нативных приложений (например, прямой доступ к оборудованию устройства, автономная работа, видимость магазина приложений). Платформы гибридных приложений включают Apache Cordova, Электрон, Haxe, React Native и Xamarin.

История

В более ранних вычислительных моделях, таких как клиент-сервер, нагрузка обработки приложения распределялась между кодом на сервере и кодом, установленным на каждом клиенте локально. Другими словами, приложение имело свою собственную предварительно скомпилированную клиентскую программу, которая служила его пользовательский интерфейс и должны были быть установлены отдельно на каждого пользователя персональный компьютер. Обновление кода приложения на стороне сервера обычно также требует обновления кода на стороне клиента, установленного на каждой рабочей станции пользователя, добавляя к поддерживать стоимость и уменьшение продуктивность. Кроме того, как клиентский, так и серверный компоненты приложения обычно были жестко привязаны к определенному компьютерная архитектура и Операционная система и перенос для других часто было непомерно дорого для всех приложений, кроме самых крупных (в настоящее время родные приложения для мобильных устройств также затруднены некоторыми или всеми вышеперечисленными проблемами).

Напротив, веб-приложения используют веб-документы написано в стандартном формате, например HTML и JavaScript, которые поддерживаются различными веб-браузерами. Веб-приложения можно рассматривать как особый вариант клиент-серверного программного обеспечения, в котором клиентское программное обеспечение загружается на клиентский компьютер при посещении соответствующей веб-страницы с использованием стандартных процедур, таких как HTTP. Обновления клиентского веб-программного обеспечения могут происходить каждый раз при посещении веб-страницы. Во время сеанса веб-браузер интерпретирует и отображает страницы и действует как универсальный клиент для любого веб-приложения.

В первые дни Интернет, каждая отдельная веб-страница была доставлена ​​клиенту в виде статического документа, но последовательность страниц все еще могла обеспечивать интерактивное взаимодействие, поскольку пользовательский ввод возвращался через веб-интерфейс. форма элементы, встроенные в разметку страницы. Тем не мение, каждый Для значительного изменения веб-страницы потребовалось возвращение на сервер и обратно для обновления всей страницы.

В 1995 г. Netscape представил клиентские сценарии язык называется JavaScript позволяя программистам добавлять динамические элементы к пользовательскому интерфейсу, работающему на стороне клиента. Таким образом, вместо отправки данных на сервер для создания всей веб-страницы встроенные сценарии загруженной страницы могут выполнять различные задачи, такие как проверка ввода или отображение / скрытие частей страницы.

В 1996 году Macromedia представила Вспышка, а векторная анимация проигрыватель, который можно добавить в браузеры как плагин для встраивания анимации на веб-страницы. Это позволило использовать язык сценариев для программирования взаимодействий на стороне клиента без необходимости взаимодействия с сервером.

В 1999 году концепция "веб-приложения" была представлена ​​на языке Java в спецификации сервлетов версии 2.2. [2.1?].[1][2] В то время как JavaScript, так и XML уже был разработан, но Аякс еще не был придуман, и XMLHttpRequest только недавно был представлен в Internet Explorer 5 как объект ActiveX.[3]

В 2005 году был придуман термин Ajax, и такие приложения, как Gmail начали делать свои клиентские части все более интерактивными. Сценарий веб-страницы может связываться с сервером для хранения / получения данных без загрузки всей веб-страницы.

В 2007, Стив Джобс объявила, что веб-приложения, разработанные в HTML5 с помощью AJAX архитектура, будет стандартным форматом для приложений iPhone. Нет комплект для разработки программного обеспечения (SDK), и приложения будут полностью интегрированы в устройство через Сафари движок браузера. Позже эта модель была заменена на App Store в качестве средства предотвращения взломщики и успокоить разочарованных разработчиков.

В 2014, HTML5 была доработана, что обеспечивает графические и мультимедийные возможности без необходимости в надстройках на стороне клиента. HTML5 также обогатил семантическое содержание документов. API и объектная модель документа (DOM) больше не являются чем-то второстепенным, а являются фундаментальной частью спецификации HTML5. WebGL API проложил путь для продвинутой трехмерной графики на основе холста HTML5 и языка JavaScript. Они имеют важное значение для создания действительно независимых от платформы и браузера. богатые веб-приложения.

В 2016 г. Google IO конференции, Эрик Бидельман (старший инженер по программам для разработчиков) представил Прогрессивные веб-приложения (PWA) как новый стандарт в веб-разработке. Джефф Бертофт, главный менеджер программы в Microsoft, сказал: «Google лидировал с прогрессивными веб-приложениями, и после долгого процесса мы решили, что нам необходимо полностью поддерживать его». Таким образом, Microsoft и Google оба поддерживают стандарт PWA.

Интерфейс

Через Ява, JavaScript, DHTML, Вспышка, Silverlight и других технологий возможны специфические для приложения методы, такие как рисование на экране, воспроизведение звука и доступ к клавиатуре и мыши. Многие службы работали над тем, чтобы объединить все это в более знакомый интерфейс, который принимает вид операционной системы. Универсальные методы, такие как перетащить и отпустить также поддерживаются этими технологиями. Веб-разработчики часто используют сценарии на стороне клиента для добавления функциональности, особенно для создания интерактивного взаимодействия, не требующего перезагрузки страницы. Недавно были разработаны технологии для координации клиентских сценариев с серверными технологиями, такими как ASP.NET, J2EE, Perl / Plack и PHP.

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

Структура

Приложения обычно разбиваются на логические блоки, называемые «уровнями», где каждому уровню назначается роль.[4] Традиционные приложения состоят только из 1 уровня, который находится на клиентском компьютере, но веб-приложения по своей природе допускают n-уровневый подход.[4] Хотя возможно множество вариантов, наиболее распространенной структурой является трехуровневый заявление.[4] В наиболее распространенной форме три уровня называются презентация, заявление и место хранения, в этом порядке. Веб-браузер - это первый уровень (презентация), механизм, использующий некоторые технологии динамического веб-содержимого (например, ASP, CGI, Холодный синтез, Дротик, JSP / Java, Node.js, PHP, Python или же Рубин на рельсах ) - средний уровень (логика приложения), а база данных - третий уровень (хранилище).[4] Веб-браузер отправляет запросы на средний уровень, который обслуживает их, выполняя запросы и обновления в базе данных, а также создает пользовательский интерфейс.

Для более сложных приложений трехуровневое решение может оказаться недостаточным, и может быть выгодно использовать n-уровневый подход, где наибольшее преимущество состоит в разбиении бизнес-логики, которая находится на уровне приложения, на более мелкую. модель.[4] Еще одно преимущество может заключаться в добавлении уровня интеграции, который отделяет уровень данных от остальных уровней, предоставляя простой в использовании интерфейс для доступа к данным.[4] Например, доступ к данным клиента можно получить путем вызова функции list_clients () вместо выполнения запроса SQL непосредственно к клиентской таблице в базе данных. Это позволяет заменять базовую базу данных без каких-либо изменений на других уровнях.[4]

Некоторые считают веб-приложение двухуровневой архитектурой. Это может быть «умный» клиент, который выполняет всю работу и запрашивает «тупой» сервер, или «тупой» клиент, полагающийся на «умный» сервер.[4] Клиент будет обрабатывать уровень представления, сервер будет иметь базу данных (уровень хранения), а бизнес-логика (уровень приложения) будет находиться на одном из них или на обоих.[4] Хотя это увеличивает масштабируемость приложений и разделяет отображение и базу данных, это по-прежнему не позволяет получить настоящую специализацию уровней, поэтому большинство приложений перерастут эту модель.[4]

Деловое использование

Новой стратегией компаний, производящих прикладное программное обеспечение, является предоставление веб-доступа к программному обеспечению, которое ранее распространялось как локальные приложения. В зависимости от типа приложения может потребоваться разработка совершенно другого интерфейса на основе браузера или просто адаптация существующего приложения для использования другой технологии представления. Эти программы позволяют пользователю оплачивать ежемесячную или годовую плату за использование программного приложения без необходимости устанавливать его на локальный жесткий диск. Компания, которая следует этой стратегии, известна как поставщик услуг приложений (ASP), а ASP в настоящее время привлекают большое внимание в индустрии программного обеспечения.

Нарушения безопасности в таких приложениях вызывают серьезную озабоченность, поскольку они могут касаться как корпоративной информации, так и данных частных клиентов. Защита этих ресурсов - важная часть любого веб-приложения, и есть некоторые ключевые рабочие области, которые необходимо включить в процесс разработки.[5] Сюда входят процессы аутентификации, авторизации, обработки активов, ввода, регистрации и аудита. Встраивание безопасности в приложения с самого начала может быть более эффективным и менее разрушительным в долгосрочной перспективе.

Облачные вычисления модельные веб-приложения программное обеспечение как сервис (SaaS). Существуют бизнес-приложения, предоставляемые как SaaS для предприятий за фиксированную или зависящую от объема плату. Другие веб-приложения предлагаются бесплатно, часто принося доход от рекламы, отображаемой в интерфейсе веб-приложения.

Разработка

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

Использование фреймворков веб-приложений часто может уменьшить количество ошибок в программе, как за счет упрощения кода, так и за счет того, что одна группа может сконцентрироваться на фреймворке, а другая - на конкретном варианте использования. В приложениях, которые подвергаются постоянному взлом попытки в Интернете, связанный с безопасностью проблемы могут быть вызваны ошибками в программе. Платформы также могут способствовать использованию передового опыта[7] Такие как ПОЛУЧИТЬ после POST.

Кроме того, есть потенциал для разработки приложений на Операционные системы Интернета, хотя в настоящее время не так много жизнеспособных платформ, которые подходят для этой модели.

Приложения

Примерами браузерных приложений являются простые офисные программы (текстовые процессоры, электронные таблицы, и инструменты презентации ), но также может включать более сложные приложения, такие как управление проектами, системы автоматизированного проектирования, редактирование видео, и торговая точка.

Смотрите также

Рекомендации

  1. ^ Алекс Чаффи (17 августа 2000). "Что такое веб-приложение (или" веб-приложение ")?". Получено 2008-07-27.
  2. ^ Дэвидсон, Джеймс Дункан; Трус, Дэнни (1999-12-17). Спецификация сервлетов Java («Спецификация») Версия: 2.2 Окончательный выпуск. Sun Microsystems. стр. 43–46. Получено 2008-07-27.
  3. ^ «Динамический HTML и XML и что такое XMLHttpRequest Object». Девтехносис. Получено 2020-06-02.
  4. ^ а б c d е ж грамм час я j Петерсен, Джереми. «Преимущества использования n-уровневого подхода для веб-приложений».
  5. ^ «Лучшие советы по безопасной разработке приложений». Dell.com. Архивировано из оригинал на 2012-05-22. Получено 2012-06-22.
  6. ^ Множественный (вики). «Фреймворк веб-приложений». Докфорж. Получено 2010-03-06.
  7. ^ Множественный (вики). "Рамки". Докфорж. Получено 2010-03-06.

внешняя ссылка