Skip to content
Karina1996 edited this page Oct 18, 2020 · 20 revisions

Понятия сервиса, веб-сервиса, сервиc-ориентированной и микросервисной архитектуры. Поддерживающие протоколы прикладного уровня.

Лазарева Карина

1. Сервис

ПО как услуга (SaaS) [software as a service (SaaS)]: Категория служб облачных вычислений, в которой потребителю службы облачных вычислений предоставляется тип возможностей приложений [1].

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

В переводе с английского сервис service — это просто услуга, предоставление услуги или обслуживание клиента.

Понятие "сервис" в быту и компьютерных технологиях. Часто данное понятие применяется к гостиничному или ресторанному бизнесу, сфере обслуживания автомобилей и даже к специализированным техническим службам, осуществляющим обслуживание какой-либо техники после ее продажи клиенту. Не менее часто понятие "сервис" встречается и в компьютерном мире. К примеру, в тех же «операционках» Windows (или любых других) существуют специальные сервисные программы и апплеты (компоненты, выполняющие «узкие» задачи), выполнение которых направлено на обслуживание всей системы в целом для предотвращения или устранения сбоев в работе.

2. Веб-сервис

Веб-служба, веб-сервис (англ. web-service) — это сетевая технология, обеспечивающая межпрограммное взаимодействие на основе веб-стандартов.

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

Веб-сервер выступает в качестве сервера приложений, к которым обращаются не конечные пользователи, а сторонние приложения. Это позволяет многократно использовать функциональные элементы, устранить дублирование кода, упростить решение задач интеграции приложений. Веб - сервис - идентифицируемая веб – адресом (строка URI) программа. Программный интерфейс, представленный в машинно-обрабатываемом формате WSDL. Другие системы взаимодействуют с этим веб-сервисом путем обмена сообщениями протокола SOAP. В качестве транспорта для сообщений используется протокол HTTP. Описание веб-сервисов и их API могут быть найдены средствами UDDI. Концептуальная схема технологии приведена на рис.1., а связь между протоколами — на рис.2.

! Протоколы лучше перенести в раздел "Протоколы"

Рис.1 Концепция веб-сервиса none

  • SOAP (Simple Object Access Protocol) — протокол обмена сообщениями между потребителем и поставщиком веб-сервиса;
  • WSDL (Web Services Description Language) — язык описания внешних интерфейсов веб-службы;
  • UDDI (Universal Discovery, Description and Integration) — универсальный интерфейс распознавания, описания и интеграции, используемый для формирования каталога веб-сервисов и доступа к нему.

Рис.2 Связь между протоколами none

Все спецификации, используемые в технологии, основаны на XML и, соответственно, наследуют его преимущества (структурированность, гибкость и т.д.) и недостатки (громоздкость, медлительность) [2].

В веб-сервисах всегда есть клиент и сервер. Сервер – это и есть веб-сервис и иногда его называют endpoint (конечная точка, куда доходят SOAP сообщения от клиента). Примером веб-сервиса может стать компания Amazon. Организация имеет сеть онлайн-магазинов и систем доставок. Она предоставляет веб-сервис, который запрашивает цены на продукты, продаваемые онлайн через amazon.com.

РЕЗЮМЕ

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

3. Сервис-ориентированная и микросервисная архитектура

Архитектура системы – принципиальная организация системы, воплощенная в её элементах, их взаимоотношения друг с другом и средой, а также принципов, направляющих проектирование архитектуры, её создание и эволюцию.

  • Сервис-ориентированная архитектура (service oriented architecture, SOA) - архитектурный стиль, который поддерживает ориентированность на службы и является парадигмой для бизнеса и ИТ. Данный архитектурный стиль предназначен для разработки систем с точки зрения служб, доступных через интерфейс, и результатов действий этих служб. Служба - логическое представление ряда действий, который имеет определенные результаты, является автономным, может быть составлен из других служб и является "черным ящиком" для потребителей службы.

Использование архитектурного стиля SOA может помочь ИС гибко и быстро реагировать на постоянно меняющиеся потребности бизнеса [*].

Пример. Представим классический интернет-магазин. Стандартные модули: UI, бизнес-логика и дата-слой. Возможны способы взаимодействия с сервисом: API REST и веб-интерфейс. При построении монолита все эти вещи будут управляться внутри одного и того же модуля.

  • Микросервисная архитектура (Micro Service Architecture, MSA) – принципиальная организация системы на основе микросервисов и их взаимодействия друг с другом и со средой по сети. Микросервисы — это шаблон сервис-ориентированной архитектуры, в котором приложения создаются как совокупность различных наименьших независимых сервисных единиц. Это программный подход, который фокусируется на разложении приложения на однофункциональные модули с четко определенными интерфейсами.

Эти модули могут быть независимо развернуты и эксплуатироваться небольшими группами, владеющими всем жизненным циклом службы.

Одно из важнейших свойств микросервиса это его независимость от других компонентов приложения. Суть микросервиса по отношению к большому приложению (монолиту) изображена на рис.3.

Рис.3 Микросервисы по отношению к монолиту none

