Методы и средства организации взаимодействия корпоративных информационных систем на основе сервис-ориентированной архитектуры тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Дергачев, Александр Андреевич

  • Дергачев, Александр Андреевич
  • кандидат науккандидат наук
  • 2014, Санкт-Петербург
  • Специальность ВАК РФ05.13.11
  • Количество страниц 144
Дергачев, Александр Андреевич. Методы и средства организации взаимодействия корпоративных информационных систем на основе сервис-ориентированной архитектуры: дис. кандидат наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Санкт-Петербург. 2014. 144 с.

Оглавление диссертации кандидат наук Дергачев, Александр Андреевич

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

ГЛАВА 1 ЗАДАЧИ И ПРОБЛЕМЫ ОРГАНИЗАЦИИ

ВЗАИМОДЕЙСТВИЯ ИНФОРМАЦИОННЫХ СИСТЕМ

§ 1.1 Интеграция информационных систем

1.1.1 Основная задача и предпосылки интеграции

1.1.2 Сервис-ориентированный подход и слабое связывание

1.1.3 Эталонная модель сервис-ориентированной архитектуры

1.1.4 Композиция веб-сервисов, оркестровка и хореография

§ 1.2 Анализ проблем организации взаимодействия веб-сервисов

1.2.1 Проблема поиска и распознавания подобных веб-сервиса

1.2.2 Языки и архитектурные стили описания веб-сервисов

1.2.3 Спецификации и протоколы организации взаимодействия

1.2.4 Проблема надежности взаимодействия веб-сервисов

§1.3 Постановка задачи

§ 1.4 Выводы

ГЛАВА 2 РАЗРАБОТКА КОНЦЕПТУАЛЬНОЙ МОДЕЛИ

ИНТЕГРАЦИИ ВЕБ-СЕРВИСОВ

§ 2.1 Термины и определения качества веб-сервисов

2.1.1 Характеристики качества веб-сервисов

2.1.2 Комплексные показатели качества веб-сервисов

2.1.3 Показатели качества обслуживания веб-сервисов

§ 2.2 Концепция функционального резерва веб-сервисов

2.2.1 Понятие универсума веб-сервисов

2.2.2 Расширение функционального описания веб-сервисов

§ 2.3 Концептуальная модель программной инфраструктуры

2.3.1 Компоненты программной инфраструктуры

2.3.2 Компоненты интеграционного программного обеспечения

2.3.3 Порядок взаимодействия компонентов

§ 2.4 Выводы

ГЛАВА 3 РАЗРАБОТКА АДАПТИВНОЙ СТРАТЕГИИ

ОТКАЗОУСТОЙЧИВОСТИ

§3.1 Мотивация разработки стратегии отказоустойчивости

3.1.1 Исследование показателей надежности веб-сервисов

3.1.2 Анализ проблем прогнозирования показателей

3.1.3 Наличие функционально подобных веб-сервисов

§ 3.2 Вычисление показателей стратегии отказоустойчивости

§ 3.3 Параметрическая модель стратегии отказоустойчивости

3.3.1 Требования и ограничения пользователя

3.3.2 Интегральный показатель эффективности стратегии

§3.4 Метод дискретного представления показателей

§ 3.5 Адаптивный алгоритм стратегии отказоустойчивости

§ 3.6 Экспериментальная оценка стратегий отказоустойчивости

§ 3.7 Выводы

ГЛАВА 4 РЕАЛИЗАЦИЯ ПРОГРАММНОЙ ИНФРАСТРУКТУРЫ

ИНТЕГРАЦИИ ВЕБ-СЕРВИСОВ

§ 4.1 Архитектура разработанных программных компонентов

4.1.1 Концепция расслоения программных систем

4.1.2 Модели и схемы расслоения программных системы

4.1.3 Архитектурные слои программной реализации

§ 4.2 Реализация компонентов анализа данных QoWS

4.2.1 Компонент агрегирования распределенных данных QoWS

4.2.2 Экспериментальная реализация функции агрегирования

4.2.3 Компонент прогнозирования показателей QoWS

§4.3 Выводы

ЗАКЛЮЧЕНИЕ

СПИСОК СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

ПРИЛОЖЕНИЕ

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Методы и средства организации взаимодействия корпоративных информационных систем на основе сервис-ориентированной архитектуры»

ВВЕДЕНИЕ

Актуальность темы исследования. В области разработки математического и программного обеспечения вычислительных машин, комплексов и компьютерных сетей одной из важнейших задач является создание и сопровождение программных средств различного назначения, в том числе программного обеспечения, предназначенного для организации взаимодействия программ и программных систем. Одним из направлений исследований, проводимых в данной области, является исследование сервис-ориентированного подхода и технологии веб-сервисов применительно к построению слабосвязанных распределенных систем, обеспечивающих взаимодействие информационных систем предприятий, занятых в различных сферах человеческой деятельности и предоставляющих свои услуги в виде сервисов [105]. При организации взаимодействия провайдера и потребителя услуги через Интернет говорят об организации взаимодействия веб-сервисов, являющихся автономными и самодокументируемыми веб-компонентами, предназначенными для организации межмашинного взаимодействия [14].

Современные информационные системы масштаба предприятия насчитывают сотни, а то и тысячи, программных приложений (коммерческих, собственной разработки, унаследованных и т.д.), разработанных для разных программных платформ (Java ЕЕ, Microsoft .NET, CORBA) и выполняющихся под управлением различных операционных систем, таких как Windows, Mac OS, Solaris [23]. При этом корпоративные приложения не могут существовать обособленно друг от друга. Для их интеграции на уровне данных могут использоваться файлы или базы данных. Для организации взаимодействия на программном уровне могут использоваться удаленные вызовы процедур или системы обмена сообщениями. С развитием интернет-ориентированной деятельности предприятий задача интеграции корпоративных приложений распространилась на среду Интернет и расширилась до организации взаимодействия корпоративных информационных систем предприятий [112].

На уровне Интернет интеграция подразумевает организацию взаимодействия независимых друг от друга приложений корпоративных информационных систем предприятий асинхронно по принципу слабой связи, что позволяет им продолжать работу, не дожидаясь ответа от вызываемой стороны. Это обусловило проявление особого интереса разработчиков интернет-ориентированных интеграционных решений к сервис-ориентированному подходу, который давно и широко используется в корпоративных информационных системах общего назначения, таких как Microsoft Dynamics АХ, SAP R3, Baan ERP и других [65], [81]. В его основу положена сервис-ориентированная архитектура, предполагающая использование слабосвязанных заменяемых программных компонентов, оснащенных стандартными интерфейсами для взаимодействия по стандартным протоколам [71].

С распространением сервис-ориентированного подхода на интеграционные решения интернет-масштаба стало увеличиваться количество функционально подобных веб-сервисов корпоративных информационных систем предприятий, предоставляющих родственные услуги. В развитии интернет-ориентированной деятельности предприятий и организации межкорпоративных бизнес-процессов наблюдается тенденция динамического перераспределения бизнес-процессов между исполнителями, образующими по сути единое виртуальное предприятие, а также изменения состава самих исполнителей, что усложняет задачу организации взаимодействия программ и программных систем предприятий и повышает ее значение.

Решаемой научной проблемой в диссертации является разработка методов и алгоритмов, обеспечивающих повышение надежности и эффективности функционирования программных средств организации взаимодействия корпоративных информационных систем, основанных на динамической композиции веб-сервисов.

Современное состояние разработанности темы. Отдельные вопросы организации взаимодействия веб-сервисов нашли отражение в трудах В. Benatallah, Q.Z. Sheng, M. Dumas, M. Conti, D. Fensel, P. Grefen, B. Medjahed и других зарубежных авторов [29], [30], [35], [43], [47], [68], [69], [70]. Среди отечественных авторов можно выделить работы A.A. Бабошина, А.М. Кашевника, A.B. Данилина, А.П. Карпенко, В.А. Курчидиса, A.B. Новицкого, A.B. Сорокина, В.А. Филиппова, Б.А. Щукина и других [2], [8], [11], [15], [18], [21]. Подавляющее большинство работ, касающихся темы управления композицией веб-сервисов, не затрагивает вопросов динамической организации слабосвязанных систем.

