SlideShare a Scribd company logo
1 of 21
Download to read offline
Введение в 
сервис-ориентированную 
архитектуру
Немного 
жизненного опыта :)
Проблемы некоторых крупных веб-проектов 
• Один репозиторий, много когда, много разработчиков. 
Неудобно. 
• Ответственность каждого конкретного разработчика 
размыта. Все отвечают за всё. 
• Все компоненты в коде проекта тесно связаны между собой. 
Изменение одного компонента может вызвать баги в других. 
• Проект завязан на один конкретный язык программирования. 
3
Как не довести свой проект до жизни такой 
• Определяем компоненты в коде так, чтобы они были 
максимально изолированы. 
• Проектируем интерфейсы для доступа к компонентам так, 
чтобы изменение одних компонент не влияло на изменение 
других. 
• По мере необходимости разносим эти компоненты в разные 
репозитории. 
4
Profit 
• Изменение отдельных модулей не вызывает ошибок в 
совершенно неожиданных местах проекта. 
• В случае, когда был изменен один компонент, не нужно 
релизить весь проект целиком. 
• Каждому разработчику можно назначить ответственность не за 
всё вместе, а только за отдельные вполне конкретные 
компоненты. 
• Разные компоненты можно писать на разных языках 
программирования. 
5
Как этого достичь?
Как этого достичь? 
Используем SOA!
Теория
Enterprise 
Сервис-ориентированная архитектура (Service-Oriented 
Architecture, SOA) — понятие из мира корпоративных 
приложений. Оно тесно связано с вопросами управления 
бизнес-процессами предприятия. 
Бизнес-процесс — это набор задач, направленный на 
создание некоторых продукта или услуги. 
9
Event-Driving Architecture 
Понятие SOA тесно связано с понятием событийно- 
ориентированной архитектуры (EDA). 
EDA основывается на способности создавать события и 
реагировать на них. 
Событие — это ситуация, когда изменяется состояние 
некоторого объекта. 
10
Service-Oriented Architecture 
Сервис-ориентированная архитектура — это каркас для 
интеграции бизнес-процессов в виде сервисов. Все сервисы 
стандартизированы, могут переиспользоваться и 
комбинироваться для решения бизнес-задач. 
11
Service-Oriented Architecture 
Не только архитектура, 
но и методология! 
12
Манифест SOA 
http://www.soa-manifesto.org 
• Значимость бизнеса перед технической стратегией. 
• Стратегические цели перед выгодами, специфичными для 
данного проекта. 
• Свойственная способность к взаимодействию перед 
специально достигнутой интеграцией. 
• Совместно используемые сервисы перед разработками с 
узкими, специальными целями. 
• Гибкость перед оптимизацией. 
• Эволюционные усовершенствования перед попыткой 
достичь изначального совершенства. 
13
Структура SOA 
* Enterprise SOA: Service-Oriented Architecture Best Practices by Dirk Krafzig, 2004 
14
Структура SOA: Фронтенд приложения 
Фронтенд приложения 
должен быть отделен от сервисов. 
У каждого сервиса есть четко определенный интерфейс. 
Работа с этим интерфейсом может осуществляться через один 
или несколько фронтендов. 
15
Структура SOA: Репозиторий 
Репозиторий 
представляет собой каталог, 
в котором содержится 
информация о существующих 
сервисах и их интерфейсах. 
Информация в репозитории должна быть представлена в виде, 
понятном и удобном для разработчиков и бизнес-аналитиков. 
16
Структура SOA: Шина 
Понятие «сервисная шина» 
(ESB — Enterprise Service Bus) 
тесно связано с событиями. 
Для оповещения о том, что произошло 
событие, некоторый сервис отправляет 
в шину сообщение. Другие сервисы, получив это сообщение, 
могут отреагировать на событие в соответствие с заданной 
бизнес-логикой. 
Шина обеспечивает мгновенный обмен сообщениями и 
гарантирует, что все сообщения будут доставлены. 
17
Структура SOA: Сервис 
Сервис — ключевое понятие SOA. 
Сервисы служат для моделирования 
бизнес-процессов. 
Традиционно под каждый бизнес-процесс организуется свой 
сервис. 
18
Структура SOA: Сервис 
Контракт задает поведение сервиса, 
т.е. тот набор действий, который можно 
выполнить, обратившись к сервису. 
Интерфейсы для доступа к сервисам 
должны быть четко определены и 
стандартизованы в рамках информационной системы. 
Например, для доступа к сервисам может использоваться REST API, соответствующий 
корпоративному стандарту. Контрактом сервиса в этом случае будет набор REST-методов, 
реализованный для работы с этим сервисом. 
19
Структура SOA: Сервис 
Реализация сервиса может быть 
выполнена с использованием различных 
технологий. Благодаря взаимодействию 
через четко стандартизированные 
интерфейсы и шину, разные сервисы могут 
быть реализованы, например, на разных 
языках программирования. 
Традиционно реализация сервиса включает в себя слой 
бизнес-логики и слой данных. Внутренние архитектурные 
решения разных сервисов могут быть различными. 
20
Questions? 
info@elena.rumyantseva.name 
@webdeva

