Май
2
Что такое SOA на самом деле?
Категории: SOA
Цель данной статьи - объяснить в доступной форме, опуская специальные термины и пустые обещания производителей, что представляет из себя сервис-ориентированная архитектура. Это принципиально новый подход к раскрытию сути концепции SOA.
В любом бизнесе есть элементы, которые меняются крайне редко. Например, в бензин продается в литрах. В ресторанах до сих пор подается меню. Дантисты рекомендуют делать профессиональную чистку зубов каждые 6 месяцев. Это принципы стабильности, на которых основана огромная часть бизнеса. Назовем их основными принципами функционирования бизнеса.
Наряду с этим в любом бизнесе есть часто изменяющиеся аспекты. К ним относятся цены, налоги, каталоги, появление новых продуктов, маркетинговых компаний, рекламных технологий, новых областей деятельности, новых потребителей и т.д. На самом деле бизнес должен меняться и меняться быстро. Важно, чтобы эти перемены не влияли на основные принципы функционирования бизнеса.
Разработчики программного обеспечения уже знают, что часто меняющееся программное обеспечение необходимо изолировать от редко меняющегося. В рамках индивидуальных программ и систем этот принцип иногда называется принципом общего закрытия. В рамках управления информацией на предприятии этот принцип можно назвать сервис-ориентированной архитектурой (SOA).
SOA помогает объединить основные принципы функционирования бизнеса в независимые редко меняющиеся сервисы. Эти сервисы выполняют широко разрекламированные функции, которые вызываются одной или более программ представления данных. Программы представления данных состоят из меняющиеся частей программного обеспечения, которые представляют и принимают данные от различных пользователей.
Для того, чтобы до конца понять данный процесс, представьте себе интернет-магазин. Браузер помогает пользователям связаться с программным обеспечением представления данных, которые высвечиваются на экране. Программное обеспечение представления данных обрабатывает команды пользователей и активизирует сервисы, то есть собирает данные в текущий каталог или регистрирует порядковый номер пользователя. Следует помнить, что сервисы не знают о своей связи с веб-сайтом. Они могут взаимодействовать как с “толстыми” клиентами, так и с устаревшими клиент-терминалами IBM 3270. Они просто принимают и возвращают данные стандартного формата, которые может использовать система.
Это основная суть концепции SOA. Остальное - детали. На самом высоком уровне SOA - это ни больше и ни меньше, чем отделение сменных элементов от несменных. Почему это важно?
Опять представьте себе Интернет-магазин. Пользователь может работать с каталогом, складывать покупки в корзину заказа и стоять в виртуальной очереди. Специалисты по маркетингу со временем, скорее всего, будут вносить изменения в интерфейс. Например, они могут поменять флажок корзины заказа на значок приема заказа на боковой панели, представить более наглядную информацию об изделиях, экспериментировать с различными цветами, шрифтами и структурой интерфейса в целом. Для реализации этой задачи в ход пойдут апплеты, JStart клиенты, Ajax и другие средства представления. Однако вышеперечисленные элементы не имеют ничего общего с основными принципами функционирования бизнеса, инкапсулированными этими сервисами, то есть, те сервисы, которые запрашивают каталоги и регистрируют порядковые номера, остаются неизменными, несмотря на перегруженность средствами представления. Вот почему важно разделение. Оно защищает средства обработки бизнес информации от постоянных помех и перегруженности средствами представления. На представление информации влияют не только помехи и перегруженность, но и бизнес-процессы. Опять возьмем в качестве примера Интернет-магазин. Допустим, мы решили заняться продажей вин. Алкогольный бизнес подразумевает контроль возраста покупателей; для этого мы создали специальный сервис, который должен использоваться при продаже любой алкогольной продукции. Решение о его применении выносится не на уровне логики представления или сервиса, а скорее на уровне бизнес-логики. Бизнес процессы часто обновляются, и их количество постоянно растет. С развитием того или иного бизнеса его бизнес-процессы усложняются. Сервисы для работы с бизнес процессами почти неизменны, меняется только направление их применения. Поэтому следует отделять бизнес-логику от логики сервисов и представлений. Когда это разделение было реализовано в отдельно взятой программе, программисты, использовавшие язык Smalltak, назвали его модель-вид-контроллер (MVC). Заметьте, что мы еще не разу не коснулись того, с чем часто ассоциируется SOA - избытка технологий. Ибо SOA – это не какая-нибудь определенная технология, а, скорее, философия проектирования, изолирующая высокоорганизованные бизнес-функции от меняющихся процессов и представлений. Это MVC (модель-вид-контроллер) программного обеспечения предприятия.
По материалам сайта objectmentor.com
Комментарии
Добавить комментарий