Объект исследования - слабосвязанные системы, основанные на сервис-ориентированном подходе и анализе показателей качества обслуживания веб-сервисов при выборе композиции веб-сервисов для организации взаимодействия корпоративных информационных систем.

Предмет исследования - методы и алгоритмы построения и реконфигурации композиции веб-сервисов на основе показателей качества обслуживания веб-сервисов.

Целью исследования является повышение эффективности и надежности процессов обработки данных в слабосвязанных системах масштаба предприятия за счет резервирования веб-сервисов корпоративных информационных систем функционально подобными веб-сервисами. Данная цель достигается решением следующих основных задач:

1. Анализ состояния работ в области систем организации доступа к веб-сервисам и обработки показателей качества обслуживания веб-сервисов, формирование основных направлений диссертационного исследования в части повышения надежности и эффективности использования веб-сервисов для организации взаимодействия корпоративных информационных систем.

2. Исследование методов вычисления и прогнозирования значений показателей качества обслуживания веб-сервисов в условиях

неопределенности состояния сети Интернет, разработка распределенной системы вычисления, хранения и агрегирования значений показателей качества обслуживания веб-сервисов.

3. Исследование способов повышения отказоустойчивости программного обеспечения применительно к веб-сервисам и разработка адаптивного алгоритма и стратегии повышения отказоустойчивости композиции веб-сервисов на основе избыточности экземпляров веб-сервисов -кандидатов на выполнение требуемых функций.

4. Разработка концепции функционального резервирования веб-сервисов и глобально распределенной программной инфраструктуры адаптивной отказоустойчивой сервис-ориентированной системы организации взаимодействия корпоративных информационных систем в условиях динамически меняющегося состава веб-сервисов и изменения значений показателей качества обслуживания веб-сервисов.

5. Экспериментальное исследование разработанных методов и алгоритмов для подтверждения достоверности полученных результатов.

Область исследования соответствует паспорту специальности 05.13.11 «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей» Номенклатуры специальностей научных работников:

Пункт 3. Модели, методы, алгоритмы, языки и программные инструменты для организации взаимодействия программ и программных систем.

Пункт 9. Модели, методы, алгоритмы и программная инфраструктура для организации глобально распределенной обработки данных.

Методы исследования. Для решения поставленных задач в работе использовались: математический аппарат теории вероятностей, методы имитационного моделирования, методы объектно-ориентированного проектирования и программирования.

Достоверность и обоснованность результатов исследований обеспечивается сравнением разработанных методов и алгоритмов с результатами исследований на программной модели, результатами экспериментальных исследований и опубликованными материалами других исследователей, а также внедрением полученных результатов. Воспроизводимость экспериментов обеспечивается использованием в них синтезированных наборов данных показателей обслуживания веб-сервисов и свободно распространяемого программного обеспечения.

Научная новизна. В диссертации получены следующие результаты, характеризующиеся научной новизной.

1. Концептуальная модель программной инфраструктуры для организации взаимодействия корпоративных информационных систем, отличающаяся расширением функционального описания веб-сервисов, позволяющим на случай отказа реализовать избыточность композиции веб-сервисов слабосвязанных систем посредством резервирования функционально подобными веб-сервисами.

2. Метод дискретного представления показателей, отличающийся прогнозированием вероятности попадания значений в заданный интервал и реализацией функции системы анализа показателей в программном обеспечении, выполняющимся на стороне пользователя, что позволяет точнее прогнозировать характер изменения значений интернет-зависимых показателей качества обслуживания веб-сервисов в условиях ограничения вычислительных ресурсов пользователя.

3. Алгоритм адаптивной отказоустойчивой системы организации доступа к функционально подобным веб-сервисам, отличающейся компонентной архитектурой реализации, позволяющий перестраивать композиции веб-сервисов слабосвязанных систем с учетом изменения состава представленных в сети Интернет функционально подобных веб-сервисов, значений показателей качества обслуживания веб-сервисов и характеристик самой интернет-среды.

Практическая ценность работы.

1. Разработана программная инфраструктура и реализовано программное обеспечение для организации доступ к функционально подобным веб-сервисам, позволяющее повысить отказоустойчивость композиции веб-сервисов за счет избыточности ее компонентов - веб-сервисов корпоративных информационных систем.

2. Разработанная компонентная архитектура и типовые решения проектирования, позволяют автоматизировать процесс разработки программной инфраструктуры и программного обеспечения для адаптивной отказоустойчивой системы организации взаимодействия корпоративных информационных систем посредством веб-сервисов. Основные положения, выносимые на защиту.

1. Концептуальная модель программной инфраструктуры для организации взаимодействия корпоративных информационных систем.

2. Метод дискретного представления показателей качества обслуживания веб-сервисов для прогнозирования вероятности попадания значений показателей в заданный интервал.

3. Алгоритм адаптивной отказоустойчивой системы организации доступа к функционально подобным веб-сервисам.

Апробация результатов исследования. Основные положения диссертационной работы и результаты исследований, включенные в диссертацию, докладывались на различных конференциях, в числе которых: VI и VIII Всероссийская межвузовская конференция молодых ученых (2009 г., 2011 г.); II, IV и V Научно-практическая конференция молодых ученых «Вычислительные системы и сети (Майоровские чтения)» (2010 г., 2012 г.); I, II и III Всероссийский конгресс молодых ученых (2012 г., 2013 г., 2014 г.); XLII Научная и учебно-методическая конференция НИУ ИТМО (2013 г.). Результаты диссертационного исследования внедрены в учебный процесс кафедры вычислительной техники Университета ИТМО.

Публикации. По теме диссертации опубликовано 9 научных работ [107]-[115], в том числе 4 из них [107], [111], [113], [114] в журналах, включенных в перечень ведущих рецензируемых научных журналов и изданий, в которых должны быть опубликованы основные научные результаты диссертации на соискание ученой степени доктора и кандидата наук.

Структура диссертационной работы. Диссертационная работа состоит из четырех глав, введения, заключения, библиографического списка, включающего 115 наименований, и приложения. Общий объем работы 144 страницы, включая 20 рисунков и 5 таблиц.

Во введении дана общая характеристика работы, обоснована актуальность, сформулированы цели, задачи и методы исследования, представлена новизна, показана научная и практическая ценность, приведены основные результаты работы.

Первая глава диссертационной работы характеризует состояние исследуемой предметной области. Для исследования главных вопросов работы в главе обсуждаются идеи, компоненты и инструменты сервис-ориентированной архитектуры. Представлены направления развития и предпосылки организации взаимодействия информационно-вычислительных систем различного назначения, проблемы и принципы интеграции программных приложений информационных систем, проблемы сервис-ориентированного взаимодействия. Выполнен анализ состояния работ в области надежности систем организации доступа к веб-сервисам, обработки и прогнозирования показателей качества обслуживания веб-сервисов. Определены основные направления и сформулированы задачи диссертационного исследования в части повышения надежности и эффективности использования веб-сервисов для организации взаимодействия корпоративных информационных систем.

Во второй главе даются определения характеристик, комплексных показателей и показателей качества обслуживания веб-сервисов.

Определяется понятие универсума веб-сервисов и общая терминология описания веб-сервисов на уровне концептуальной модели интеграции веб-сервисов: концепция функционального резерва, расширение функционального описания веб-сервисов, концептуальная модель программной инфраструктуры интеграции веб-сервисов. Последовательность взаимодействия компонентов инфраструктуры демонстрируется на гипотетическом примере описательно и в виде диаграмм, что позволяет наглядно оценить функциональные возможности инфраструктуры в целом и говорить о перспективах ее развития.

В третьей главе приводится мотивация и описание разработки адаптивной стратегии отказоустойчивости и необходимых для ее функционирования разработанных компонентов: параметрической модели, методов вычисления и прогнозирования показателей качества обслуживания веб-сервисов, адаптивного алгоритма динамической реконфигурации слабосвязанных систем распределенной обработки данных, построенного на основе вероятностной оценки динамически меняющихся показателей качества обслуживания веб-сервисов. Приводятся результаты экспериментальной оценки разработанной адаптивной стратегии, полученные на программной модели функционального резервирования и организации взаимодействия веб-сервисов в составе слабосвязанных сервис-ориентированных систем.

