Вы находитесь на странице: 1из 22

Skillbox +

Виды интеграций

Евгений Скориков
Главный архитектор, AWG

СКАЧАНО С WWW.DMC.RIP - ПРИСОЕДИНЯЙСЯ!


Skillbox +

Виды интеграций
Клиентское ЦОД
устройство

Front 3
Клиент ПО 1 Middle 4 Back
Серверная Серверная
1 часть часть
IT-системы 1 IT-системы 1
Клиент ПО 2
6
2 5
Серверная
Клиентское
часть
устройство IT-системы 2

ПО 3

Ещё есть взаимодействия библиотек (для разработчиков).


Skillbox +

1. Front — Front

Интеграция Windows-приложений: COM, COM+, DCOM, ActiveX…

Есть общие протоколы интеграций:

1. Между окнами сайтов

2. Мобильное приложение — сайт

3. Мобильное приложение — мобильное приложение

4. (Смотри статьи в литературе)

Но…

1 000 устройств х 100 ОС х 10 браузеров = 1 млн вариантов

= очень редкое изменение API


Skillbox +

2. Клиентские
устройства
1. Физическое взаимодействие (Bluetooth, USB, HDMI, PS/2, ...)

2. Протокол взаимодействия...

3. API взаимодействия

4. У десятков тысяч устройств

5. С десятками версий

6. В квадрате
Skillbox +

2. Интеграция через
сервер
Взаимодействие через cервер и приложение.

Google Fitness
Store

Mobile Devices

Google Fit APIs Google Fit APIs

Mobile App Web App

Device
Client Divice
Sensors

Wearable Web Browser


Devices
Skillbox +

3. Front — Back (Middle)

1. Транспорт взаимодействия

1.1. TCP — структурированные данные

1.2. UPD — потоковые данные (звук, видео…)

2. Протокол взаимодействия

2.1. Для сайта — HTTP

2.2. Для мобильного приложения / одностраничного приложения

2.2.1. REST

2.2.2. SOAP (устаревает)

2.2.3. Специальные протоколы framework


Skillbox +

3. Структурированные
данные. Запрос — ответ
Запрос — ответ
Браузер Сервер

Запрос страницы

Отображение
страницы
Skillbox +

3. Отрисовка страницы
сайта
Skillbox +

3. Структурированные
данные. Real-time?
Нужно как-то передать в браузер 1 событие.
Браузерный чат

Браузер 1 Браузер 2
Сервер
клиента клиента

Запрос данных

Отображение
данных

Передача ответа
Отображение ответа
Skillbox +

3. Real-time? Polling

Не самое лучшее решение.


Браузерный чат

Браузер 1 Браузер 2
Сервер
клиента клиента

Запрос данных Отображение


данных
Есть ответ?
Нет ответа
Есть ответ?
Нет ответа

Передача ответа
Есть ответ?
Нет ответа
Skillbox +

3. Real-time!
Браузерный чат

Браузер 1 Браузер 2
Сервер
клиента клиента

Запрос данных

Отображение
данных

Передача ответа
Отображение ответа

1. Long Polling
2. WebSockets
3. Протокол Server-Sent Events
Плюсы/минусы — см. Литературу
Skillbox +

4,5. Middle — Back

1. SOAP (устаревает, иногда проектирует аналитик)

2. REST (иногда проектирует аналитик)

3. RPC

4. Протоколы framework/инструментов

a. Для баз данных — jdbc/odbc


Skillbox +

6. Межсерверная
интеграция
Skillbox +

Синхронная/
асинхронная
межсерверная
интеграция
Skillbox +

Синхронная/асинхронная

Синхронная

1. Я жду ответа

2. «Скажи мне, ты меня любишь?»

Асинхронная

1. Я не жду ответа

2. «Передай Васе, что Оля его любит»


Skillbox +

Быстрая асинхронная

● Нам обязательно ждать ответа?

● Можно что-нибудь делать ещё, поглядывая на ответ?


Skillbox +

Зависимость синхронной
Запрос

Функционал
ПО 1 Х
ПО 2
Ответ

Примеры:

1. Пересчёт корзины внешним промодвижком

2. Запрос одобрения проведения перевода (деньги есть?)

Что, если ПО 2 падает ?


Skillbox +

Код синхронной
Запрос

Функционал
ПО 1 Х
ПО 2
Ответ

Функция ДобавитьВКорзину (НовТовар, НовКол-во)

1. Добавить в данные корзины новые данные

2. Вызвать Функционал Х расчёта Промо

3. Получить ответ Промо по корзине

4. Отобразить корзину с Промо

Конец функции
Skillbox +

Код асинхронной
Запрос

Функционал
ПО 1 Х
ПО 2
Ответ

Функция ДобавитьВКорзину Функция СлушатьОтветОтПромо


(НовТовар, НовКол-во)
1. Получить ответ Промо
1. Показать колёсико по корзине (какой корзине?)
2. Добавить в данные корзины 2. Скрыть колёсико
новые данные
3. Отобразить корзину с Промо
3. Вызвать функционал Х расчёта
Конец функции
промо
Конец функции

Что, если корзина изменится, не дождавшись ответа?


Skillbox +

Код асинхронной
Запрос

Функционал
ПО 1 Х
ПО 2
Ответ

Функция ДобавитьВКорзину Функция СлушатьОтветОтПромо


(НовТовар, НовКол-во)
1. Получить ответ Промо
1. Показать Колёсико по корзине версии Z2
2. Добавить в данные корзины новые 2. Взять текущую версию
данные. Инкремент версии Z корзины Z1
3. Сохранить корзину текущей 3. Если Z1 = Z2 То
версии Z
4. Скрыть колёсико
4. Вызвать Функционал Х расчёта
5. Отобразить корзину с Промо
Промо по корзине версии Z
Конец функции
Конец функции
Skillbox +

Итог

1. Синхронная. Асинхронная
2. Частые виды интеграций
a. Межсерверная
b. Front — Back (Middle)
c. Front — Front по типовым задачам (аутентификация через FB,
Google…)
Skillbox +

Спасибо
за внимание!

Вам также может понравиться