rambler.ios #8 - Сервис-ориентированная архитектура

38
SOA или Что нам стоит дом построить? Цыганов Станислав @DevAlloy

Upload: rambler-ios

Post on 12-Apr-2017

298 views

Category:

Technology


3 download

TRANSCRIPT

SOA или Что нам стоит дом

построить?

Цыганов Станислав@DevAlloy

2

MVCMVVMM

VP

VIPER

3

MVCMVVMM

VPVIP

ER

0. Предисловие

5

Слоистая архитектура

Interface

6

Слоистая архитектура

Interface

7

Presentation

Service

Core

Service Oriented Architecture

Про что поговорим

• Что такое SOA?

• Роль сервисного слоя

• Пример SOA для простого приложения

• Преимущества SOA

8

1. Теория

SOA Framework• Consumer Interface Layer

• Integration Layer

• Business Process Layer

• Services

• Service Components

• Operational Systems

10

UI

Interactor

Facade

Service Service

Mapper Storage

SystemModels

Сервис

• Единственная ответственность

• Абстрагируется от UI

• Реализация скрыта протоколом

• Нет зависимости сервисов от сервисов

• Отсутствие состояния

11

• Единственная ответственность

• Абстрагируется от UI

• Реализация скрыта протоколом

• Нет зависимости сервисов от сервисов

• Отсутствие состояния

Не единственная ответственность

• Нарушена S в SOLID

• Проблема выделения новых сервисов

• Сложности поддержки и расширения

12

Не абстрагируется от UI

• Решает задачи конкретного модуля

• Сложность повторного использования

13

Реализация не скрыта протоколом

• Нарушение слоистой архитектуры

• Открытие подробностей реализации

• Доступ к Core-компонентам

14

• В протокол выносятся необходимые ресурсы

• Множество реализаций

15

Реализация скрыта протоколом

16

Сервисы зависят от сервисов

• Плохая ответственность зависимого

• "Большой" сервис недостаточно абстрактен

• Сервис решает не свою задачу

17

Нет зависимости сервисов от сервисов

Service

Service

18

Нет зависимости сервисов от сервисов

VC

Service

Service

19

Нет зависимости сервисов от сервисов

VC

Service Service

20

Нет зависимости сервисов от сервисов

VC

Interactor

Service Service

VC

21

Нет зависимости сервисов от сервисов

Service Service

VC

Facade

22

Нет зависимости сервисов от сервисов

Service Service

Наличие состояния

• Дополнительное место с состоянием

• Непредсказуемость поведения

• Часто является состоянием модуля

23

24

Отсутствие состояния

VC

Service

25

Отсутствие состояния

VC

Servicepage

26

Отсутствие состояния

VC

Service

page

27

Отсутствие состояния

VC

Service

NetworkClient Storage

28

Отсутствие состояния

VC

Service

NetworkClient Storage

cache

29

Отсутствие состояния

VC

Service

NetworkClient Storagecache

2. Практика

Пример

31

VC

AuthService NewsService

Пример

32

VC

AuthService NewsService

NetworkClientStorage Mapper

RequestFactorySerializer Handler

Пример

33

VC

AuthService NewsService

NetworkClientStorage Mapper

RequestFactorySerializer Handler

Protocol

Пример

34

VC

AuthService NewsService

VC

NetworkClientStorage Mapper

RequestFactorySerializer Handler

Protocol

Пример

35

VC

AuthService NewsService

VC

FavService

NetworkClientStorage Mapper

RequestFactorySerializer Handler

Protocol

Фабрики

36

ModuleAssembly

ServiceAssembly

CoreComponentsAssembly UtilitiesAssembly

ExtensionServiceAssembly

ModuleAssembly ModuleAssembly

Плюсы• Инкапсуляция части логики

• Повторное использование

• Самодостаточность

• Может использоваться в разных приложениях

• Контракт

• DI

37

Подведем итоги

• SOA как архитектура

• Что такое сервис?

• Чем грозит нарушение принципов

• Плюсы и примеры SOA

38