Мастерская IT-решений
149 subscribers
45 photos
2 videos
30 links
О проектировании систем и их взаимодействии. Теория и практические кейсы
Download Telegram
#rest #soap
Споры об этих способах интеграции не утихнут никогда. Знакомить с сутью этих способов здесь не будем. Об этом написано немало. Поговорим о том, в каких случаях лучше применять Rest, а в каких soap. Позже мы подробно разберём некоторые аспекты

Ориентированность
REST ориентирован на доступ к ресурсам. Является простым интерфейсом управления информацией (сущностями) без дополнительных прослоек (конверты, xml и пр.). Основным потребителем считаются люди. Пример: создать новый счет у клиента, удалить шаблон автоплатежа
SOAP - на исполнение удалённых сервисов. Полезен для выполнения транзакций (операций). Основным потребителем считаются компьютеры. Пример: подтвердить снятие средств, перевести средства


Форматы
REST поддерживает xml и json
SOAP работает только с xml

Протоколы
SOAP может использоваться с протоколами SMTP, FTP, HTTP, HTTPS
Rest обычно HTTP и HTTPS


Хранение состояний
Rest - Stateless
Каждый запрос клиента к серверу должен содержать всю информацию, необходимую для выполнения этого запроса, без хранения какого-либо контекста на стороне сервера. Состояние сеанса целиком хранится на стороне клиента.

SOAP - Stateful. Состояние клиента может храниться на сервере, что означает необязательность передачу состояния клиента при каждом запросе с клиента. это протокол без сохранения состояния, но разработчик может встроить в заголовок механизмы управления сеансом, чтобы встроить состояние в транзакцию


Использование ресурсов
REST «ест» меньше ресурсов, чем SOAP.
Он менее ресурсоемкий, потому что отсутствуют доп.слои и не нужно тратить время на парсинг запроса, чтобы понять, что именно нужно сделать в запросе. Кроме того, REST легко масштабируется. Благодаря своей производительность REST реализовывают в случае интенсивно используемых API (Google, Яндекс и пр)

У SOAP объемные сообщения (даже пустой envelope занимает 158 байт. Это не много, но больше, чем пустой json), но тк SOAP аккумулирует в себе целый пакет WS-стандартов, то в него заложено больше возможностей, о которых поговорим позже.

Слои
SOAP: необходим wsdl- документ, который описывает методы, доступные клиенту для вызова. Сложность в том, что клиенту необходимо создать обертки для каждого метода, которые он будет вызывать у выбранного сервиса. И неправильное обновление описания веб-сервиса может привести к поломке клиента.
REST: интерфейс всегда один: CRUD. Преимущество данном стиля в том, что этот интерфейс гладко ложится на методы протокола http. А сущности идентифицируются при помощи URI.
Channel name was changed to «Мастерская IT-решений»
#rest #soap
Поговорим об областях применения REST и SOAP.

🔸Где хорош SOAP
SOAP позволяет передавать данные в децентрализованной, распределенной среде. Он также имеет множество механизмов веб-безопасности. Эти качества делают его идеальным для корпоративных решений.
Сервер хранит информацию о клиенте и использует ее в серии запросов или цепочке операций. Хотя это требует больше ресурсов сервера и пропускной способности, это важно при выполнении повторяющихся или цепных задач, например, банковских переводов.
SOAP не зависит от базового транспортного протокола, поэтому не обязательно использовать HTTP. Вместо этого можно использовать SMTP (Simple Mail Transfer Protocol), JMS (Java Messaging Service) или другой транспортный протокол, в зависимости от приложения.