More Related Content

What's hot

Облачные тренды 2015
Облачные тренды 2015Облачные тренды 2015
Облачные тренды 2015Michael Kozloff
 
Калькулятор для расчета стоимости облачных услуг ActiveCloud Virtual Private ...
Калькулятор для расчета стоимости облачных услуг ActiveCloud Virtual Private ...Калькулятор для расчета стоимости облачных услуг ActiveCloud Virtual Private ...
Калькулятор для расчета стоимости облачных услуг ActiveCloud Virtual Private ...Michael Kozloff
 
Облачные услуги ActiveCloud. Вопросы к SLA
Облачные услуги ActiveCloud. Вопросы к SLAОблачные услуги ActiveCloud. Вопросы к SLA
Облачные услуги ActiveCloud. Вопросы к SLAActiveCloud
 
тенденции развития доступа к мировым информационным ресурсам
тенденции развития доступа к мировым информационным ресурсамтенденции развития доступа к мировым информационным ресурсам
тенденции развития доступа к мировым информационным ресурсамTamarka_Br
 
ActiveCloud vs. облачные мифы
ActiveCloud vs. облачные мифыActiveCloud vs. облачные мифы
ActiveCloud vs. облачные мифыMichael Kozloff
 

What's hot (6)

Облачные тренды 2015
Облачные тренды 2015Облачные тренды 2015
Облачные тренды 2015
 
Калькулятор для расчета стоимости облачных услуг ActiveCloud Virtual Private ...
Калькулятор для расчета стоимости облачных услуг ActiveCloud Virtual Private ...Калькулятор для расчета стоимости облачных услуг ActiveCloud Virtual Private ...
Калькулятор для расчета стоимости облачных услуг ActiveCloud Virtual Private ...
 
Облачные услуги ActiveCloud. Вопросы к SLA
Облачные услуги ActiveCloud. Вопросы к SLAОблачные услуги ActiveCloud. Вопросы к SLA
Облачные услуги ActiveCloud. Вопросы к SLA
 
тенденции развития доступа к мировым информационным ресурсам
тенденции развития доступа к мировым информационным ресурсамтенденции развития доступа к мировым информационным ресурсам
тенденции развития доступа к мировым информационным ресурсам
 
ActiveCloud vs. облачные мифы
ActiveCloud vs. облачные мифыActiveCloud vs. облачные мифы
ActiveCloud vs. облачные мифы
 
WSS Docs
WSS DocsWSS Docs
WSS Docs
 

Viewers also liked

Делаем умный сервис будущего
Делаем умный сервис будущегоДелаем умный сервис будущего
Делаем умный сервис будущегоAlexey Gavrilov
 
Профсреда. Гостиничный сервис
Профсреда. Гостиничный сервисПрофсреда. Гостиничный сервис
Профсреда. Гостиничный сервисCollege_Tsaritsyno
 
"Сервис как идеальная стратегия маркетинга" презентация для "Профи-центра"
"Сервис как идеальная стратегия маркетинга" презентация для "Профи-центра""Сервис как идеальная стратегия маркетинга" презентация для "Профи-центра"
"Сервис как идеальная стратегия маркетинга" презентация для "Профи-центра"Вера Нансен, копирайтер
 
презентация сервис это дорога
презентация сервис это дорогапрезентация сервис это дорога
презентация сервис это дорогаPavel Borovikov
 
Мастер класс "Как предоставлять безупречный сервис?" 6 мая 2014
Мастер класс "Как предоставлять безупречный сервис?" 6 мая 2014Мастер класс "Как предоставлять безупречный сервис?" 6 мая 2014
Мастер класс "Как предоставлять безупречный сервис?" 6 мая 2014Artik Kuzmin
 
