A веб-приложение (или веб-приложение ) - это прикладное программное обеспечение, которое выполняется на веб-сервере, в отличие от компьютерных программ, которые хранятся локально в операционной системе (ОС) устройства. Пользователь получает доступ к веб-приложениям через веб-браузер с активным подключением к Интернету. Эти приложения программируются с использованием смоделированной структуры клиент-сервер - пользователю («клиенту») предоставляются услуги через внешний сервер, размещенный на стороннем сервере. Примеры часто используемых веб-приложений: электронная почта, розничные продажи в Интернете, банкинг в Интернете и аукционы в Интернете.
Общее различие между динамической веб-страницей любого типа и «веб-приложением» неясно. Веб-сайты, которые, скорее всего, будут называться «веб-приложениями», - это те, которые имеют функции, аналогичные настольному программному приложению или мобильному приложению. HTML5 представил явную языковую поддержку для создания приложений, которые загружаются как веб-страницы, но могут хранить данные локально и продолжать работать в автономном режиме.
Одностраничные приложения больше похожи на приложения, потому что они отвергают более типичную веб-парадигму перехода между отдельными страницами с разными URL-адресами. Одностраничные фреймворки могут использоваться для ускорения разработки такого веб-приложения для мобильной платформы.
Существует несколько способов нацеливания на мобильные устройства при создании веб-приложения:
В более ранних вычислительных моделях, таких как клиент-сервер, вычислительная нагрузка приложения распределялась между кодом на сервере и кодом, установленным на каждом клиенте локально. Другими словами, приложение имело свою собственную предварительно скомпилированную клиентскую программу, которая служила его пользовательским интерфейсом и должна была быть отдельно установлена на персональном компьютере каждого пользователя. Обновление серверного кода приложения обычно также требует обновления клиентского кода, установленного на каждой пользовательской рабочей станции, что увеличивает поддержку стоимости и снижает производительность. Кроме того, и клиентский, и серверный компоненты приложения обычно были жестко привязаны к определенной компьютерной архитектуре и операционной системе, и перенос их на другие часто был недопустимым. дорого для всех приложений, кроме самых крупных (в настоящее время нативные приложения для мобильных устройств также затруднены некоторыми или всеми вышеперечисленными проблемами).
В отличие от этого, веб-приложения используют веб-документы, написанные в стандартном формате, таком как 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, начали делать свои клиентские части все более интерактивными. Сценарий веб-страницы может связываться с сервером для хранения / получения данных без загрузки всей веб-страницы.
В 2014 году был доработан HTML5, который обеспечивает графические и мультимедийные возможности без необходимости использования подключаемых модулей на стороне клиента. HTML5 также обогатил семантическое содержание документов. API и объектная модель документа (DOM) больше не являются второстепенными, а являются фундаментальными частями спецификации HTML5. WebGL API проложил путь для продвинутой трехмерной графики, основанной на холсте HTML5 и языке JavaScript. Они имеют большое значение для создания действительно независимых от платформы и браузера полнофункциональных веб-приложений.
Через Java, JavaScript, DHTML, 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 для предприятий за фиксированную или зависящую от объема плату. Другие веб-приложения предлагаются бесплатно, часто принося доход от рекламы, отображаемой в интерфейсе веб-приложения.
Написание веб-приложений часто упрощается за счет использования среды веб-приложений. Эти структуры облегчают быструю разработку приложений, позволяя группе разработчиков сосредоточиться на тех частях своего приложения, которые являются уникальными для их целей, без необходимости решать общие проблемы разработки, такие как управление пользователями. Многие из используемых фреймворков представляют собой программное обеспечение с открытым исходным кодом.
Использование фреймворков веб-приложений часто может уменьшить количество ошибок в программе, как за счет упрощения кода, так и за счет того, что одна команда может сосредоточиться на framework, в то время как другой фокусируется на конкретном варианте использования. В приложениях, которые постоянно подвергаются попыткам взлома в Интернете, проблемы, связанные с безопасностью, могут быть вызваны ошибками в программе. Платформы также могут способствовать использованию передовых методов, таких как GET после POST.
. Кроме того, существует потенциал для разработки приложений в операционных системах Интернета, хотя в настоящее время не так много жизнеспособных платформ. которые подходят этой модели.
Примеры приложений браузера: простое офисное программное обеспечение (текстовые процессоры, электронные таблицы и инструменты для презентаций ), но также может включать более сложные приложения, такие как управление проектами, автоматизированное проектирование и кассовый терминал.
На Викискладе есть материалы, связанные с веб-приложениями. |