В четвертой главе представлена практическая реализация результатов, полученных в диссертационной работе: программная инфраструктура для организации взаимодействия корпоративных информационных систем; архитектура программных компонентов и интеграционного программного обеспечения; реализация компонентов системы обработки и анализа показателей качества обслуживания веб-сервисов и экспериментальное подтверждение ее эффективности.

В заключении сформулированы основные научные и практические результаты диссертационной работы.

ГЛАВА 1 ЗАДАЧИ И ПРОБЛЕМЫ ОРГАНИЗАЦИИ ВЗАИМОДЕЙСТВИЯ ИНФОРМАЦИОННЫХ СИСТЕМ

§ 1.1 Интеграция информационных систем

Информационные технологии являются важной составляющей процесса интеграции информационных ресурсов человеческого общества. К настоящему времени информационные технологии прошли несколько этапов эволюции, смена которых сопровождалась появлением новых технических, технологических и программных средств поиска и обработки данных, что в свою очередь привело к развитию информационно-вычислительных систем различного назначения.

В общем случае информационную систему можно определить как взаимосвязанную совокупность концепций, методов, технологий, технических и программных средств, используемых для сбора, обработки, хранения и выдачи информации потребителю в интересах достижения поставленной цели. Современная информационная система предполагает использование компьютера в качестве основного технического средства обработки информации. Компьютеры, оснащенные программными средствами, являются инструментом обработки и интерфейсом доступа к функциональным возможностям информационных систем. Разработка любой информационной системы начинается с определения ее миссии, задач, архитектуры, инфраструктуры, конфигурации, средств телекоммуникаций и круга пользователей, взаимодействующих зачастую с несколькими информационными системами посредством компьютера.

Организация среды взаимодействия является важнейшим фактором успешного развития информационных систем и с развитием среды Интернет стала немыслима в отрыве от интернет-технологий, в частности - технологии веб-сервисов, основу которой составляет сервис-ориентированный подход к организации взаимодействия и сервис-ориентированная архитектура.

1.1.1 Основная задача и предпосылки интеграции

Информационно-вычислительная инфраструктура современного предприятия насчитывает сотни программных приложений, реализующих бизнес-процессы, протекающие как внутри отдельной компании, так и связывающие отдельные цепочки бизнес-процессов различных компаний или их филиалов в единый сквозной бизнес-процесс. Все эти приложения разработаны в разное время и разными поколениями программистов внутреннего отдела информатизации предприятия, либо приобретены у стороннего поставщика. Естественно, что архитектура, язык программирования и программная среда выполнения каждого из приложений различны, что существенно затрудняет интеграцию программных приложений информационных систем предприятий в единую информационно-вычислительную среду.

Термин интеграция может иметь достаточно широкое определение и означать объединение компьютерных систем, компаний и людей [23], [85]. В общем случае можно сказать, что интеграция подразумевает обеспечение взаимодействия между множеством программ и программных систем, выполняющихся под управлением различных программно-аппаратных платформ, расположенных в территориально удаленных местах. Со временем предприятия развиваются, расширяется спектр их услуг, увеличивается число партнеров, что влечет появление новых целей и задач, и, как следствие, разработку, либо закупку необходимых программных приложений. Основная задача интеграции состоит в налаживании функциональных связей [42] между приложениями различных информационных систем.

Предпосылкой интеграции может явиться необходимость создания корпоративных информационных порталов, репликации данных, реализации распределенных бизнес-процессов и бизнес-функций совместного использования в масштабах виртуального предприятия [47], [79], [80]. В полупроводниковой индустрии примером может служить разработка и поставка виртуальных электронных компонентов (Semiconductor Intellectual

Property Core, SIP-компонент) в виде кода на языках описания аппаратных средств Verilog или VHDL, либо готовой топологии в формате GDSII [84]. Разработка SIP-компонентов, номенклатура и сложность которых постоянно увеличиваются, ведется множеством крупных и малых фирм. В настоящее время доступ к библиотекам SIP-компонентов предоставляют такие ведущие поставщики CAD/CAM/CAE-систем, как AutoCAD, SolidWorks, Synopsys, Mentor Graphics, Cadence, и разработчики SIP-компонентов "на продажу", такие как ARM, Dolphin, Verisilicon и другие. На рисунке 1 представлена типовая структура процессора мобильных приложений с различными типами используемых в нем SIP-компонентов, которые могут быть поставлены несколькими компаниями-разработчиками [16].

Рисунок 1 - Типовая структура процессора мобильных приложений

SIP-компоненты поставляются в электронном виде, что позволяет автоматизировать процесс их поставки и приобретения на программном уровне и свести к минимуму участие человека в поиске и выборе необходимого SIP-компонента [52]. При этом поставки такой интеллектуальной продукции осуществляются через Интернет, в связи с чем получили широкое распространение системы В2В (Business to Business). При организации доступа к библиотекам SIP-компонентов посредством веб-

сервисов возникает проблема выбора поставщика-исполнителя из множества конкурентов с учетом динамики изменения их количественного состава и показателей качества обслуживания веб-сервисов.

Другим примером может служить издательская деятельность. Так массово тиражируемые издания и отдельные тома многотомных коллекций (например, такие издательские проекты, как «Великие художники» или «Музеи мира») могут подготавливаться разными издательствами, а тираж одного и того же тома может быть отпечатан в нескольких типографиях, находящихся в разных странах. При этом потенциальных кандидатов на выполнение работ может быть много - от крупных издательств и типографий, до небольших издательских фирм. Учитывая массовость тиража каждого тома и недельный интервал между их выпусками, а также загруженность издательств и типографий плановыми изданиями, задача организации оперативного поиска кандидатов-исполнителей, распределения и параллельного выполнения работ над масштабными издательскими проектами актуальна и может быть решена на уровне организации взаимодействия корпоративных информационных систем и информационно-издательских систем посредством веб-сервисов [111], [112].

Динамическая реконфигурация таких сложных распределенных систем основана на постоянном отслеживании текущего состава представленных в сети Интернет веб-сервисов информационно-вычислительных систем различного назначения [109]. Возможным решением могла бы стать программная реализация системы доступа к веб-сервисам [113].

1.1.2 Сервис-ориентированный подход и слабое связывание

Интеграционные решения являются важнейшими компонентами стратегии развития современных компаний, способными вместе с тем усложнить жизнь сотрудникам отделов автоматизации обработки данных и департаментов информатизации. Одновременно с широкими возможностями, открывающимися перед компаниями по организации сквозных бизнес-процессов с фактически неограниченным количеством интернет-партнеров,

появилась необходимость создания надежных и эффективных средств их программной реализации [42].

Наиболее популярным подходом в области интеграции является создание слабосвязанных систем. Термин слабое связывание, как и его преимущества по отношению к созданию сильно связанных систем, известен уже давно. Основным принципом слабого связывания является минимизация числа допущений, которые делают разработчики компонентов и приложений взаимодействующих сторон. Безусловно, наличие детальной информации о протоколах и форматах данных позволяет повысить эффективность взаимодействия, но получаемое при этом сильно связанное интеграционное решение крайне чувствительно к изменениям.

С появлением сервис-ориентированной архитектуры (англ. Service-Oriented Architecture, SOA), технологии веб-сервисов и стремительным развитием Интернет перспектива создания глобально-распределенных слабосвязанных систем превратилась в реальность [60], [85]. В основе данной архитектуры лежат принципы многократного использования программных компонентов, позволяющие исключить дублирование функциональности программного обеспечения.

С точки зрения разработки и интеграции информационных систем сервис-ориентированная архитектура является парадигмой организации и использования бизнес-процессов и ресурсов, принадлежащих различным областям производственной и экономической деятельности. Она позволяет структурировать развертывание и организацию информационной технологии в рамках конкретного предприятия или консорциума предприятий, которым необходимо взаимодействовать друг с другом. Тем не менее, основные концепции сервис-ориентированного подхода, как правило, реализуются для предоставления электронных услуг посредством веб-сервисов, которые взаимодействуют друг с другом через Интернет, в отличие от бизнес-услуг, которые могут быть выполнены вручную. В связи с этим, SOA также можно рассматривать как принцип для разработки архитектуры программного

