Чем отличаются веб-сервис, веб-приложение и сайт

Серьёзный программист скажет, что это части одной системы, а не виды продуктов. А потом выдаст: «Делаем не сайт, а веб-приложение, — или, — Сайт готов, но нужно ещё подключить веб-сервисы». Как это понимать?

Веб-сервис, веб-приложение, сайт

Только показываем или взаимодействуем?

Сравним блинную в торговом центре и федеральную сеть доставки пиццы.

Блинной хватает онлайн-визитки с указанием, какие блины она жарит, где находится. Можете анонсировать там скидки и мастер-классы, размещать срочные объявления: «Сегодня закрыты. Нет воды».

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

Как работает веб-приложение

Повар раскатал тесто, выложил начинку, отправил пиццу в печь, упаковал в коробку для доставки. Так вот, коробка — это сайт, печь — веб-сервис, а повар — веб-приложение. Пицца, коробка, печь, повар — это не отдельные услуги, а часть единого процесса.

Перейдём от метафоры к реальности.

«Реализуем архитектуру “клиент-сервер”,» — объявили разработчики. Что это значит: клиент только «просит» сервер поработать и выдать результат. Бизнес-процесс выполняется на сервере, а не на устройстве клиента. Веб-приложение — та часть кода на сервере, которая выполняет бизнес-процессы.

Веб-сервис — ещё более техническое понятие. Если веб-приложение хоть как-то касается клиента, то веб-сервис работает не с клиентом, а с другими приложениями и сервисами. Это код для другого кода.

Поясним на примере.

Заказчик пиццы при оформлении вводит адрес, контакты, номер карты. На сервер отправляется команда «Оформляй!» Сервер, а точнее, приложение на сервере, вычисляет стоимость доставки, применяет скидки, начисляет бонусы, записывает заказ в базу, уведомляет кухню и курьера, связывается с банком для оплаты, создаёт проводку для бухгалтерии. Проделав всё это, сервер отчитывается: «Заказ оформлен!» Заказчик видит уведомление.

Где тут веб-сервис? Там, где пиццерия связывается с банком, чтобы снять деньги со счёта плательщика. Он не видит, как сервер опрашивает банк: хватает ли денег на карте, правильно ли введены данные, не состоит ли карта в чёрном списке. С банком общается вспомогательный код — «веб-сервис». Ещё есть второй веб-сервис, для сбора метрик, и третий, для имейл-рассылок.

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

К чему готовиться

Веб-приложение помогает компании расти благодаря тому, что:

  1. Работает даже на маломощных устройствах (оно только показывает результат на девайсе клиента, а всё самое сложное происходит на сервере).
  2. Не нуждается в разных версиях ПО для отдельных операционных систем (обойдётся одной универсальной).
  3. Даёт возможность контролировать и хранение данных, и выполнение бизнес-процессов.
  4. Позволяет запускать новые онлайн-услуги, обходить конкурентов.

Но вместе с тем оно приносит новые трудности:

  • Усложняется разработка, которая стоит дороже и делается дольше, чем сайт-визитка;
  • Возникают дополнительные расходы (на аренду сервера или покупку собственного, хранение резервных копий, зарплату сисадмину и нескольким программистам);
  • Уходит время на выпуск обновлений, исправление ошибок.

Коротко о главном

В обиходе под сайтом понимают справочную: лендинг, портфолио, визитку. Пользователь ничего не делает, а только читает, что написано.

Под веб-приложением имеют в виду нечто более сложное: интернет-магазин, онлайн-банк, электронные госуслуги. Там есть взаимодействие с клиентом.

Говоря «мы разрабатываем веб-сервис», подразумевают, что пишут вспомогательный код. Для сбора метрик, например.

Технически приложение и сервис — не виды продуктов, а детали пазла. Малый оффлайн-бизнес обойдётся без них, средний и крупный онлайн-бизнес — нет. Пиццерия с онлайн-заказами никак не может быть простым сайтом.

Ваше сообщение было успешно отправлено. Мы скоро с Вами свяжемся!