Скачиваний:
0
Добавлен:
27.12.2025
Размер:
25.79 Кб
Скачать

5 Слайд

Итак, мы определили, что старые методы не работают. Давайте разберем "атомарную единицу" новой архитектуры — Сервис. Что это такое с точки зрения инженера?

Это не просто кусок кода или функция. Это, в первую очередь, проекция бизнес-задачи. Сервис всегда отвечает на вопрос "Что нужно бизнесу?", а не "Как это записать в базу данных". Например, "Проверить кредитный лимит" или "Зарезервировать товар".

Ключевое свойство сервиса — это его Автономность. Представьте сервис как независимый департамент в крупной корпорации, скажем, Бухгалтерию. Другие отделы не имеют права приходить в бухгалтерию, открывать их сейфы и перекладывать папки. Это было бы нарушением безопасности и хаосом.

Точно так же и в SOA: сервисы не лезут в базы данных друг друга. У каждого сервиса — свой "сейф", свои данные, за целостность которых отвечает только он.

Это создает принцип "Черного ящика" и слабой связанности (Loose Coupling). Внешнему миру все равно, написан сервис на Java или Python, использует он Oracle или PostgreSQL. Мы можем полностью заменить "начинку" сервиса, оптимизировать его работу, и, пока его внешнее поведение не меняется, ни одна другая система этого даже не заметит. Это и есть та самая устойчивость к изменениям, которой нам не хватало в спагетти-архитектуре.

6 Слайд

Если сервисы автономны и скрыты друг от друга, как же они договариваются о взаимодействии? Здесь на сцену выходит понятие Интерфейса.

В парадигме SOA интерфейс — это не просто список функций, это жесткий Контракт. Это публичное обещание сервиса: "Если вы пришлете мне данные в таком формате, я гарантирую, что верну вам результат в таком формате".

Контракт описывает ЧТО делает система, полностью абстрагируясь от того, КАК она это делает.

Давайте вернемся к аналогии с рестораном, она здесь очень уместна. Меню ресторана — это и есть интерфейс. Вы, как клиент (потребитель сервиса), открываете меню и видите: "Стейк, прожарка Medium, цена X". Вам совершенно не нужно знать технологию приготовления, модель плиты или имя повара. Вам важен только результат, описанный в меню.

Если ресторан решит сменить поставщика мяса или купить новую плиту — для вас, как для клиента, ничего не изменится, пока не изменится само меню.

В мире IT такими "меню" являются формальные спецификации, например, WSDL для SOAP-сервисов или OpenAPI для REST. Они позволяют разработчикам разных систем понимать друг друга без необходимости читать чужой программный код.

7 Слайд

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

Решением является Enterprise Service Bus (ESB) или Сервисная Шина Предприятия.

Представьте ESB как универсального переводчика и диспетчера в центре вашей архитектуры. Все сервисы подключаются только к шине, как бытовые приборы вставляются в розетку. Сервису CRM больше не нужно знать адрес Сервиса Склада. Он просто отправляет сообщение в шину: "Мне нужно зарезервировать товар".

Шина берет на себя всю "грязную работу" интеграции: Во-первых, Маршрутизацию. Шина знает, кто именно сейчас отвечает за резервирование товара, и перенаправляет запрос туда. Во-вторых, Трансформацию. Если CRM отправляет данные в современном формате JSON, а старая складская система понимает только древний XML, шина "на лету" переведет сообщение, чтобы обе системы поняли друг друга. В-третьих, Оркестрацию. Шина может выступать дирижером. Получив один заказ от клиента, она может запустить целую цепочку: сначала списать деньги, потом уведомить склад, потом заказать курьера.

Благодаря ESB мы получаем гибкую, управляемую систему, где замена одного компонента не требует перенастройки всей сети.

Соседние файлы в папке реферат_доклад