🔹Где хорош REST
В REST отсутствуют некоторые встроенные функции безопасности, которые есть в SOAP – но они и не нужны при работе с публичными данными и сервисами.
Все вызовы REST API должны быть без статических данных, тк этот подход stateless. Это означает, что каждое взаимодействие является независимым, поэтому каждый запрос и ответ содержат всю информацию, необходимую для завершения взаимодействия. Поскольку сервер воспринимает каждый запрос как новый, он не хранит информацию о прошлых запросах. Это значительно сокращает объем необходимой памяти сервера.
Это повышает производительность, так как серверу не нужно предпринимать дополнительные действия или получать прошлые данные при выполнении запроса. Поскольку REST не имеет статического характера, данные можно кэшировать, что также экономит ресурсы сервера и пропускную способность. Наконец, API REST могут использовать различные форматы данных, например, JSON, который легче XML. Это делает их более быстрыми и эффективными, чем большинство SOAP API.

📚Итого

🟠SOAP лучше применять:
✔️для больших и сложных структур данных
✔️для выполнения операций
для случаев, где необходимо хранить состояние (корзина покупателя в интернет-магазине)
✔️Где важна Конфиденциальность и безопасность передаваемых данных

🟣Где хорош REST:
✔️Где производятся стандартные CRUD-операции с данными
Привет! Меня зовут Борисова Дарья. Я работаю в сфере IT уже больше восьми лет, и этот путь начался еще на первом курсе университета — я инженер-программист по образованию.

Сначала моя карьера была связана исключительно с разработкой, но вскоре я открыла для себя мир аналитики. Оказалось, что здесь гораздо больше свободы: ты можешь предлагать идеи, выбирать технологии, обсуждать решения с заказчиками и видеть, как твои задумки воплощаются в жизнь. Системный анализ — это целая вселенная возможностей, где одна технология помогает создавать другие!

За эти годы я накопила огромный багаж знаний, которым теперь хочу делиться с вами. Если вам интересно развиваться в направлении архитектуры, если вас увлекают проектирование сложных систем и интеграция, то добро пожаловать в мой блог! Здесь мы будем говорить о современных подходах, лучших практиках и новых идеях в мире IT.
👍5
Обычный сервер VS веб-сервер
#web #сервер

Многие путают понятия обычного сервера приложений и веб-сервера. Давайте разберёмся, кто есть кто.

Веб-сервер

Веб-сервер — это специализированный сервер, который занимается доставкой веб-страниц через Интернет. Основная функция веб-сервера — принимать запросы от браузеров клиентов и отправлять обратно контент, такой как HTML-документы, CSS-стили, изображения и JavaScript-файлы. Для этой цели веб-сервер использует протокол HTTP (HyperText Transfer Protocol), который управляет передачей данных между клиентом и сервером.

Когда пользователь вводит адрес сайта в браузер, происходит следующее:
1. Браузер отправляет HTTP-запрос на веб-сервер.
2. Веб-сервер находит нужный файл (например, страницу) и возвращает его клиенту.
3. Браузер отображает полученную страницу.

Таким образом, веб-сервер играет роль посредника между пользователем и сайтом.
Сервер приложений

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

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

Основные отличия

- Тип контента: веб-сервер лучше подходит для статичного контента (HTML-страницы, изображения), тогда как сервер приложений нужен для динамичного контента, когда данные генерируются в режиме реального времени.
- Поддерживаемые технологии: веб-сервер поддерживает скрипты вроде PHP, ASP или JSP, а сервер приложений дополнительно работает с уровнями приложений, такими как управление объектами, транзакциями и сообщениями.
- Масштабируемость: сервер приложений способен обрабатывать большие объёмы трафика благодаря поддержке многопоточности и кластеризации.

Заключение

Итак, серверы выполняют важные роли в обеспечении работы интернета и корпоративных сетей. Веб-серверы обеспечивают доставку веб-страниц, а серверы приложений поддерживают выполнение более сложных операций и взаимодействие с различными системами внутри организаций. Выбор подходящего сервера зависит от ваших потребностей: если вам нужна простая доставка контента, достаточно веб-сервера, а если требуются мощные вычислительные ресурсы и обработка динамической информации, лучше обратиться к серверу приложений.
👍2