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

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

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

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

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

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

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

  • Адаптивный веб-дизайн можно использовать для создания веб-приложения - будь то обычный веб-сайт или одностраничное приложение, которое можно просматривать на небольших экранах, которые хорошо работают с сенсорными экранами.
  • Прогрессивные веб-приложения (PWA) - это веб-приложения, которые загружаются как обычные веб-страницы или веб-сайты, но могут предлагать пользователю такие функции, как автономная работа и доступ к оборудованию устройства, традиционно доступный только для собственных мобильных приложений.
  • Гибридные приложения встраивают веб-сайт в собственное приложение, возможно, используя гибридную структуру. Это позволяет разрабатывать с использованием веб-технологий (и, возможно, напрямую копировать код с существующего мобильного веб-сайта), сохраняя при этом определенные преимущества нативных приложений (например, прямой доступ к оборудованию устройства, автономная работа, видимость магазина приложений). Платформы гибридных приложений включают Apache Cordova , Electron , Flutter , Haxe , React Native и Xamarin .

История

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

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

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

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

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

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

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

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

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

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

Интерфейс

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

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

Состав

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

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

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

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

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

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

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

Разработка

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

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

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

Приложения

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

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

использованная литература

внешние ссылки