Клиентский Сервис
Клиентский Сервис Клиентский Сервис
Клиентский Сервис Yulia Trifonova
 
Сервис-менеджмент: основные понятия и концепции
Сервис-менеджмент: основные понятия и концепцииСервис-менеджмент: основные понятия и концепции
Сервис-менеджмент: основные понятия и концепцииArtik Kuzmin
 
Как построить wow-сервис в e-commerce
Как построить wow-сервис в e-commerceКак построить wow-сервис в e-commerce
Как построить wow-сервис в e-commerceE96
 
Омниканальный сервис: как управлять массовыми обращениями по всем каналам ком...
Омниканальный сервис: как управлять массовыми обращениями по всем каналам ком...Омниканальный сервис: как управлять массовыми обращениями по всем каналам ком...
Омниканальный сервис: как управлять массовыми обращениями по всем каналам ком...Terrasoft
 
Сервис-менеджеры: кто они и какими качествами должны обладать
Сервис-менеджеры: кто они и какими качествами должны обладатьСервис-менеджеры: кто они и какими качествами должны обладать
Сервис-менеджеры: кто они и какими качествами должны обладатьCleverics
 
Сервисная стратегия. План действий
Сервисная стратегия. План действийСервисная стратегия. План действий
Сервисная стратегия. План действийEfim Aldoukhov
 
Клиентоориентированный сервис. Клиенты на всю жизнь.
Клиентоориентированный сервис. Клиенты на всю жизнь.Клиентоориентированный сервис. Клиенты на всю жизнь.
Клиентоориентированный сервис. Клиенты на всю жизнь.Людмила Варчевская
 
Клиентский сервис (c) Андрей Анищенко
Клиентский сервис (c) Андрей АнищенкоКлиентский сервис (c) Андрей Анищенко
Клиентский сервис (c) Андрей АнищенкоHUNGRY BOYS Creative agency
 
"Первоклассный сервис как конкурентное преимущество" (автор Джон Шоул)
"Первоклассный сервис как конкурентное преимущество" (автор Джон Шоул)"Первоклассный сервис как конкурентное преимущество" (автор Джон Шоул)
"Первоклассный сервис как конкурентное преимущество" (автор Джон Шоул)Pro Retail - training and consulting
 
Сервис-дизайн мышление | Service design thinking
Сервис-дизайн мышление | Service design thinking Сервис-дизайн мышление | Service design thinking
Сервис-дизайн мышление | Service design thinking 2Nova Interactive
 
Семён Молотков и Андрей Федоренко – Как бодрая морковь сервис-дизайна побежда...
Семён Молотков и Андрей Федоренко – Как бодрая морковь сервис-дизайна побежда...Семён Молотков и Андрей Федоренко – Как бодрая морковь сервис-дизайна побежда...
Семён Молотков и Андрей Федоренко – Как бодрая морковь сервис-дизайна побежда...404fest
 

Viewers also liked (18)

Делаем умный сервис будущего
Делаем умный сервис будущегоДелаем умный сервис будущего
Делаем умный сервис будущего
 
ИТ-работа как сервис
ИТ-работа как сервисИТ-работа как сервис
ИТ-работа как сервис
 
Профсреда. Гостиничный сервис
Профсреда. Гостиничный сервисПрофсреда. Гостиничный сервис
Профсреда. Гостиничный сервис
 
"Сервис как идеальная стратегия маркетинга" презентация для "Профи-центра"
"Сервис как идеальная стратегия маркетинга" презентация для "Профи-центра""Сервис как идеальная стратегия маркетинга" презентация для "Профи-центра"
"Сервис как идеальная стратегия маркетинга" презентация для "Профи-центра"
 
сервис менеджмент аба
сервис менеджмент абасервис менеджмент аба
сервис менеджмент аба
 
презентация сервис это дорога
презентация сервис это дорогапрезентация сервис это дорога
презентация сервис это дорога
 
Мастер класс "Как предоставлять безупречный сервис?" 6 мая 2014
Мастер класс "Как предоставлять безупречный сервис?" 6 мая 2014Мастер класс "Как предоставлять безупречный сервис?" 6 мая 2014
Мастер класс "Как предоставлять безупречный сервис?" 6 мая 2014
 
Клиентский Сервис
Клиентский Сервис Клиентский Сервис
Клиентский Сервис
 
Сервис-менеджмент: основные понятия и концепции
Сервис-менеджмент: основные понятия и концепцииСервис-менеджмент: основные понятия и концепции
Сервис-менеджмент: основные понятия и концепции
 