Разбиение на независимые компоненты даёт безусловные и неоспоримые преимущества: легкое понимание контекста, гибкость развития, управления и масштабирования. Но что такого плохого в существующих архитектурных решениях, таких как SOA? В отличии от монолитных архитектурных приложений, микросервисы [4]:

  1. Улучшает изоляцию сбоя компонентов: большие приложения могут продолжить эффективно работать, даже при неисправности какого-то отдельного модуля.
  2. Устраняет приверженность приложения к одному технологическому стеку: если хочешь попробовать новый технологический стек на каком-то сервисе - пожалуйста. Зависимости будут гораздо легче, чем при монолитном, к тому же будет намного проще откатить все вспять. Чем меньше кода в одном приложении, тем легче работать.
  3. Упрощает понимание функционального сервиса для новых сотрудников.

Пример. Представим тот же классический интернет-магазин. Здесь отличие от монолита в том, что у каждого модуля (UI, бизнес-логика и дата-слой) есть свой сервис и своя БД. Они слабо связаны и могут взаимодействовать с различными протоколами (например, REST) через свои границы.

[Сравнение архитектур].

РЕЗЮМЕ

Сервис-ориентированная архитектура — это стиль проектирования ПО. Архитектура делится на две части: функциональные аспекты и аспекты качества обслуживания. Миксросервисная архитектура - стиль разработки, который позволяет создавать приложения в виде набора небольших автономных сервисов, разработанных для бизнес-сферы. Микросервисы в значительной степени получили свое название из-за того, что сервисы здесь меньше, чем в монолитной среде. Тем не менее, микро –о бизнес-возможностях, а не о размере.

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

Многое зависит от собственной организационной структуры. Есть 6 команд, которые буду работать над продуктом? Микросервисная архитектура может подойти. У вас команды из 3-х разработчиков? Вероятно, они будут хорошо строить и поддерживать монолит. Другими факторами являются скорость изменения и сложность. Высокие темпы изменений и высокая сложность могут быть факторами, заставляющими выбрать архитектуру микросервиса [5].

4. Поддерживающие протоколы прикладного уровня

Прикладной уровень (APPLICATION). Необходим для взаимодействия между собой сетевых приложений, таких как web, e-mail, skype и тд.

Задачей данного уровня является обеспечение доступа к сетевым службам.

Функции прикладного уровня:

  • Решение задач, отправка файлов; управление заданиями и системой;
  • Определение пользователей по их логину, e-mail адресу, паролям, электронным подписям;
  • Запросы на соединение с иными прикладными процессами;
Лирическое отступление: прикладные протоколы в стеке TCP/IP

В модели TCP/IP прикладной уровень это единственный уровень, который находится выше транспортного. А в модели взаимодействия открытых систем (OSI) есть еще 2 уровня: уровень представления и сеансовый. Протоколы прикладного уровня TCP/IP определяют форматы и управляют данными, необходимыми для многих распространённых функций обмена данными через Интернет. Наиболее известные протоколы прикладного уровня на рис.4-5.

Рис.4 Протоколы стека TCP/IP none

Почему существуют два транспортных протокола TCP и UDP, а не один из них? Дело в том, что они предоставляют разные услуги прикладным процессам. [7].

Рис.5 Протоколы стека TCP/IP прикладного уровня none

Самый верхний уровень в иерархии протоколов Интернет занимают следующие протоколы прикладного уровня [8]:

  • DNS - распределенная система доменных имен, которая по запросу, содержащему доменное имя хоста сообщает IP адрес;
  • DHCP - протокол динамического конфигурирования узлов;
  • HTTP - протокол передачи гипертекста в Интернет;
  • HTTPS - расширение протокола HTTP, поддерживающее шифрование;
  • FTP - протокол, предназначенный для передачи файлов в компьютерных сетях;
  • Telnet - сетевой протокол для реализации текстового интерфейса по сети;
  • SSH - протокол прикладного уровня, позволяющий производить удаленное управление операционной системой и передачу файлов. В отличие от Telnet шифрует весь трафик;
  • POP3 – протокол почтового клиента, который используется почтовым клиентом для получения сообщений электронной почты с сервера;
  • IMAP - протокол доступа к электронной почте в Интернет;
  • SMTP – протокол, который используется для отправки почты от пользователей к серверам и между серверами для дальнейшей пересылки к получателю;
  • LDAP - протокол для доступа к службе каталогов X.500, является широко используемым стандартом доступа к службам каталогов;
  • XMPP - основанный на XML расширяемый протокол для мгновенного обмена сообщениями в почти реальном времени;
  • SNMP - базовый протокол управления сети Internet.

[Более подробно некоторые из этих протоколов].

РЕЗЮМЕ

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

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

ИСПОЛЬЗУЕМЫЕ ИСТОЧНИКИ

  1. Что такое сервис: характеристика понятия
  2. Веб-сервисы как средство интеграции приложений в WWW
  3. Пример веб-сервиса
  4. Микросервисная архитектура: плюсы и минусы
  5. Монолитная vs Микросервисная архитектура
  6. Что такое REST API?
  7. Протоколы прикладного уровня
  8. Протоколы Интернет прикладного уровня

Замечания: прошу обратить внимание на следующий ГОСТ:

* ГОСТ Р ИСО/МЭК 18384-1-2017 Информационные технологии (ИТ).

Замечаний больше не наблюдаю. Проверила Шляпкина Кристина.

Clone this wiki locally