обеспечения, который строится вокруг понятия веб-сервиса самодостаточного, автономного, повторно используемого программного компонента с инкапсулированной функциональностью, доступного через Интернет. Программные системы, разработанные в соответствии с SOA, реализуются как набор веб-сервисов, интегрированных при помощи стандартных протоколов (UDDI, SOAP, WSDL) [72], [89], [90], [91]

Рисунок 2 - Взаимодействия пользователя и провайдера веб-сервиса

Организованные на основе 80А слабосвязанные распределенные системы состоят из взаимодействующих агентов поставщиков и потребителей сервисов, выполняющих определенные задачи [41]. Агенты распределенной системы не работают в одной и той же среде выполнения и связываются друг с другом с помощью протоколов через сеть. В распределенных системах скорость выполнения задач зависит от скорости удаленного доступа к агентам, а надежность - от ошибок коммуникации между агентами.

БОА характеризуется следующими свойствами, отражающими особенности сервис-ориентированного подхода: логическое представление

сервиса, сообщения, описание, степень детализации, передача по сети и кроссплатформенность. Сервис определяется в терминах сообщений, участвующих в обмене между агентами поставщиков и потребителей сервисов. SOA не определяет внутреннюю структуру агентов, их реализацию, тем самым обеспечивая совместимость между любыми программными компонентами, удовлетворяющими требованиям обмена сообщениями в определении сервиса. Сервисы используют небольшой набор операций с большим набором сообщений, определяющих степень детализации описания сервиса. Сообщения, участвующие в обмене с сервисами, имеют стандартизованный кроссплатформенный XML-формат [104]. Взаимодействие с сервисами может осуществляться с помощью сетевого соединения.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Список литературы диссертационного исследования кандидат наук Дергачев, Александр Андреевич, 2014 год

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

Специальная литература

1. Ахо А. Структуры данных и алгоритмы. [Текст] / А. Ахо, Д. Хопкрофт, Д.Ульман; пер. с англ. - М.: Издательский дом "Вильяме",2010. - 400 с.

2. Бабошин, A.A. Подход к организации взаимодействия веб-сервисов на основе модели потока работ [Текст] / A.A. Бабошин, A.M. Кашевник // Труды СПИИРАН, вып. 5 - СПб.: Наука, 2007. сс. 247-254.

3. Браун, К. Создание корпоративных Java-приложений для IBM WebSphere [Текст] / Кайл Браун, Гери Крейг, Грег Хестер, Рассел Стайнаур, В. Девид Питт, Марк Витцель, Джим Амсден, Петер М. Джекоб, Дениэл Берг; пер. с англ. - М.: КУДИЦ-ОБРАЗ, 2005. - 860 с.

4. Вирт Н. Алгоритмы и структуры данных. [Текст] / Н. Вирт; пер. с англ. -СПб.: Невский диалект, 2008. - 352 с.

5. ГОСТ 27.002-89 Надежность в технике. Основные понятия. Термины и определения [Текст] / официальное издание - М.: Стандартинформ, 2010.-33 с.

6. ГОСТ 34.003-90 Информационная технология. Комплекс стандартов на автоматизированные системы. Автоматизированные системы. Термины и определения [Текст] / официальное издание - М.: Стандартинформ, 2009. - 16 с.

7. ГОСТ Р ИСО/МЕК 9126-93 Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению [Текст] / официальное издание - М.: ИПК Издательство стандартов, 2004. - 12 с.

8. Данилин, A.B. Среда электронного взаимодействия для электронного правительства [Текст] / A.B. Данилин // Москва, журнал "Информационное общество", 2003, вып. 1, сс. 41-52.

9. Дергачев, A.M. Проблемы эффективного использования сетевых сервисов // Научно-технический вестник СПбГУ ИТМО. 2011. № 1 (71). С. 83-87.

10. Кириллов В. В., Лукьянов Н. М. Анализ факторов, влияющих на качественные и количественные показатели функционирования систем распределенного хранилища данных // Научно-технический вестник СПбГУ ИТМО. - 2008. - № 11 (56). - С. 9-16.

11. Курчидис, В. А. Организация Web-взаимодействий в сервис-ориентированных прикладных системах [Текст] / В.А. Курчидис, М.Ю. Лунев, A.C. Назанский, С.А. Рыльков - Ярославль.: Яросл. гос. ун-т, 2002.-97 с.

12. Лукьянов Н. М., Дергачев А. М. Организация сетевого взаимодействия узлов распределенной системы хранения данных // Научно-технический вестник СПбГУ ИТМО. - 2011. - № 2 (72). - С. 137-140.

13. Маннинг, Кристофер Д. Введение в информационный поиск [Текст] / Кристофер Д. Маннинг, Прабхакар Рагхаван, Хайнрих Шютце; пер. с англ. - М.: Издательский дом "Вильяме", 2010. - 528 с.

14. Машнин, Т.С. Web-сервисы Java [Текст] / Тимур Машнин - СПб.: БХВ-Перербург, 2012. - 560 с.

15. Новицкий, A.B. Подход к построению сервис-ориентированной электронной библиотеки в среде Semantic Web на основе репланирования [Текст] / A.B. Новицкий // Труды 10-й Всероссийской научной конференции "Электронные библиотеки: перспективные методы и технологии, электронные коллекции" - RCDL'2008, Дубна, Россия, 2008, сс. 392-396.

16. Палташев, Т. Развитие индустрии полупроводниковых виртуальных компонентов [Текст] / Т. Палташев, А. Игликов, М. Алексеев // Компоненты и технологии. -2012.-№ 5.-С. 44-50

17. Соболь, И.М. Выбор оптимальных параметров в задачах со многими критериями [Текст] / И.М. Соболь, Р.Б. Статников - М.: Дрофа, 2006. -175 с.

18. Сорокин, A.B. Проблемы интернета: Взаимодействие Web-сервисов -новый этап развития интернета [Электронный ресурс] / A.B. Сорокин // Российская ассоциация электронных библиотек, http://www.aselibrary.ru/datadocs/doc_754ge.pdf

19. Таненбаум, Э. Распределенные системы, Принципы и парадигмы [Текст] / Э. Таненбаум; пер. с англ. - СПб.: Питер, 2003. - 877 с.

20. Фаулер, М. Архитектура корпоративных программных приложений [Текст] / Мартин Фаулер; пер с англ. - М.: Издательский дом "Вильяме", 2006. - 544 с.

21. Филиппов, В.А. Информационные взаимодействия и web-сервисы [Текст] / В.А. Филиппов, Б.А. Щукин, Богатырева JI.B. - М.: ЛЕНАНД, 2009. - 144 с.

22. Философский энциклопедический словарь [Текст] / Гл.ред.: Л.Ф. Ильичев, П.Н. Федосеев, С.М. Ковалев, В.Г. Панов - М.: Советская энциклопедия, 1983. - 840 с.

23. Хоп, Г. Шаблоны интеграции корпоративных приложений [Текст] / Грегор Хоп, Бобби Вульф; пер. с англ. - М.: Издательский дом "Вильяме", 2007. - 672 с.

24. Черноруцкий, И.Г. Методы оптимизации. Компьютерные технологии [Текст] / И.Г. Черноруцкий - СПб: БХВ-Петербург, 2011. - 384 с.

25. Adams, Jonathan. Patterns for e-business: A Strategy for Reuse [Текст] / Jonathan Adams, Srinivas Koushik, Guru Vasudeva, George Galambos -IBM Press, 2001.

26. Alonso, G. Web Services: Concepts, Architecture, and Applications. [Текст] / G. Alonso, F. Casati, H. Kuno, V. Machiraju - Springer Verlag, June 2003.

27. Alur, D. Core J2EE Pattern: Best Practices and Design [Текст] / Deepak Alur, John Crupi, Dan Malks - Prentice Hall, 2003. - 528 p.

