stringtranslate.com

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

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

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

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

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

История

Концепция «веб-приложения» впервые была введена в языке Java в спецификации сервлетов версии 2.2, выпущенной в 1999 году. В то время уже были разработаны и JavaScript, и XML , но объект XMLHttpRequest был представлен только недавно в Internet Explorer 5 как объект ActiveX . [ необходима цитата ] Начиная примерно с начала 2000-х годов, такие приложения, как « Myspace (2003), Gmail (2004), Digg (2004), [и] Google Maps (2005)», начали делать свои клиентские стороны все более и более интерактивными. Скрипт веб-страницы может связываться с сервером для сохранения/извлечения данных без загрузки всей веб-страницы. Эта практика стала известна как Ajax в 2005 году.

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

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

(В настоящее время [ когда? ] собственные приложения для мобильных устройств также страдают от некоторых или всех вышеперечисленных проблем). [ сомнительный – обсудить ]

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

Структура

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

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

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

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

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

Разработка

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

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

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

Ссылки

  1. ^ "Что такое веб-приложение?". stackpath.com . Stack Path. Архивировано из оригинала 2022-08-15 . Получено 2022-08-15 . Веб-приложение — это компьютерная программа, которая использует веб-браузеры и веб-технологии для выполнения задач через Интернет.
  2. ^ abcdef Петерсен, Джереми (4 сентября 2008 г.). «Преимущества использования n-уровневого подхода для веб-приложений». Архивировано из оригинала 1 декабря 2017 г. Получено 24 ноября 2017 г.
  3. ^ "Лучшие советы по безопасной разработке приложений". Dell.com. Архивировано из оригинала 2012-05-22 . Получено 2012-06-22 .
  4. ^ Multiple (wiki). "Web application framework". Docforge . Архивировано из оригинала 2020-06-20 . Получено 06.03.2010 .

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