Оглавление
Введение
. Концепция сервисно-ориентированной архитектуры
. Обзор публикаций. Определение глубины исследования проблемы
. Анализ практического применения SOA в ИТ компании
.1 Описание деятельности компании «ЗАО Крок Инкорпорейтед»
.2 Моделирование процесса, протекающего в смежных системах
.2.1 Описание инициации процесса и его шагов
.2.2 Описание фрагмента интеграционной схемы
.3 Анализ одной точки интеграции
Заключение
Источники
Приложения
В условиях современной рыночной конкуренции компании остро нуждаются в новом поколении информационных систем и сервисов, которые способны предоставить расширенный, по сравнению с предыдущими системами, функционал, а также обеспечивать доступ к различным сервисам по требованию. Кроме того, бизнес нуждается в гибкости и динамичности таких сервисов, которые смогут иметь доступ к общим хранилищам данных, обмениваться данными между собой и обеспечивать различные виды взаимодействия, например, межсистемный или «бизнес для бизнеса» (B2B). Такие системы и сервисы должны грамотно интегрироваться, поскольку именно это позволит им быстро перестраиваться под меняющиеся бизнес-потребности, реагировать на изменения бизнес-правил, предоставлять возможность без потерь заменять устаревшие информационные компоненты, внедрять новые программные продукты в общую ИТ-инфраструктуру или переходить на новые платформы. Совокупность сервисов и систем, эксплуатируемых в компании, составляет общую ИТ-архитектуру, грамотное построение которой представляет сложность для большинства компаний.
Вышеперечисленные бизнес-потребности послужили причиной растущей популярности нового подхода к организации и интеграции сервисов, называемого сервисно-ориентированной архитектурой, или SOA (также сервис-ориентированная архитектура). Для современных компаний SOA является достаточно привлекательной моделью ИТ-архитектуры, которая позволяет лучшим образом выровнять потребности бизнеса по отношению к имеющимся информационным ресурсам и использовать весь информационный потенциал компании по максимуму. Тема данной дипломной работы - «Анализ эффективности сервисно-ориентированной архитектуры в ИТ компании», и в данной работе будут рассмотрены основные особенности этого архитектурного подхода и приведены доказательства его эффективности.
SOA - это новый стиль архитектуры информационных систем, который позволяет разрабатывать и интегрировать бизнес-приложения. Эта архитектурная модель объединяет в себе техническую и организационную составляющие, которые позволяют компании иметь общую платформу для выполнения независимых бизнес-функций и сервисов, при этом по минимуму пресекаться в функциональности и избегать дублирования сервисов, приложений и данных. Поскольку сейчас большинство компаний инвестируют большие средства в крупномасштабные системы, такие как ERP (enterprise resource planning), CRM (customer relationship management), HRMS (human resource management systems), а подобные решения чаще всего «коробочные», у бизнеса возникает потребность выносить часть функционала в отдельные сервисы и интегрировать их на одной общей платформе. Следовательно, компании занимаются поиском оптимального соотношения сервисов и приложений и разделения между ними функциональности так, чтобы она не дублировалась, а также поиском наиболее эффективного инструмента интеграции для обеспечения взаимодействия между этими системами. Проблема современного бизнеса заключается в чрезмерном инвестировании во внутренние ИТ-проекты и во временных затратах на выполнение бизнес-функций, которые являются следствием выбора неэффективного системного решения.
Актуальность выбранной тематики для исследования объясняется высокой скоростью изменения информационных технологий и частым вхождением на рынок новых бизнес-приложений, которые с трудом интегрируются в устаревающую централизованную ИТ-архитектуру, состоящую из одной-двух массивных систем. Кроме того, актуальность исследования SOA заключается в возможности построить архитектуру приложений, которая позволит сократить общие затраты за счет снижения затрат на внедрение, техническую поддержку и затрат, связанных с временными потерями.
Таким образом, объектом исследования является модель сервисно-ориентированной архитектуры и концепция распределенных бизнес-приложений. Предметами исследования выступают наиболее часто используемые инструменты интеграции сервисов в распределенной архитектуре - корпоративная сервисная шина и веб-сервисы, эффективность которых будет рассмотрена в этой работе. Гипотеза на момент начала исследования: SOA является эффективным подходом к построению архитектуры в компании с потребностью в объемном функционале для удовлетворения бизнес-потребностей.
Главной целью данной дипломной работы является доказательство целесообразности применения концепции SOA в компании. Критерием целесообразности будет выступать оценка общей эффективности применения SOA в целом и в отдельно взятом российском ИТ-интеграторе. В свою очередь, оценка эффективности будет сформирована на основе уже проведенных исследований в данной области и на основе некоторых количественных показателей, таких как время передачи датаграммы в смежные системы и время получения ответного сообщения. Также, целью является набор сформулированных рекомендаций для успешного внедрения SOA и комментариев, касательно того, когда это внедрение имеет смысл. Для достижения поставленной цели будут выполнены следующие задачи:
описание концепции работы SOA;
анализ зарубежных и российских публикаций с целью подтверждения наличия заявленной проблемы;
моделирование одного бизнес-процесса, требующего для своей реализации интеграции систем;
анализ интеграционного взаимодействия (точки интеграции) с замерами определенных показателей взаимодействия;
предложение набора рекомендаций для успешного перехода на SOA.
Для решения поставленных задач будут использованы следующие методы: качественные методы анализа научных статей, методы сравнительной и описательной характеристик, процессное моделирование, выполнение интеграционных кейсов на практике с последующим количественных анализом.
Данная работа представлена в 3 главах. В первой главе дается описание концепции SOA, выделяются основные преимущества этого архитектурного подхода. Во второй главе проводится анализ имеющихся публикаций по заявленной проблеме с целью найти первоначальное подтверждение гипотезы и сделать предварительные выводы об эффективности, которым далее в практической части работы будет предоставлено подтверждение. В третьей главе будет описан опыт компании, использующей SOA, смоделирован один бизнес-процесс, и представлен фрагмент его интеграционной схемы. Далее будет проведен замер времени обмена сообщениями между системами.
В заключительной части будет подведен итог о проделанной работе,
обоснована целесообразность перехода к SOA, и даны некоторые рекомендации для успешного перехода
на эту архитектуру.
Сервисно-ориентированная архитектура, как результат эволюции
ИТ-инфраструктуры, оформилась примерно в 1990-е годы. Переход к такой системной
модели происходил постепенно. Еще в 1980-е годы организационные структуры
компаний представляли собой вертикальные, изолированные подразделения, которые
затем сменились горизонтальными, процессно-ориентированными структурами.
Архитектура систем также трансформировалась вместе с бизнесом, и потребность в
распределенных системах росла с ростом процессно-ориентированных организаций.
Первыми были монолитные системы, в которых логика обработки данных и
функциональная логика приходились на одну систему, размещенную на одной машине.
Позднее логика была разделена на клиентскую и серверную части, из которых еще позже
сервисы обработки данных были вынесены на отдельный сервер, образовав таким
образом трехзвеньевую архитектуру. Такая архитектура затем эволюционировала в
многозвеньевую, когда логически однородные функции, ранее хранившиеся на одном
сервере, стали размещать на разных машинах для распределения нагрузки на
сервера. Затем появились децентрализованные системы с распределенными объектами
- компьютерные сети, основанные на равноправии участников. В таких сетях, как
правило, отсутствуют выделенные серверы, а каждый узел является как клиентом,
так и сервером [1-2]. Самой недавней архитектурой стала SOA - парадигма использования
распределенных информационных ресурсов (приложений и данных), находящихся в
сфере ответственности разных владельцев. Схема развития архитектурных решений
представлена на Рисунке 1.1.
Рисунок 1.1. Эволюция архитектурных решений
Для сервисно-ориентированной архитектуры особое значение имеют слабая
связь компонентов, независимость от географии расположения этих компонентов и
независимость от протоколов (способов связи). Сервис в этой модели определяется
как «исполнимая единица кода, которая предоставляет собой «черный ящик»:
инкапсуляцию определенных функций. Он может быть вызван другими сервисами или системами
с помощью стандартизированного потока сообщений»[3]. На Рисунке 1.2
представлена схема SOA с описанием
основных понятий.
Рисунок 1.2. Основные понятия SOA
Сервисы: логические сущности, которые определяются публикующим их интерфейсом;
Провайдер сервиса: системная сущность, которая определяет специфику сервиса;
Потребитель сервиса: системная сущность, которая вызывает провайдера сервиса. Является синонимом понятия «клиент», может быть пользовательским приложением или другим сервисом;
Локатор сервиса: особый вид сервиса, выступающий в качестве реестра остальных сервисов и позволяющий осуществлять поиск нужных сервисов;
Брокер: особый вид провайдера сервиса, который может передавать запросы к сервису другим сервис-провайдерам.
Взаимодействие между потребителем и провайдером сервиса задается с помощью интерфейса, который определяется набором сигнатур методов [4].
Все составляющие сервисно-ориентированной архитектуры можно разложить на
технологии, составляющие в совокупности так называемый стек технологий
веб-сервисов (Рисунок 1.3).
Рисунок 1.3. Стек технологий веб-сервисов
Стек технологий веб-сервисов условно делится на 2 составляющие: технологии для обеспечения функциональности и технологии для обеспечения качества сервисов. Эти составляющие, в свою очередь, можно разделить на слои.
Транспортный слой: механизмы, используемые для обмена данными между веб-сервисами (HTTP, JMS);
Коммуникационный слой: формализация механизмов использования транспортных протоколов веб-сервисами (SOAP);
Слой описания сервисов: формализация интерфейсов веб-сервисов для обеспечения их независимости от аппаратно-программной платформы (XML, WSDL);
- Сервисный слой: доступные к использованию единицы функциональности, вызываемые с помощью WSDL;
- Бизнес-процесс: описание организации веб-сервисов для выполнения потока работ и процессов;
Слой реестров сервисов: хранилище сервисов и их организация в иерархические структуры.
Технологии качества сервиса, в свою очередь, характеризуется следующими составляющими:
Политики: описание правил, по которым веб-сервисы могут быть вызваны;
Слой безопасности: возможности обеспечения безопасного доступа к сервисам (разделение доступа, ролевые модели, авторизация, аутентификация);
Транзакционный слой: описание свойств транзакционности распределенных систем;
Управленческий слой: возможности управления веб-сервисами и их масштабируемостью[5-6].
Таким образом, SOA - это инструмент, позволяющий определить бизнес как
наборов взаимосвязанных услуг. Одним из его преимуществ являются независимость
сервисов от аппаратно-программного обеспечения, масштабируемость сервисов, их
гибкость и простота при разработке новых приложений. SOA создает
коммуникационную среду для программных компонентов, реализующих прикладную
бизнес-логику. Информация о таких компонентах публикуется в стандартной форме,
при которой их не требуется знаний об их реализации.
Феномен сервисно-ориентированной архитектуры относительно молод; хотя проблема интеграции информационных ресурсов появилась намного ранее. Как было отмечено во введении, в 90-е годы предприниматели и владельцы бизнеса стали интересоваться и активно использовать в бизнесе крупные комплектные решения, такие как ERP или CRM системы. При этом потребности и масштаб автоматизации бизнеса заметно возросли, и реализация всего функционала на стороне одной системы стала невозможна. В это время большинство ИТ-инфраструктур компаний двинулось в сторону композитных систем. веб интерфейс провайдер
Одним из исследователей, стоящих в истоках истории SOA, стоит выдающийся разработчик программного обеспечения Стив Бурбек. Профессиональная биография Бурбека включает в себя работу в исследовательском биомедицинском институте (1980-е), позицию менеджера по продукции в Apple Computer, пост вице-президента Knowledge Systems Corp. (1990-1994), работу ведущим IT-консультантом в IBM (1995-2005). В связи с ростом популярности глобальной сети Бурбек озвучил идею, что для эффективной организации услуг между бизнесами можно построить особую архитектуру, которую он назвал Service-Oriented Architecture (SOA).
Кроме самого термина Бурбек предложил модель, элементами которой являются поставщик услуг, получатель услуг и брокер-посредник (Рисунок 2.1):
поставщик регистрирует данные о предоставляемых услугах;
брокер классифицирует и осуществляет их поставку;
потребитель находит нужные услуги от посредника и внедряет их.
Рисунок 2.1. Модель, предложенная С. Бурбеком
Кроме модели, основные идеи сервисно-ориентированной архитектуры Бурбек опубликовал в своем труде, над которым он работал с 2004 по 2007 годы, «Сложность и эволюция компьютерных систем, биологические принципы для управления эволюционирующими системами» [7]. В своей работе он проводит аналогию архитектуры информационных приложений с работой многоклеточного организма. «Одноклеточные организмы эволюционировали в многоклеточные организмы давным-давно. Сегодня мы наблюдаем похожие изменения в компьютерах. 20 лет назад мало компьютеров взаимодействовали напрямую между собой. Сейчас сотни миллионов компьютеров обмениваются информацией на скорости Интернета. Цифровой мир неумолимо становится комплексным. Все большие группы компьютеров взаимодействуют все более сложными и менее очевидными способами. При этом они сталкиваются с проблемой, распространенной во всех сложных системах, - проблемой, на которую эволюция уже имеет ответ», - пишет во вступлении к своей работе Бурбек. Он говорит о том, что хранение и обработка информации в клетке гораздо более эффективна, чем в электронно-цифровых компьютерах и с точки зрения плотности информации, и с точки зрения потребления энергии. Однако, как клетки являются начальной единицей организма, так и компьютеры являются начальными единицами вычислительного процесса, поэтому многие механизмы взаимодействия и передачи информации можно позаимствовать у клеток и спроецировать их на компьютерные сети.
Главным образом в своей работе Бурбек пытается найти ответ на вопрос «Чем противостоять возрастающей сложности информационных систем, и какие использовать методы для эффективного взаимодействия системных компонентов?». Автор пытается дать определение понятия системной сложности: «Мы привыкли думать о сложности, как о путанице, которую мы не в состоянии постичь. Это объясняет только один вид сложности, называемый детальной, или структурной сложностью. Другой вид сложности, обычно называемый динамической сложностью, накапливается самими системами и не имеет ничего общего с нашим пониманием. Этот второй вид сложности возникает естественно в системах, которые эволюционируют со временем, и заключаются в их функционировании: метеорологические, космологические, биологические, экологические, геологические, социальные, экономические и компьютерные системы. Оба вида сложности сбивают с толку в компьютерных системах. Мы сталкиваемся со структурной сложностью в исходном коде программы или в схеме базы данных, которые определяют структурные взаимоотношения между действующими элементами. Эти структурные описания обычно становятся настолько сложными, что они превосходят наши когнитивные способности к пониманию. Динамическая сложность качественно отличается; она заключается в том, что происходит в момент выполнения приложения, т.е. показывает, как разворачивается сценарий компьютерной программы в момент взаимодействия ее элементов».