Как построить wow-сервис в e-commerce
Как построить wow-сервис в e-commerceКак построить wow-сервис в e-commerce
Как построить wow-сервис в e-commerce
 
Омниканальный сервис: как управлять массовыми обращениями по всем каналам ком...
Омниканальный сервис: как управлять массовыми обращениями по всем каналам ком...Омниканальный сервис: как управлять массовыми обращениями по всем каналам ком...
Омниканальный сервис: как управлять массовыми обращениями по всем каналам ком...
 
Сервис-менеджеры: кто они и какими качествами должны обладать
Сервис-менеджеры: кто они и какими качествами должны обладатьСервис-менеджеры: кто они и какими качествами должны обладать
Сервис-менеджеры: кто они и какими качествами должны обладать
 
Сервисная стратегия. План действий
Сервисная стратегия. План действийСервисная стратегия. План действий
Сервисная стратегия. План действий
 
Клиентоориентированный сервис. Клиенты на всю жизнь.
Клиентоориентированный сервис. Клиенты на всю жизнь.Клиентоориентированный сервис. Клиенты на всю жизнь.
Клиентоориентированный сервис. Клиенты на всю жизнь.
 
Клиентский сервис (c) Андрей Анищенко
Клиентский сервис (c) Андрей АнищенкоКлиентский сервис (c) Андрей Анищенко
Клиентский сервис (c) Андрей Анищенко
 
"Первоклассный сервис как конкурентное преимущество" (автор Джон Шоул)
"Первоклассный сервис как конкурентное преимущество" (автор Джон Шоул)"Первоклассный сервис как конкурентное преимущество" (автор Джон Шоул)
"Первоклассный сервис как конкурентное преимущество" (автор Джон Шоул)
 
Сервис-дизайн мышление | Service design thinking
Сервис-дизайн мышление | Service design thinking Сервис-дизайн мышление | Service design thinking
Сервис-дизайн мышление | Service design thinking
 
Семён Молотков и Андрей Федоренко – Как бодрая морковь сервис-дизайна побежда...
Семён Молотков и Андрей Федоренко – Как бодрая морковь сервис-дизайна побежда...Семён Молотков и Андрей Федоренко – Как бодрая морковь сервис-дизайна побежда...
Семён Молотков и Андрей Федоренко – Как бодрая морковь сервис-дизайна побежда...
 

Similar to Введение в сервис-ориентированную архитектуру

Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Василий Савунов
 
Услуги КРОК для интеграции приложений
Услуги КРОК для интеграции приложенийУслуги КРОК для интеграции приложений
Услуги КРОК для интеграции приложенийКРОК
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Anatoly Kireev
 
Преимущества решения Cisco Hosted Collaboration Solution для бизнеса
Преимущества решения Cisco Hosted Collaboration Solution для
бизнесаПреимущества решения Cisco Hosted Collaboration Solution для
бизнеса
Преимущества решения Cisco Hosted Collaboration Solution для бизнесаSaaS.ru Portal
 
Бизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруБизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруAlexander Byndyu
 
Проект "Нихол"
Проект "Нихол"Проект "Нихол"
Проект "Нихол"E-Journal ICT4D
 
Ара Исраелян "Как ускорить разработку приложений"
Ара Исраелян "Как ускорить разработку приложений"Ара Исраелян "Как ускорить разработку приложений"
Ара Исраелян "Как ускорить разработку приложений"IT Event
 
Совместная работа в облачной среде: общие сведения для определенияподходящей ...
Совместная работа в облачной среде: общие сведения для
определенияподходящей ...Совместная работа в облачной среде: общие сведения для
определенияподходящей ...
Совместная работа в облачной среде: общие сведения для определенияподходящей ...SaaS.ru Portal
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Cisco Russia
 
Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Andrey Akulov
 
ПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийВиктор Золотов
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Dima Dzuba
 
Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...Сергей Лебедев
 

Similar to Введение в сервис-ориентированную архитектуру (20)

Artsofte for b2 b
Artsofte for b2 b Artsofte for b2 b
Artsofte for b2 b
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)
 
Intrus 2007 - SaaS
Intrus 2007 - SaaSIntrus 2007 - SaaS
Intrus 2007 - SaaS
 
Услуги КРОК для интеграции приложений
Услуги КРОК для интеграции приложенийУслуги КРОК для интеграции приложений
Услуги КРОК для интеграции приложений
 
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
Новые возможности IBM WebSphere Portal v8 и IBM WCM v8
 