28. Barros, A. Handbook of Service Description. USDL and Its Methods [Текст] / Alistair Barros, Daniel Oberle (Eds.) - New York: Springer Science+Business Media, 2012 - 538 p.

29. Benatallah, B. Declarative Composition and Peer-to-Peer Provisioning of Dynamic Web Services [Текст] / В. Benatallah, M. Dumas, M. Sheng, A. H. H. Ngu // ICDE '01: Proceedings of the 17th International Conference on Data Engineering - San Jose, California, USA, February 2002.

30. Benatallah, B. The Self-Serv Environment for Web Services Composition [Текст] / В. Benatallah, Q. Z. Sheng, and M. Dumas // IEEE Internet Computing, 7(l):40-48, 2003.

31. BitTorrent. Официальный BitTorrent-клиент [Электронный ресурс] / http://www.bittorrent.com/intl/ru/.

32. Buttcher, Stefan. Information Retrieval : Implementing and Evaluating Search Engines [Текст] / Stefan Buttcher, Charles L.A. Clark, Gordon V. Cormack - Massachusetts: MIT Press, 2010. - 606 p.

33. Calero, Coral. Handbook of research on Web information systems quality [Текст] / Coral Calero, Ma Angeles Moraga, Mario Piattini, editors -Information Science Reference (an imprint of IGI Global), 2008. - 558 p.

34. Cardoso, J. Quality of service and semantic composition of workflows. Ph.D Thesis [Текст] / J. Cardoso - University of Georgia, Athens, GA, 2002.

35. Conti, M. Quality of Service Issues in Internet Web Services [Текст] / M. Conti, M. Kumar, S. K. Das, and B. A. Shirazi // IEEE Transactions on Computers, 51(6):593 - 594, 2002.

36. DB-Engines. Ranking the popularity of database management systems. 2012. [Электронный ресурс]. — Режим доступа: http://db-engines.eom/en/blog_post/l, свободный. Яз. англ. (дата обращения 09.06.2013)

37. De Bruijn, Jos. Modeling Semantic Web Services [Текст] / Jos de Bruijn, Dieter Fensel, Mick Kerrigan, Uwe Keller, Holger Lausen, James Scicluna -Springer-Verlag Berlin Heidelberg, 2008. - 192 p.

38. Deb, K. Multi-Objective Optimization using Evolutionary Algorithms [Текст] / Kalyanmoy Deb - John Wiley & Sons, Chichester, 2001. - 497 p.

39. Dong, X. Similarity search for web services [Текст] / X. Dong, A. Y. Halevy, J. Madhavan, E. Nemes, and J. Zhang // VLDB '04: Proceedings of the Thirtieth International Conference on Very Large Data Bases - VLDB Endowment, 2004, pages 372-383.

40. Dover D. Search Engine Optimization Secrets [Текст] / Danny Dover -Indianapolis: Wiley Publishing, Inc., 2011. - 537 p.

41. Endrei, Mark. Pattern : Service-Oriented Architecture and Web Services [Текст] / Mark Endrei, Jenny Ang, All Arsanjani, Sook Chua, Philippe Comte, Pal Krogdahl, Min Luo, Tony Newling - IBM Press, 2004. - 348 p.

42. Eom, Sean B. Inter-Organizational Information Systems in the Internet Age [Текст] / Sean B. Eom - Idea Group Publishing, 2005. - 373 p.

43. Fensel, D. The Web Service Modeling Framework WSMF [Текст] / D. Fensel and C. Bussler // Electronic Commerce: Research and Applications, pages 113-137, 2002.

44. Feuerlicht, G. Simple Metric for Assessing Quality of Service Design [Текст] / George Feuerlicht // LNCS 6568 Services Science: Service-Oriented Computing - Berlin: Springer-Verlag Berlin Heidelberg, 2011, pp. 133-143.

45. Glass Fish, Java EE open source application server [Электронный ресурс] / http ://glassfish.j ava.net/

46. Grand, M. Java Enterprise Design Patterns [Текст] / Mark Grand - Wiley Computer Publishing, 2002. - 486 p.

47. Grefen, P. Cross-Organizational Workflow Management for Service Outsourcing in Dynamic Virtual Enterprises [Текст] / P. Grefen, K. Aberer, H. Ludwig, Y. Hoffner // Data Engineering, Vol 24, No 1, March 2001.

48. Hamadi, R. A petri net-based model for web service composition [Текст] / R. Hamadi and B. Benatallah // Fourteenth Australasian Database Conference on Database Technologies, pages 191-200, 2003.

49. Harper S. Web Accessibility. A Foundation for Research [Текст] / Simon Harper, Yeliz Yesilada, Editors - London: Springer-Verlag London Limited,

2008.-364 p.

50. He, Jing. Effective Time Ratio: A Measure for Web Search Engines with Document Snippets [Текст] / Jing He, Baihan Shu, Xiaoming Li, Hongfei Yan / Information Retrieval Technology: 6th Asia Information Retrieval Societies Conference, AIRS 2010 Taipei, Taiwan, December 1-3, 2010 Proceedings - Springer-Verlag Berlin Heidelberg 2010 AIRS 2010, LNCS 6458, pp. 73-84, 2010.

51. Hemrajani, A. Agile Java Development with Spring, Hibernate and Eclipse [Текст] / Anil Hemrajani - Sams, 2006. - 360 p.

52. IEEE Standard for IP-XACT, Standard Structure for Packaging, Integrating, and Reusing IP within Tool Flows. [Электронный ресурс] / IEEE Computer Society and the IEEEE Standards Association Corporate Advisory Group. URL: http://standards.ieee.org/getieee/1685/download/1685-

2009.pdf

53. ISO/IEC 25000:2014 Systems and software engineering ~ Systems and software Quality Requirements and Evaluation (SQuaRE) - Guide to SQuaRE [Электронный ресурс] / The International Organization for Standardization. URL: http://www.iso.org

54. ISO/IEC 25010:2011 Systems and software engineering ~ Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models [Электронный ресурс] / The International Organization for Standardization. URL: http://www.iso.org

55. ISO/IEC 25012:2008 Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) - Data quality

model [Электронный ресурс] / The International Organization for Standardization. URL: http://www.iso.org

56. ISO/IEC 25020:2007 Systems and software engineering ~ Systems and software Quality Requirements and Evaluation (SQuaRE) - Measurement reference model and guide [Электронный ресурс] / The International Organization for Standardization. URL: http://www.iso.org

57. ISO/IEC 25030:2007 Systems and software engineering ~ Systems and software Quality Requirements and Evaluation (SQuaRE) - Quality requirements [Электронный ресурс] / The International Organization for Standardization. URL: http://www.iso.org

58. Jayasinghe, D. Apache Axis2 Web Services, 2nd Edition [Текст] / Deepal Jayasinghe, Afkham Azeez - Olton Birmingham: Packt Publishing, 2011 -288 p.

59. Jurca, R. Reliable QoS monitoring based on client feedback [Текст] / R. Jurca, B. Faltings, andW. Binder // WWW '07: Proceedings of the 16th International Conference on World Wide Web, pages 1003-1012, New York, NY, USA, 2007. ACM.

60. Kaye, D. Loosely Coupled: The Missing Pieces of Web Services [Текст] / Doug Kaye - RDS Press, 2003. - 352p.

61. Keller, A. The WSLA framework: specifying and monitoring service level agreements for Web services. [Текст] / A. Keller, H. Ludwig - IBM Research Division, 2002.

62. Liu, A. FACTS: A Framework for Fault-Tolerant Composition of Transactional Web Services [Текст] / An Liu, Qing Li, Liusheng Huang, and Mingjun Xiao // IEEE Transaction on Services Computing, Vol.3, No.l: 46-59, 2010.

