Перейти к содержимому

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

Systems Innovation Network

0:00 / 0:00

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

241 003 просмотра · 11 лет назад
Systems Innovation Network
102 тыс. подписчиков
241 003 просмотра · 11 лет назад
Пройдите полный курс на нашем сайте: https://www.systemsinnovation.network... Сервис-ориентированная архитектура, или SOA, — это подход к архитектуре распределенных систем, использующий слабо связанные сервисы, стандартные интерфейсы и протоколы для обеспечения бесшовной кроссплатформенной интеграции. Она используется для интеграции широко различающихся компонентов путем предоставления им общего интерфейса и набора протоколов для взаимодействия через так называемую сервисную шину. В этом видео мы обсуждаем использование SOA как новой архитектурной парадигмы, идеально подходящей для проектирования сложных систем. Как мы обсуждали в предыдущих разделах, структура и состав сложных инженерных систем принципиально отличаются от традиционных инженерных систем, которые являются однородными, четко ограниченными, монолитными и относительно статичными; наши сложные системы, напротив, являются гетерогенными, динамичными, неограниченными и состоят из автономных элементов. Моделирование и проектирование этих новых сложных инженерных систем требует, в свою очередь, альтернативной парадигмы в системной архитектуре. Наша новая архитектура должна уметь справляться с ключевыми особенностями сложных инженерных систем, которые мы обсуждали в предыдущих разделах. Во-первых, она должна фокусироваться на сервисах, а не на свойствах компонентов. Также она должна быть ориентирована на интерпретируемость и кроссплатформенную функциональность для работы с высоким уровнем разнообразия компонентов. Для обеспечения автономности компонентов она должна быть гибкой, распределенной и, как мы это называем, слабо связанной. Наконец, она также должна использовать высокий уровень абстракции, чтобы справиться с чрезвычайной сложностью этих систем. За последние несколько десятилетий в ИТ-сфере появилась новая парадигма системной архитектуры, называемая сервисно-ориентированной архитектурой (SOA). Она является ответом на необходимость создания программного обеспечения, адаптированного к распределенным и гетерогенным средам, которые стали более распространены благодаря интернету, и, таким образом, это архитектурная парадигма, хорошо подходящая для проектирования сложных систем. Сервисно-ориентированная архитектура, S.O.A. SOA, или SOA (сокращенно), — это подход к архитектуре распределенных систем, использующий слабо связанные сервисы, стандартные интерфейсы и протоколы для обеспечения бесшовной кроссплатформенной интеграции. Он используется для интеграции широко различающихся компонентов путем предоставления им общего интерфейса и набора протоколов для взаимодействия через так называемую сервисную шину. Поскольку SOA изначально возникла в разработке программного обеспечения, давайте рассмотрим пример из ИТ. Представьте, что я хочу создать новое веб-приложение, которое позволит людям оплачивать парковочные штрафы онлайн. Я мог бы потратить годы на разработку подсистемы, которая функционирует как карта улиц, затем еще одной подсистемы для обработки платежей, и еще одной для входа в систему, аутентификации пользователей и так далее. Или я мог бы просто воспользоваться картографическим сервисом Google, платежным шлюзом от PayPal и сервисом авторизации пользователей от Facebook. В этом случае моя задача заключалась бы в интеграции этих разнообразных сервисов путем создания общего процесса, который бы направлял пользователя в использовании этих различных сервисов для предоставления желаемой функциональности. Таким образом, вместо построения системы, основанной на всех моих различных внутренних компонентах в рамках моего четко ограниченного программного обеспечения, мое новое приложение было бы построено на архитектуре, ориентированной на сервисы, — сервисно-ориентированной архитектуре. Теперь давайте рассмотрим пример за пределами ИТ, чтобы проиллюстрировать ее более общую значимость. Представьте, что я владелец кофейни. Моя цель — предоставлять клиентам еду и напитки в приятной обстановке. Для этого мне нужно объединить множество различных вещей, от кофейного зерна до оборудования, сотрудников и так далее. Мне нужно разработать общую платформу для взаимодействия всех этих элементов и предоставления конечного сервиса. Но давайте рассмотрим эту систему на более формальном языке SOA. Во-первых, каждый компонент системы предоставляет услугу, будь то сотрудник, наливающий кофе, или стулья, на которых сидят люди. Нас, как разработчиков системы, не интересует внутреннее функционирование этих компонентов, потому что нам эта информация не нужна, мы абстрагируем её, инкапсулируя. Только поставщику услуги необходимо знать внутреннюю логику компонента, для нас это просто сервисы. Таким образом, когда клиент расплачивается кредитной картой, он просто проводит картой и вводит PIN-код. Никто в магазине не понимает, как именно завершается транзакция, эта информация есть только у поставщика финансовых услуг, для остальных она абстрагирована посредством инкапсуляции.