Веб-приложение - распределенный приложение, в котором клиентом выступает браузер, а сервером - веб-сервер. Браузер может быть реализацией так называемых тонких клиентов. Браузер способен отображать веб-страницы и, как правило, входит в состав операционной системы, а функции его обновления и сопровождения лежат на поставщике операционной системы. Логика приложения сосредотачивается на сервере, а функция браузера заключается в основном в отображении информации, загруженной по сети с сервера, и передаче обратно данных пользователя. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, и веб-приложения, таким образом, является межплатформенной сервисами. Вследствие этой универсальности и относительной простоты разработки веб-приложения стали широко популярными в конце 1990-х - начале 2000-х годов.
Print Screen Интернет-анимации.
Технические особенности
Существенным преимуществом построения веб-приложений для поддержки стандартных функций браузера заключается в том, что функции должны выполняться независимо от операционной системы данного клиента. Вместо того, чтобы писать разные версии дляMicrosoft Windows, Mac OS X, GNU / Linux и других операционных систем, приложение создается один раз для произвольно выбранной платформы и на ней разворачивается. Однако разная реализация HTML, CSS, DOM и других спецификаций в браузерах может вызвать проблемы при разработке веб-приложений и дальнейшей поддержки. Кроме того, возможность полностью настраивать многие параметры браузера (например, размер шрифта, цвета, отключение поддержки сценариев) может препятствовать корректной работе приложения.
Другой (менее универсальный) подход состоит в использовании Adobe Flash или Java - апплетов для полной или частичной реализации пользовательского интерфейса.Поскольку большинство браузеров поддерживают эти технологии (как правило, с помощью плагинов ), Flash - или Java - приложения могут выполняться с легкостью. Поскольку они предоставляют программисту больший контроль над интерфейсом, они способны обходить многие несовместимости в конфигурациях браузеров, хотя несовместимость между Java или Flash реализациями на стороне клиента может приводить к различным осложнениям. В связи с архитектурным сходством с традиционными клиент-сервернымиприложениями, в некотором роде "толстыми" клиентами, существуют споры относительно корректности отнесения подобных систем к веб-приложений; альтернативный термин "Богатый Интернет приложение" ( англ. Rich Internet Application ).
Устройство веб-приложений
Веб-приложение получает запрос от клиента и выполняет вычисления, после этого формирует веб-страницу и отправляет ее клиенту по сети с использованием протокола HTTP.Именно веб-приложение может выступать как клиент других служб, например, базы данных или другого веб-приложения, расположенного на другом сервере. Ярким примером веб-приложения является система управления содержанием статей Википедии : множество ее участников могут участвовать в создании сетевой энциклопедии, используя для этого браузеры своих операционных систем (Microsoft Windows, GNU / Linux или любая другая операционная система) и не загружая дополнительных выполняемых модулей для работы с базой данных статей.
Для большей интерактивности и производительности был разработан новый подход к разработке веб-приложений, названный AJAX, и который сейчас является стандартным де-факто. При использовании Ajax страницы веб-приложения способны отправлять веб-запросы к серверу в фоновом режиме и не перезагружаются целиком, а лишь догружают необходимые данные с сервера, что значительно ускоряет работу и делает ее более удобной.
Для создания веб-приложений на стороне сервера используются разнообразные технологии и языки программирования
Название |
Лицензия |
Веб-сервер |
ASP |
владельческие |
специализированный |
ASP.NET |
владельческие |
специализированный |
Java |
свободная |
множество, в частности свободных |
Perl |
свободная |
практически любой |
PHP |
свободная |
практически любой |
Python |
свободная |
практически любой |
Ruby |
свободная |
практически любой |
На стороне клиента используется:
-
JavaScript
-
Flash
-
Java / JavaFX
-
ActiveX
-
Silverlight