rambler.ios #8 - Сервис-ориентированная архитектура
TRANSCRIPT
Про что поговорим
• Что такое SOA?
• Роль сервисного слоя
• Пример SOA для простого приложения
• Преимущества SOA
8
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
Реализация не скрыта протоколом
• Нарушение слоистой архитектуры
• Открытие подробностей реализации
• Доступ к Core-компонентам
14
16
Сервисы зависят от сервисов
• Плохая ответственность зависимого
• "Большой" сервис недостаточно абстрактен
• Сервис решает не свою задачу
Наличие состояния
• Дополнительное место с состоянием
• Непредсказуемость поведения
• Часто является состоянием модуля
23
Пример
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