3. Веб-служба, веб-сервис (англ. web
service) — идентифицируемая веб-
адресом программная система со
стандартизированными интерфейсами.
4. Веб-службы могут взаимодействовать
друг с другом и со сторонними
приложениями посредством
сообщений, основанных на
определённых протоколах (SOAP, XML-
RPC, REST и т. д.). Веб-служба
является единицей модульности при
использовании сервис-
ориентированной архитектуры
приложения.
5.
6. В обиходе веб-сервисами называют
услуги, оказываемые в Интернете. В
этом употреблении термин требует
уточнения, идёт ли речь о поиске, веб-
почте, хранении документов, файлов,
закладок и т. п. Такими веб-сервисами
можно пользоваться независимо от
компьютера, браузера или места
доступа в Интернет.
8. Веб-службы обеспечивают взаимодействие
программных систем независимо от платформы.
Например, Windows-C#-клиент может
обмениваться данными с Java-сервером,
работающим под Linux.
Веб-службы основаны на базе открытых
стандартов и протоколов. Благодаря
использованию JSON/XML достигается простота
разработки и отладки веб-служб.
Использование интернет-протокола
обеспечивает HTTP-взаимодействие
Достоинства
9. Меньшая производительность и больший размер
сетевого трафика за счёт использования текстовых
JSON/XML-сообщений. Однако на некоторых веб-
серверах возможна настройка сжатия сетевого трафика.
Аспекты безопасности. Ответственные веб-службы
должны использовать кодирование, возможно —
требовать аутентификации пользователя. Достаточно ли
здесь применения HTTPS, или предпочтительны такие
решения, как XML Signature, XML Encryption или SAML —
должно быть решено разработчиком.
Недостатки
11. (англ. client–server) — вычислительная или
сетевая архитектура, в которой задания
или сетевая нагрузка распределены между
поставщиками услуг, называемыми
серверами, и заказчиками услуг,
называемыми клиентами.
12. Обычно эти программы расположены на разных
вычислительных машинах и взаимодействуют
между собой через вычислительную сеть
посредством сетевых протоколов, но они могут
быть расположены также и на одной машине.
15. Так как все вычисления выполняются на
сервере, то требования к компьютерам, на
которых установлен клиент, снижаются.
16. Все данные хранятся на сервере, который, как
правило, защищён гораздо лучше большинства
клиентов. На сервере проще организовать контроль
полномочий, чтобы разрешать доступ к данным
только клиентам с соответствующими правами
доступа.
20. Неработоспособность
сервера может сделать
неработоспособной всю
вычислительную сеть.
Неработоспособным
сервером следует считать
сервер,
производительности
которого не хватает на
обслуживание всех
клиентов, а также сервер,
находящийся на ремонте,
профилактике и т. п.
22. «REST» был введён Роем Филдингом
, одним из создателей протокола
«HTTP», лишь в 2000 году. В своей
диссертации «Архитектурные стили и
дизайн сетевых программных
архитектур» в Калифорнийском
университете в Ирвайне он подвёл
теоретическую основу под способ
взаимодействия клиентов и серверов
во Всемирной паутине,
абстрагировав его и назвав
«передачей представительного
состояния».
История
23. REST -
REpresentational
State
Transfer
передача состояния представления
25. Модель клиент-сервер (client-server)
Отсутствие состояния (stateless)
Кэширование (cacheable)
Единообразие интерфейса (uniform interface)
Слои (layered system)
* Код по требованию (code on demand)
Требования к арх-ре REST
26. Сервер не содержит данных клиента
между запросами
Состояния сессий хранятся на клиенте
Каждый запрос содержит достаточно
информации для обработки
Клиент инициирует отправку запросов,
когда он готов перейти в новое состояние
Стейтлес
27. Кеш на сервере (Redis)
Кеш на клиенте (хранение ассетов)
HTTP/1.1 кешинг
Proxy
Кешировани
28. - Задает интерфейс(пораядок/протокол
взаимодействия)
- Интерфейсы позволяют каждому из сервисов
развиваться независимо.
- Упрощает и разделяет арх-ру
- Фундаментально для всей концепции REST’а:
HTTP методы (GET POST PUT DELETE)
URIs (имя ресурсов)
HTTP ответы: коды(2**, 3**, 4**, 5**)
https://app.swaggerhub.com/apis/lavandosovich/roo
ms_elama_api/1.0.0
Единообразие Интерфейса
29. Клиент не может навернека знать, кто
именно отдал респонс (сервер, прокси,
кеш, мидлвейр(прослойка))
Повышает маштабируемость
Слои
30. *Код по требованию
Сервер может расширять клиентские
возможности – передача исполнимой(Java-
applet, JavaScript сценарий) логики на
клиент