Преимущества решения Cisco Hosted Collaboration Solution для бизнеса
Преимущества решения Cisco Hosted Collaboration Solution для
бизнесаПреимущества решения Cisco Hosted Collaboration Solution для
бизнеса
Преимущества решения Cisco Hosted Collaboration Solution для бизнеса
 
Бизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуруБизнес-гибкость через микросервисную архитектуру
Бизнес-гибкость через микросервисную архитектуру
 
Проект "Нихол"
Проект "Нихол"Проект "Нихол"
Проект "Нихол"
 
тема 12
тема 12тема 12
тема 12
 
Ара Исраелян "Как ускорить разработку приложений"
Ара Исраелян "Как ускорить разработку приложений"Ара Исраелян "Как ускорить разработку приложений"
Ара Исраелян "Как ускорить разработку приложений"
 
Adlabs.Development presentation
Adlabs.Development presentationAdlabs.Development presentation
Adlabs.Development presentation
 
Совместная работа в облачной среде: общие сведения для определенияподходящей ...
Совместная работа в облачной среде: общие сведения для
определенияподходящей ...Совместная работа в облачной среде: общие сведения для
определенияподходящей ...
Совместная работа в облачной среде: общие сведения для определенияподходящей ...
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
 
обзор Erp
обзор Erpобзор Erp
обзор Erp
 
Облачные сервисы Майкрософт и возможности для партнеров, Azure University
Облачные сервисы Майкрософт и возможности для партнеров, Azure UniversityОблачные сервисы Майкрософт и возможности для партнеров, Azure University
Облачные сервисы Майкрософт и возможности для партнеров, Azure University
 
Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)Новые возможности по разработке приложений (ADF, SOA, BPM)
Новые возможности по разработке приложений (ADF, SOA, BPM)
 
ПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решенийПартФорум DIRECTUM 2013 - разработка прикладных решений
ПартФорум DIRECTUM 2013 - разработка прикладных решений
 
Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4Проектирование программных систем. Занятие 4
Проектирование программных систем. Занятие 4
 
Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...Разработка профессионального стандарта "Специалист по интеграции облачных при...
Разработка профессионального стандарта "Специалист по интеграции облачных при...
 

More from Elena Grahovac

Готовим код 
в мир открытых исходников
Готовим код 
в мир открытых исходниковГотовим код 
в мир открытых исходников
Готовим код 
в мир открытых исходниковElena Grahovac
 
Введение в язык программирования Go
Введение в язык программирования GoВведение в язык программирования Go
Введение в язык программирования GoElena Grahovac
 
Women Techmakers Novosibirsk, первый митап
Women Techmakers Novosibirsk, первый митапWomen Techmakers Novosibirsk, первый митап
Women Techmakers Novosibirsk, первый митапElena Grahovac
 
Пословицы дядюшки Пайка
Пословицы дядюшки ПайкаПословицы дядюшки Пайка
Пословицы дядюшки ПайкаElena Grahovac
 
Пользовательские истории
Пользовательские историиПользовательские истории
Пользовательские историиElena Grahovac
 
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing ProtocolВзаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing ProtocolElena Grahovac
 

More from Elena Grahovac (8)

Готовим код 
в мир открытых исходников
Готовим код 
в мир открытых исходниковГотовим код 
в мир открытых исходников
Готовим код 
в мир открытых исходников
 
Go at Openprovider
Go at OpenproviderGo at Openprovider
Go at Openprovider
 
Введение в язык программирования Go
Введение в язык программирования GoВведение в язык программирования Go
Введение в язык программирования Go
 
Women Techmakers Novosibirsk, первый митап
Women Techmakers Novosibirsk, первый митапWomen Techmakers Novosibirsk, первый митап
Women Techmakers Novosibirsk, первый митап
 
Пословицы дядюшки Пайка
Пословицы дядюшки ПайкаПословицы дядюшки Пайка
Пословицы дядюшки Пайка
 
Пользовательские истории
Пользовательские историиПользовательские истории
Пользовательские истории
 
Про Git
Про GitПро Git
Про Git
 
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing ProtocolВзаимодействие сервисов через Advanced Message
 Queuing Protocol
Взаимодействие сервисов через Advanced Message
 Queuing Protocol
 

