Дипломная (вкр): Модель сервисно-ориентированной архитектуры и концепция распределенных бизнес-приложений

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Модель сервисно-ориентированной архитектуры и концепция распределенных бизнес-приложений

Оглавление

Введение

. Концепция сервисно-ориентированной архитектуры

. Обзор публикаций. Определение глубины исследования проблемы

. Анализ практического применения 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, и даны некоторые рекомендации для успешного перехода на эту архитектуру.

1. Концепция сервисно-ориентированной архитектуры


Сервисно-ориентированная архитектура, как результат эволюции ИТ-инфраструктуры, оформилась примерно в 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 создает коммуникационную среду для программных компонентов, реализующих прикладную бизнес-логику. Информация о таких компонентах публикуется в стандартной форме, при которой их не требуется знаний об их реализации.

2. Обзор публикаций. Определение глубины исследования проблемы


Феномен сервисно-ориентированной архитектуры относительно молод; хотя проблема интеграции информационных ресурсов появилась намного ранее. Как было отмечено во введении, в 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 лет назад мало компьютеров взаимодействовали напрямую между собой. Сейчас сотни миллионов компьютеров обмениваются информацией на скорости Интернета. Цифровой мир неумолимо становится комплексным. Все большие группы компьютеров взаимодействуют все более сложными и менее очевидными способами. При этом они сталкиваются с проблемой, распространенной во всех сложных системах, - проблемой, на которую эволюция уже имеет ответ», - пишет во вступлении к своей работе Бурбек. Он говорит о том, что хранение и обработка информации в клетке гораздо более эффективна, чем в электронно-цифровых компьютерах и с точки зрения плотности информации, и с точки зрения потребления энергии. Однако, как клетки являются начальной единицей организма, так и компьютеры являются начальными единицами вычислительного процесса, поэтому многие механизмы взаимодействия и передачи информации можно позаимствовать у клеток и спроецировать их на компьютерные сети.

Главным образом в своей работе Бурбек пытается найти ответ на вопрос «Чем противостоять возрастающей сложности информационных систем, и какие использовать методы для эффективного взаимодействия системных компонентов?». Автор пытается дать определение понятия системной сложности: «Мы привыкли думать о сложности, как о путанице, которую мы не в состоянии постичь. Это объясняет только один вид сложности, называемый детальной, или структурной сложностью. Другой вид сложности, обычно называемый динамической сложностью, накапливается самими системами и не имеет ничего общего с нашим пониманием. Этот второй вид сложности возникает естественно в системах, которые эволюционируют со временем, и заключаются в их функционировании: метеорологические, космологические, биологические, экологические, геологические, социальные, экономические и компьютерные системы. Оба вида сложности сбивают с толку в компьютерных системах. Мы сталкиваемся со структурной сложностью в исходном коде программы или в схеме базы данных, которые определяют структурные взаимоотношения между действующими элементами. Эти структурные описания обычно становятся настолько сложными, что они превосходят наши когнитивные способности к пониманию. Динамическая сложность качественно отличается; она заключается в том, что происходит в момент выполнения приложения, т.е. показывает, как разворачивается сценарий компьютерной программы в момент взаимодействия ее элементов».

Источник: https://www.bibliofond.ru/detail.aspx?id=896682