63. Liu NN, Yang Q Eigenrank: a ranking-oriented approach to collaborative filtering. In: Proceedings of the 31st international ACM SIGIR conference on research and development in information retrieval (SIGIR'08), Singapore, pp 83-90, 2008.

64. Marinescu, F. EJB Design Patterns: Advanced Patterns, Processes, and Idioms [Текст] / Floyd Marinescu - John Wiley & Sons, Inc, 2002. - 288 p.

65. Mattern, T. Enterprise SOA: Designing IT for Business Innovation [Текст] / Thomas Mattern, Dan Woods - O'Reilly, 2006. - 452 p.

66. Maximilien, E. M. A framework and ontology for dynamic web services selection [Текст] / E. M. Maximilien, M. P. Singh // IEEE Internet Computing, 8(5):84-93, 2004.

67. Mcgover, James. Enterprise Service Oriented Architectures: Concepts, Challenges, Recommendations [Текст] / James Mcgover, Oliver Sims, Ashish Jain, Mark Little - Springer, 2006. - 408 p.

68. Medjahed, B. Business-to-business interactions: issues and enabling technologies [Текст] / В. Medjahed, В. Benatallah, A. Bouguettaya, A. H. H. Ngu, A. K. Elmagarmid // The VLDB Journal, 12(1):59-85, 2003.

69. Medjahed, B. A Multilevel Composability Model for Semantic Web Services [Текст] / В. Medjahed and A. Bouguettaya // IEEE Transaction on Knowledge and Data Engineering (TKDE), 17(7):954-968, July 2005.

70. Medjahed, B. Infrastructure for E-Government Web Services [Текст] / В. Medjahed, A. Rezgui, A. Bouguettaya, and M. Ouzzani // IEEE Internet Computing, 7(l):58-65, 2003.

71. Minoli, D. Enterprise architecture A to Z: frameworks, business process modeling, SOA, and infrastructure technology [Текст] / Dan Minoli -Auerbach Publications Taylor & Francis Group, LLC, 2008. - 481 p.

72. OASIS. Universal Description, Discovery, and Integration (UDDI) [Электронный ресурс] / http://www.uddi.org.

73. Open Solaris. ORACLE Solaris [Электронный ресурс] / http ://hub. opensolari s. org/.

74. Oracle Database llg Express Edition. ORACLE [Электронный ресурс] / http://www.oracle.com/technetwork/database.

75. OSCache. Java.net The Source for Java Technology Collaboration [Электронный ресурс] /http://java.net/projects/oscache.

76. Ouzzani, M. Efficient Access to Web Services [Текст] / M. Ouzzani and B. Bouguettaya // IEEE Internet Computing, 37(3), March 2004.

77. Ouzzani, M. Semantic Web Services for Web Databases [Текст] / M. Ouzzani and B. Bouguettaya - Springer Science+Business Media, 2011. -146 p.

78. Pernici, B. Adaptation of Web Services Based on QoS Satisfaction [Текст] / Barbara Pernici, S. Hossein Siadat // LNCS 6568 Services Science: Service-Oriented Computing - Berlin: Springer-Verlag Berlin Heidelberg, 2011, pp. 65-75.

79. Petrie, C. Service Agents and Virtual Enterprises: A Survey [Текст] / С. Petrie, С. Bussler // IEEE Internet Computing, 7(4):68-78, 2003.

80. Protogeros, Nicolaos. Agent and web service technologies in virtual enterprises [Текст] / Nicolaos Protogeros, editor - Information Science Reference (an imprint of IGI Global), 2008. - 383 p.

81. Qiu, Robin G. Enterprise Service Computing: from Concept to Deployment [Текст] / Robin G. Qiu - London: Idea Group Publishing, 2007. - 426 p.

82. Robillard, M.P. Recommendation Systems in Software Engineering [Текст] / Martin P. Robillard, Walid Maalej, Robert J. Walker, Thomas Zimmermann (Eds.) - Berlin: Springer-Verlag Berlin Heidelberg, 2014. -562 p.

83. Rosario, S. Probabilistic QoS and soft contracts for transaction-based Web services orchestrations. [Текст] / S. Rosario, A. Benveniste, S. Haar, C. Jard - IEEE Trans Serv Comput 1(4): 187-200, 2008.

84. Understanding The Semiconductor Intellectual Property (SIP) Business Process: Finding, Evaluating And Licensing Commercial SIP - GSA's IP Subcommittee's Industry Baseline Working Group. [Электронный ресурс] http://www.gsaglobal.org/resources/tools/docs/Handbook_Understanding_SI P_BusinessProcess.pdf

85. Schall, D. Service-Oriented Crowdsourcing. Architecture, Protocols and Algorithms [Текст] / Daniel Schall - New York: Springer Science+Business Media, 2012-94 p.

86. Struts. Apache Software Foundation [Электронный ресурс] / http ://j akarta. apache. org/struts/

87. Theuerkorn, F. Lightweight enterprise architectures [Текст] / Fenix Theuerkorn - Auerbach Publications, 2005. - 319 p.

88. Turner, Raymond. Computable Models [Текст] / Raymond Turner -Springer-Verlag London Limited, 2009. - 240 p.

89. W3C. Simple Object Access Protocol (SOAP). [Электронный ресурс] / http://www.w3 .org/TR/soap.

90. W3C. Web Service Architecture. [Электронный ресурс] / http://www.w3.org/TR/ws-arch/, 2003.

91. W3C. Web Service Description Language (WSDL). [Электронный ресурс] / http://www.w3.org/TR/wsdl.

92. W3C. OWL Web Ontology Language Reference (OWL). [Электронный ресурс] / http://www.w3.org/TR/owl-ref/.

93. Wilde E. REST: From Research to Practice [Текст] / Erik Wilde, Cesare Pautasso, Editors - New York: Springer, 2011. - 528 p.

94. WS-I. Web Services Interoperability Organization. [Электронный ресурс] / http://www.ws-i.org/.

95. Yu, Т. Efficient algorithms for web services selection with end-to-end QoS constraints [Текст] / Т. Yu, Y. Zhang, and K. J. Lin // ACM Trans. Web, 1(1), 2007.

96. Yu, Qi. A Foundational Framework for Service Query Optimization. [PhD thesis] / Qi Yu - Department of Computer Science and Applications, Virginia Polytechnic Institute and State University, Blacksburg, VA, 2008.

97. Yu, Qi. Foundations for Efficient Web Service Selection [Текст] / Qi Yu, Athman Bouguettaya - New York.: Springer Sciens + Business Media, 2009.

98. Zhang, L.J. Modern technologies in Web services research [Текст] / Liang-Jie Zhang - IGI Publishing, 2007. - 283 p.

99. Zeng, L. QoS-aware Middleware for Web Services Composition [Текст] / L. Zeng, B. Benatallah, A.H.H. Ngu, M. Dumas, J. Kalagnanam, H. Chang // IEEE Trans. Softw. Eng., 30(5):311-327, 2004.

100. Zeng, L. Quality Driven Web Services Composition [Текст] / L. Zeng, B. Benatallah, M. Dumas, J. Kalagnanam, Q. Sheng // WWW '03: Proceedings of the 12th international conference on World Wide Web, pages 411-421, New York, NY, USA, 2003. ACM.

101. Zheng, George. Web Service Mining [Текст] / George Zheng, Athman Bouquettaya - Springer Science+Business Media, LLC, 2010. - 136 p.

102. Zheng Z, Lyu MR Collaborative reliability prediction for service-oriented systems. In: Proceedings of the IEEE/ACM 32nd international conference on software engineering, Cape Town, South Africa, pp 35^44, 2010.

103. Zheng, Z. QoS Management of Web Services [Текст] / Zibin Zheng, Michael R. Lyu - Berlin: Springer-Verlag Berlin Heidelberg, 2013. - 150 p.

104. Zhuk, Jeff. Integration-Ready Architecture and Design: Software Engineering With XML, Java, .NET, Wireless, Speech, and Knowledge Technologies [Текст] / Jeff Zhuk - CamBRidGe UNiveRsitY PRess, 2004. -609 p.

105. Zimmermann, Olaf. Perspectives on Web Services; Applying SOAP, WSDL, and UDDI to Real-World Projects [Текст] / Olaf Zimmermann, Mark R Tomlinson, Stefan Peuser - Springer, 2003.

106. Zirpins, C. Engineering Service-Oriented Applications [Текст] / Christian Zirpins, George Feuerlicht, Winfried Lamersdorf, Guadalupe Ortiz // LNCS 6568 Services Science: Service-Oriented Computing - Berlin: SpringerVerlag Berlin Heidelberg, 2011, pp. 62-65.

Публикации и научно-исследовательские работы автора

107. Дергачев, A.A. Анализ данных на основе платформы SQL-MAPREDUCE [Текст] // Научно-технический вестник информационных технологий, механики и оптики. / Главный редактор д.т.н., проф. В.О. Никифоров - СПб: НИУ ИТМО, 2014. - № 01(89) - С. 66-87.

108. Дергачев A.A., Черняк Э.А. Выбор композиции веб-сервисов на основе оценки параметров качества обслуживания [Текст] // Сборник тезисов докладов конгресса молодых ученых, Выпуск 1. - СПб: НИУ ИТМО, 2014.-С. 57.

109. Дергачев A.A., Сафронов А.Г. Динамическая реконфигурация систем с сервис-ориентированной архитектурой [Текст] // Сборник тезисов докладов конгресса молодых ученых, Выпуск 1. - СПб: НИУ ИТМО, 2014. - С. 117.

110. Дергачев A.A., Сафронов А.Г. Интеграция веб-сервисов на основе онтологии предметной области [Текст] // Сборник трудов молодых ученых и сотрудников кафедры ВТ, Выпуск 4. / Под ред. д.т.н., проф. Т.И. Алиева. - СПб: СПб НИУ ИТМО, 2013. - С. 14-17.

111. Дергачев, A.A. Концептуальное расширение функционального описания веб-сервисов [Текст] // Научно-технический вестник информационных технологий, механики и оптики. / Главный редактор д.т.н., проф. В.О. Никифоров - СПб: НИУ ИТМО, 2014. - № 02(90) - С. 174-176.

112. Дергачев A.A., Сафронов А.Г. Организация взаимодействия корпоративных информационных систем на основе технологии веб-сервисов [Текст] // Сборник тезисов докладов конгресса молодых ученых, Выпуск 1. - СПб: НИУ ИТМО, 2012. - С. 76-77.

113. Дергачев A.M., Дергачев A.A. Компонентная архитектура системы доступа к веб-сервисам [Текст] // Научно-технический вестник информационных технологий, механики и оптики. / Главный редактор

д.т.н., проф. В.О. Никифоров - СПб: НИУ ИТМО, 2014. - № 03(91) - С. 172-174.

114. Дергачев A.M., Дергачев A.A. Параметры качества обслуживания web-сервисов отрасли приборостроения [Текст] // Известия вузов. Приборостроение. - СПб: НИУ ИТМО, 2014. - №4. - С. 27-29.

115. Лукьянов Н.М., Дергачев A.A. Алгоритмы обработки информационных потоков в распределенной системе хранения данных [Текст] // Сборник трудов конференции молодых ученых, Выпуск 4. Математическое моделирование и программное обеспечение / Главный редактор д.т.н., проф. В.Л. Ткалич. - СПб: СПбГУ ИТМО, 2009. - С. 217-222.

ПРИЛОЖЕНИЕ Программные модели стратегий отказоустойчивости Стратегия Повтор

package org.ifmo.qos.middleware.strategy.impl; import ...

public class StrategyRepeat extends AbstractStrategy { private int maxAttempts; public StrategyRepeat(int maxAttempts) { this.maxAttempts = maxAttempts;

}

@Override

public Response invoke(Request request) { Service service = chooseService(serviceBroker.findCommunity(request).getServices()); Response response; int attempt = 0; do {

response = service.invoke(request); attempt++;

} while (attempt < maxAttempts && response.hasErrorQ); return new Response(response.isSuccess(),

response.getDurationQ * attempt); >

private Service chooseService(List<ModelingService> services) { Map<Double, ModelingService> serviceMap = new TreeMap<Double, ModelingService>();

for (ModelingService service : services) {

ModelingParams params = service.getModelingParams(); double avgTime = 0;

for (int i = 1; i <= services.sizeQ; i++) { avgTime += params.getAverageTime() *

Math.pow(params.getFailureRate(), i ->

serviceMap.put(avgTime, service);

}

return serviceMap.values().iterator().next();

>

}

Стратегия Замещение

package org.ifmo.qos.middleware.strategy.impl; import ...

public class StrategyExchange extends AbstractStrategy { @Override

public Response invoke(Request request) { List<ModelingService> services = orderServices(serviceBroker.findCommunity(request).getServices());

List<Response> responses = new ArrayList<Response>(); for (Service service : services) {

Response response = service.invoke(request); responses.add(response); if (response.isSuccessQ) { break;

}

>

return assembleResponse(responses);

}

public Response assembleResponse(List<Response> responses) { Response result = new ResponseQ; for (Response resp : responses) {

result.setSuccess(resp.isSuccess()); result.addDuration(resp.getDuration());

}

return result;

}

private List<ModelingService> orderServices(List<ModelingService> services) {

Map<Double, List<ModelingService>> permutationMap = new TreeMap<Double, List<ModelingService>>();

List<List<ModelingService>> permutations = new ArrayList<List<ModelingService>>();

permute(permutationSj services, 0);

for (List<ModelingService> permutation : permutations) { double avgTime = 0; int i = 1;

for (ModelingService service : permutation) {

ModelingParams params = service.getModelingParams(); double avgTimel = params.getAverageTime(); for (int к = 1; к <= i - 1; k++) {

avgTimel *= permutation.get(k - 1).

getModelingParams().getFailureRate(); }

avgTime += avgTimel; i++;

>

permutationMap.put(avgTime, permutation);

>

return permutationMap.values() .iteratorQ .next();

}

>

Стратегия Один-из-п

package org.ifmo.qos.middleware.strategy.impl; import ...

public class StrategyOneFromN extends AbstractStrategy { @Override

public Response invoke(Request request) {

List<ModelingService> services = serviceBroker.findCommunity(request).getServices();

List<Response> responses = new Arrayl_ist<Response>(); for (Service service : services) {

Response response = service.invoke(request); responses.add(response);

}

return assembleResponse(responses);

}

private Response assembleResponse(List<Response> responses) { Response result = new Response(); double maxDuration = responses.iterator() ,next() .getDurationQ; int successCount = 0; for (Response resp : responses) {

if (resp. isSuccessQ) {

successCount++;

}

if (maxDuration < resp.getDuration()) { maxDuration = resp.getDurationQ;

}

}

if (successCount >= responses.size() / 2 + 1) { result.setSuccess(true);

}

result.setDuration(maxDuration); return result;

}

}

Стратегия Первый-из-п

package org.ifmo.qos.middleware.strategy.impl; import ...

public class StrategyFirstFromN extends AbstractStrategy { @Override

public Response invoke(Request request) { List<ModelingService> services = serviceBroker.findCommunity(request),getServices();

List<Response> responses = new ArrayList<Response>(); for (Service service : services) {

Response response = service.invoke(request); responses.add(response);

}

return assembleResponse(responses);

}

private Response assembleResponse(List<Response> responses) { Response result = new ResponseQ; double minDuration = Integer.MAX_VALUE; double maxDuration = responses.iterator().next().getDuration();

for (Response resp : responses) { if (resp.isSuccessQ) {

result.setSuccess(true); if (minDuration > resp.getDurationQ) { minDuration = resp.getDurationQ;

}

}

if (maxDuration < resp.getDuration()) { maxDuration = resp.getDuration();

}

}

result.setDuration(result.isSuccess() ? minDuration : maxDuration);

return result;

}

}

Последовательная стратегия Повтор-Замещение

package org.ifmo.qos.middleware.strategy.impl; import ...

public class StrategySequential extends AbstractStrategy { private int maxAttempts;

public StrategySequential(int maxAttempts) { this.maxAttempts = maxAttempts;

}

@Override

public Response invoke(Request request) { List<ModelingService> services = orderServices(serviceBroker.findCommunity(request).getServicesQ); List<Response> responses = new ArrayList<Response>(); for (Service service : services) { Response response; int attempt = 0; do {

response = service.invoke(request); responses.add(response); attempt++;

} while (attempt < maxAttempts && response.hasError()); if (response.isSuccessQ) { break;

}

}

return assembleResponse(responses);

}

public Response assembleResponse(List<Response> responses) { Response result = new ResponseQ; for (Response resp : responses) {

result. set Sue cess (resp. isSuccessQ); result.addDuration(resp.getDuration());

return result;

}

private List<ModelingService> orderServices(List<ModelingService> services) {

Map<Double, List<ModelingService>> permutationMap = new TreeMap<Double, List<ModelingService>>();

List<List<ModelingService>> permutations = new ArrayList<List<ModelingService>>();

permute(permutations, services, 0);

for (List<ModelingService> permutation : permutations) { double avgTime = 0; int i = 1;

for (ModelingService service : permutation) {

ModelingParams params = service.getModelingParamsQ; double avgTimel = params.getAverageTime(); for (int к = 1; к <= i - 1; k++) {

avgTimel *= permutation.get(k - 1).

getModelingParams().getFailureRate(); }

avgTime += avgTimel; i++;

}

permutationMap.put(avgTime, permutation);

}

return permutationMap.values().iteratorQ.next();

>

}

Параллельная стратегия Один-из-Первых-п

package org.ifmo.qos.middleware.strategy.impl; import ...

public class StrategyParallel extends AbstractStrategy { private int firstVoting;

public StrategyParallel(int firstVoting) { this.firstVoting = firstVoting;

}

@Override

public Response invoke(Request request) { List<ModelingService> services = serviceBroker.findCommunity(request).getServices();

List<Response> responses = new ArrayList<Response>(); for (Service service : services) {

Response response = service.invoke(request); responses.add(response);

>

responses = firstResponses(responses); return assembleResponse(responses);

}

private List<Response> firstResponses(List<Response> responses) { Collections.sort(responses);

int successCount = 0; int i = 1;

for (Iterator<Response> iterator = responses.iterator(); iterator.hasNextQ; ) {

Response response = iterator.next(); if (i > firstVoting && successCount >= firstVoting) { iterator.remove();

}

if (response.isSuccessQ) { successCount++;

}

i++;

>

return responses;

}

private Response assembleResponse(List<Response> responses) { Response result = new ResponseQ; double maxDuration = responses. iteratorQ .nextQ .getDurationQ; int successCount = 0; for (Response resp : responses) { if (resp.isSuccessQ) { successCount++;

}

if (maxDuration < resp.getDurationQ) { maxDuration = resp. getDurationQ;

>

>

if (successCount >= firstVoting / 2 + 1) { result.setSuccess(true);

}

result.setDuration(maxDuration); return result;

>

}

Адаптивная стратегия отказоустойчивости

package org.ifmo.qos.middleware.strategy.impl; import ...

public class StrategyAdaptive extends AbstractStrategy { private int maxAttempts; private int firstVoting;

public StrategyAdaptive(int maxAttempts, int firstVoting) { this.maxAttempts = maxAttempts; this.firstVoting = firstVoting;

>

^Override

public Response invoke(Request request) { Response response;

switch (request .getServiceCommunityModeQ) {

case PARALLEL:

response = invokeParallel(request); break; case SEQUENTIAL:

response = invokeSequential(request); break; default:

response = invokeSequential(request);

}

return response;

>

public Response invokeSequential(Request request) { List<ModelingService> services = orderServices(serviceBroker.findCommunity(request).getServices()); List<Response> responses = new ArrayList<Response>(); for (Service service : services) { Response response; int attempt = 0; do {

response = service.invoke(request); responses.add(response); attempt++;

} while (attempt < maxAttempts && response.hasError());

if (response.isSuccessQ) { break;

}

}

return assembleSequentialResponse(responses);

}

public Response assembleSequentialResponse(List<Response> responses) {

Response result = new ResponseQ;

for (Response resp : responses) {

result. setSuccess( resp. isSuccessQ); result. addDuration( resp. getDurationQ);

}

return result;

}

private List<ModelingService> orderServices(List<ModelingService> services) {

Map<Double, List<ModelingService>> permutationMap = new TreeMap<Double, List<ModelingService>>();

List<List<ModelingService>> permutations = new ArrayList<List<ModelingService>>();

permute(permutations, services, 0);

for (List<ModelingService> permutation : permutations) { double avgTime = 0; int i = 1;

for (ModelingService service : permutation) {

ModelingParams params = service.getModelingParamsQ;

double avgTimel = params.getAverageTimeQ; for (int k = 1; k <= i - 1; k++) {

avgTimel *= permutation.get(k - 1).

getModelingParams().getFailureRate(); }

avgTime += avgTimel; i++;

>

permutationMap.put(avgTime, permutation);

>

return permutationMap.valuesQ .iteratorQ .next();

}

public Response invokeParallel(Request request) { List<ModelingService> services = serviceBroker.findCommunity(request).getServices();

List<Response> responses = new ArrayList<Response>(); for (Service service : services) {

Response response = service.invoke(request); responses.add(response);

}

responses = firstResponses(responses); return assembleResponse(responses);

}

private List<Response> firstResponses(List<Response> responses) { Collections.sort(responses); int successCount = 0; int i = 1;

for (Iterator<Response> iterator = responses.iteratorQ; iterator.hasNextQ; ) {

Response response = iterator. nextQ; if (i > firstVoting && successCount >= firstVoting) { iterator. removeQ;

>

if (response.isSuccessQ) { successCount++;

>

i++;

}

return responses;

}

private Response assembleResponse(List<Response> responses) { Response result = new ResponseQ; double maxDuration = responses.iteratorQ .nextQ .getDurationQ; int successCount = 0; for (Response resp : responses) { if (resp.isSuccessQ) { successCount++;

if (maxDuration < resp.getDuration()) { maxDuration = resp.getDuration();

>

}

if (successCount >= firstVoting / 2 + 1) { result.setSuccess(true);

}

result.setDuration(maxDuration); return result;

}

}

Программная модель веб-сервиса

package org.ifmo.qos.service.modeling.impl; import ...

public class WebServiceClient implements ModelingService { private ModelingParams modelingParams; public WebServiceClient(ModelingParams modelingParams) { this.modelingParams = modelingParams;

>

@Override

public Response invoke(Request request) { boolean success = Randomlltils. isSuccess (modelingParams. getFailureRate());

double duration = modelingParams.getAverageTime(); return new Response(success, duration);

}

public ModelingParams getModelingParams() { return modelingParams;

}

}

Программная модель показателей качества обслуживания

package org.ifmo.qos.service.modeling; public class ModelingParams { private long averageTime; private double failureRate;

public ModelingParams(long averageTime, double failureRate) { this.averageTime = averageTime; this.failureRate = failureRate;

}

public long getAverageTime() { return averageTime;

>

public double getFailureRate() { return failureRate;

}

Программная модель запроса к веб-сервису package org.ifmo.qos.service;

import org.ifmo.qos.service.community.ServiceCommunityMode; import static

org.ifmo.qos.service.community.ServiceCommunityMode.AUTOMATIC; public class Request {

private String serviceCommunityld;

private ServiceCommunityMode ServiceCommunityMode = AUTOMATIC; public String getServiceCommunityId() { return serviceCommunityld;

}

public void setServiceCommunityId(String serviceCommunityld) { this.serviceCommunityld = serviceCommunityld;

}

public ServiceCommunityMode getServiceCommunityMode() { return ServiceCommunityMode;

}

public void setServiceCommunityMode(ServiceCommunityMode ServiceCommunityMode) {

this.ServiceCommunityMode = ServiceCommunityMode;

>

}

Программная модель ответа веб-сервиса

package org.ifmo.qos.service; import static java.lang.Double.valueOf; public class Response implements Comparable<Response> { private boolean success; private double duration;

public Response() { }

public Response(boolean success, double duration) { this.success = success; this.duration = duration;

}

public boolean isSuccess() { return success;

}

public void setSuccess(boolean success) { this.success = success;

}

public boolean hasError() { return ¡success;

>

public double getDuration() { return duration;

}

public void setDuration(double duration) {

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.