Введение в сервис-ориентированную архитектуру

  • 3. Проблемы некоторых крупных веб-проектов • Один репозиторий, много когда, много разработчиков. Неудобно. • Ответственность каждого конкретного разработчика размыта. Все отвечают за всё. • Все компоненты в коде проекта тесно связаны между собой. Изменение одного компонента может вызвать баги в других. • Проект завязан на один конкретный язык программирования. 3
  • 4. Как не довести свой проект до жизни такой • Определяем компоненты в коде так, чтобы они были максимально изолированы. • Проектируем интерфейсы для доступа к компонентам так, чтобы изменение одних компонент не влияло на изменение других. • По мере необходимости разносим эти компоненты в разные репозитории. 4
  • 5. Profit • Изменение отдельных модулей не вызывает ошибок в совершенно неожиданных местах проекта. • В случае, когда был изменен один компонент, не нужно релизить весь проект целиком. • Каждому разработчику можно назначить ответственность не за всё вместе, а только за отдельные вполне конкретные компоненты. • Разные компоненты можно писать на разных языках программирования. 5
  • 7. Как этого достичь? Используем SOA!
  • 9. Enterprise Сервис-ориентированная архитектура (Service-Oriented Architecture, SOA) — понятие из мира корпоративных приложений. Оно тесно связано с вопросами управления бизнес-процессами предприятия. Бизнес-процесс — это набор задач, направленный на создание некоторых продукта или услуги. 9
  • 10. Event-Driving Architecture Понятие SOA тесно связано с понятием событийно- ориентированной архитектуры (EDA). EDA основывается на способности создавать события и реагировать на них. Событие — это ситуация, когда изменяется состояние некоторого объекта. 10
  • 11. Service-Oriented Architecture Сервис-ориентированная архитектура — это каркас для интеграции бизнес-процессов в виде сервисов. Все сервисы стандартизированы, могут переиспользоваться и комбинироваться для решения бизнес-задач. 11
  • 12. Service-Oriented Architecture Не только архитектура, но и методология! 12
  • 13. Манифест SOA http://www.soa-manifesto.org • Значимость бизнеса перед технической стратегией. • Стратегические цели перед выгодами, специфичными для данного проекта. • Свойственная способность к взаимодействию перед специально достигнутой интеграцией. • Совместно используемые сервисы перед разработками с узкими, специальными целями. • Гибкость перед оптимизацией. • Эволюционные усовершенствования перед попыткой достичь изначального совершенства. 13
  • 14. Структура SOA * Enterprise SOA: Service-Oriented Architecture Best Practices by Dirk Krafzig, 2004 14
  • 15. Структура SOA: Фронтенд приложения Фронтенд приложения должен быть отделен от сервисов. У каждого сервиса есть четко определенный интерфейс. Работа с этим интерфейсом может осуществляться через один или несколько фронтендов. 15
  • 16. Структура SOA: Репозиторий Репозиторий представляет собой каталог, в котором содержится информация о существующих сервисах и их интерфейсах. Информация в репозитории должна быть представлена в виде, понятном и удобном для разработчиков и бизнес-аналитиков. 16
  • 17. Структура SOA: Шина Понятие «сервисная шина» (ESB — Enterprise Service Bus) тесно связано с событиями. Для оповещения о том, что произошло событие, некоторый сервис отправляет в шину сообщение. Другие сервисы, получив это сообщение, могут отреагировать на событие в соответствие с заданной бизнес-логикой. Шина обеспечивает мгновенный обмен сообщениями и гарантирует, что все сообщения будут доставлены. 17
  • 18. Структура SOA: Сервис Сервис — ключевое понятие SOA. Сервисы служат для моделирования бизнес-процессов. Традиционно под каждый бизнес-процесс организуется свой сервис. 18
  • 19. Структура SOA: Сервис Контракт задает поведение сервиса, т.е. тот набор действий, который можно выполнить, обратившись к сервису. Интерфейсы для доступа к сервисам должны быть четко определены и стандартизованы в рамках информационной системы. Например, для доступа к сервисам может использоваться REST API, соответствующий корпоративному стандарту. Контрактом сервиса в этом случае будет набор REST-методов, реализованный для работы с этим сервисом. 19
  • 20. Структура SOA: Сервис Реализация сервиса может быть выполнена с использованием различных технологий. Благодаря взаимодействию через четко стандартизированные интерфейсы и шину, разные сервисы могут быть реализованы, например, на разных языках программирования. Традиционно реализация сервиса включает в себя слой бизнес-логики и слой данных. Внутренние архитектурные решения разных сервисов могут быть различными. 20