stringtranslate.com

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

Скриншот Horde , коллективного программного обеспечения и веб-приложения с открытым исходным кодом, 2007 г.

Веб -приложение (или веб-приложение ) — это прикладное программное обеспечение , доступ к которому осуществляется с помощью веб-браузера . Веб-приложения предоставляются во Всемирной паутине пользователям с активным сетевым подключением. [1]

Одностраничный и прогрессивный — два подхода к веб-сайту , которые делают его более похожим на нативное приложение.

История

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

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

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

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

« Прогрессивные веб-приложения » — термин, придуманный дизайнером Фрэнсис Берриман и инженером Google Chrome Алексом Расселом в 2015 году [5], относится к приложениям, использующим новые функции, поддерживаемые современными браузерами, которые изначально работают внутри вкладки веб-браузера, но позже могут работать полностью в автономном режиме и могут быть запущены без ввода URL-адреса приложения в браузере.

Структура

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

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

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

Безопасность

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

Разработка

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

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

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

Ссылки

  1. ^ "Что такое веб-приложение?". stackpath.com . Stack Path. Архивировано из оригинала 2022-08-15 . Получено 2022-08-15 . Веб-приложение — это компьютерная программа, которая использует веб-браузеры и веб-технологии для выполнения задач через Интернет.
  2. ^ Лиам Тунг (15.06.2020). «Создатель JavaScript Эйх: Мой взгляд на 20 лет ведущего в мире языка программирования». ZDNet . Архивировано из оригинала 26.09.2023 . Получено 18.10.2021 .
  3. ^ Дэвидсон, Джеймс Дункан; Ковард, Дэнни (1999-12-17). Спецификация сервлетов Java («Спецификация») Версия: 2.2 Финальный выпуск. Sun Microsystems . С. 43–46. Архивировано из оригинала 2010-01-07 . Получено 2008-07-27 .
  4. ^ Джей Хоффманн (2019-03-04). «Что вообще означает AJAX?». Архивировано из оригинала 2021-10-18 . Получено 2021-10-18 .
  5. ^ Рассел, Алекс. «Прогрессивные веб-приложения: избавляемся от вкладок, не теряя души». Архивировано из оригинала 24 марта 2021 г. Получено 15 июня 2015 г.
  6. ^ abcdefghi Петерсен, Джереми (4 сентября 2008 г.). «Преимущества использования n-уровневого подхода для веб-приложений». Архивировано из оригинала 1 декабря 2017 г. Получено 24 ноября 2017 г.
  7. ^ "Лучшие советы по безопасной разработке приложений". Dell.com. Архивировано из оригинала 2012-05-22 . Получено 2012-06-22 .
  8. ^ Multiple (wiki). "Web application framework". Docforge . Архивировано из оригинала 2020-06-20 . Получено 06.03.2010 .

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