3.2 Реализация интерпретатора бизнес-процессов
Сгенерированный редактором BPEL файл является динамической ссылкой интерпретатора. Сервис проводит динамический синтаксический разбор бизнес-процессов, тем самым позволяя интерпретатору получать список актуальных бизнес-процессов.
Таким образом, клиент системы может получать список процессов и вызывать конкретный из них, не погружаясь в логику выполняемых методов в рамках процесса. Результат реализации сервиса представлен на рисунке 3.9.
Рисунок 3.9. Интерпретатор бизнес-процессов
3.3 Работа координатора на примере композиций сервисов
Рассмотрим работу координатора на примере сервиса, осуществляющего хранение документов на основе естественно-языковой индексации. У сервиса доступны следующие методы:
AuthorizeUser
GetCorpora
GetDocuments
GetDocument
MakeCommonCorpus
MakeCorpus
AddUser
UpdateUser
DeleteUser
AddDocument
UpdateDocument
DeleteDocument
UpdateCorpus
DeleteCorpus
FindDocuments
FindText
FindTextSimple
Создадим бизнес-процесс, в котором авторизуем пользователя, добавим точно такого же пользователя и затем удалим его. Для этого сначала необходимо в поле ввода ввести ссылку сервиса и нажать кнопку со знаком плюс (рис. 3.10).
Рисунок 3.10. Сервис хранения документов
Далее создадим бизнес-процесс под именем «Authorize» в рабочей зоне путем перетаскивания в рабочую область по очереди методов авторизации, добавления и удаления пользователя (рис 3.11).
Рисунок 3.11. Создание процесса
После создания процесса нужно его сохранить в облачный доступ путем нажатия клавиши «Сохранить» в правом нижнем углу, и попробуем протестировать наш процесс с помощью нашего тестового клиента. При запуске тестовый клиент выдает список всех сохраненных процессов. Далее нужно ввести имя нужного нам процесса, а именно «Authorize», и ввести логин и пароль пользователя (рис. 3.12).
Рисунок 3.12. Вызов процесса на выполнение
Удаление у данного сервиса не возвращает никакого результата, поэтому мы видим просто сообщение о том, что весь процесс выполнен успешно от начала и до конца.
3.4 Публикация сервиса
Для публикации сервиса используется портал Azure [16]. Это общедоступное облако, позволяющее размещать различные виды решений: от веб-сервисов и хранилищ данных до конечного программного обеспечения (рис. 3.13).
Рисунок 3.13. Портал Azure
С помощью профиля публикации веб-приложений, предоставляемого Azure, и встроенных средств Visual Studio сервис был опубликован. Доступ к сервису возможен по ссылке: https://processconvertor.azurewebsites.net. Тестирование координатора сервисов
После реализации координатора бизнес-процессов следует этап тестирования и отладки. На этом этапе будет проведено тестирование каждой функции по методу черного ящика. Будут максимально рассмотрены все возможные варианты наборов входных значений.
Сначала тестируем процесс добавления сервиса по ссылке и его удаления. Результат тестирования добавления сервиса приведен в таблице 3.1.
Таблица 3.1 - Тестирование добавления сервиса
|
№ теста |
Входные данные |
Ожидаемый результат |
Реальный результат |
|
|
1 |
Пустая строка |
Сообщение, что ссылка не введена |
Сообщение, что ссылка не введена |
|
|
2 |
http://addinxwcfsample.apphb.com/SayHelloService.svc (WCF сервис) |
Операции сервиса |
Операции сервиса |
|
|
3 |
https://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx (Web сервис) |
Операции сервиса |
Операции сервиса |
|
|
4 |
Некорректная ссылка |
Сообщение, что ссылка некорректна |
Сообщение, что ссылка некорректна |
Результат тестирования удаления сервиса из списка приведен в таблице 3.2.
Таблица 3.2 - Тестирование удаления сервиса
|
№ теста |
Входные данные |
Ожидаемый результат |
Реальный результат |
|
|
1 |
При удалении выбрана операция сервиса |
Удаление сервиса из списка |
Удаление сервиса из списка |
|
|
2 |
При удалении выбран сервис |
Удаление сервиса из списка |
Удаление сервиса из списка |
|
|
3 |
Попытка удаления пустого элемента TreeView |
Сообщение, что не выбран сервис для удаления |
Сообщение, что не выбран сервис для удаления |
Далее тестируем сохранение в BPEL файл бизнес-процессов. Необходимо проверить несовпадение количества входных параметров с аргументами, несовпадение типов параметров и аргументов. Для примера возьмем процесс, в котором вызывается метод EnumValutes(Seld:boolean):object. Результат тестирования представлен в таблице 3.3.
Таблица 3.3 - Тестирование сохранения процессов
|
№ теста |
Входные данные |
Ожидаемый результат |
Реальный результат |
|
|
1 |
Процесс с пустым набором параметров |
Сообщение об ошибке сохранения |
Сообщение об ошибке сохранения |
|
|
2 |
Процесс с 2-мя и более параметров |
Сообщение об ошибке сохранения |
Сообщение об ошибке сохранения |
|
|
3 |
Процесс с 1 параметром, тип которого отличен от boolean |
Сообщение об ошибке сохранения |
Сообщение об ошибке сохранения |
|
|
4 |
Процесс с 1 параметром, тип которого равен boolean |
Сообщение, что сохранение успешно завершено |
Сообщение, что сохранение успешно завершено |
При тестировании интерпретатора необходимо проверить все функции, описанные в контракте сервиса, а также ситуацию, когда в файле хранится пустые бизнес-процессы. Результаты тестирования представлены в таблице 3.4.
Таблица 3.4 - Тестирование интерпретатора процессов
|
№ теста |
Входные данные |
Ожидаемый результат |
Реальный результат |
|
|
1 |
Вызов функции (имя процесса, входные параметры) |
Результат выполнения бизнес-процесса |
Результат выполнения бизнес-процесса |
|
|
2 |
Вызов функции (пустое имя процесса, пустые входные параметры) |
Сообщение об ошибке вызова функции |
Сообщение об ошибке вызова функции |
|
|
3 |
Пустой входной список процессов |
Сообщение об ошибке получения процессов |
Сообщение об ошибке получения процессов |
После реализации координатора бизнес-процессов были написаны руководства пользователя и программиста. С текстом руководства пользователя можно ознакомиться в приложении В, а в приложении С находится текст руководства программиста.
Заключение
По итогам разработки координатора бизнес-процессов портала для проведения лингвистических исследований, можно сделать вывод, что поставленная цель была достигнута, все задачи были выполнены. В ходе работы были получены следующие результаты:
проведен сравнительный анализ существующих методов интеграций компонентов информационных систем с сервис-ориентированной архитектурой;
определены методы, которые будут использоваться в разрабатываемом сервисе
на основе результатов анализа сформулированы требования к разрабатываемому программному продукту;
выполнено проектирование сервиса интеграции и описано его место в общей архитектуре лингвистического портала;
выполнено проектирование пользовательского интерфейса;
выполнена программная реализация координатора, а также проведено тестирование и отладка функций (при реализации была использована среда Visual Studio).
Готовый координатор реализует весь требуемый функционал, а именно: добавление сервисов, создание бизнес-процессов, а также выполнение этих процессов.
Дальнейшие пути развития данного языка заключаются во внедрении инструмента в разрабатываемую систему.
Результаты исследования вместе с результатами работ Симоновой Н.А. и Гуляевым В.Ю. прошли апробацию на всероссийской научно-практической конференции молодых учёных с международным участием «Математика и междисциплинарные исследования - 2018» (ПГНИУ, г. Пермь). В секции «Прикладная лингвистика» доклад получил первое место.
Библиографический список
1. Разработка программного обеспечения для проведения корпусных исследований английского языка // НИУ ВШЭ в Перми URL: https://perm.hse.ru/bi/sfcr (дата обращения: 18.02.2018).
2. Бармина Е.И. Система для обработки корпусов текстов / Е.И. Бармина, Р.Н. Бушуев, Н.В. Котельникова, В.В. Ланин, О.А. Плотникова // Математика и междисциплинарные исследования - Пермь: Пермский государственный национальный исследовательский университет, 2016. - С. 245-250.
3. Копотев М.В. Введение в корпусную лингвистику: учеб. пособие для студентов филологических и лингвистических специальностей университетов / М.В. Копотев. - Прага: Animedia Company. - 2014. - 230 с.
4. Badr Y. Service-Oriented Workflow. Journal of Digital Information Management, 6(1), 120-127, 2018 г. URL: http://dblp.uni-trier.de/db/journals/jdim/jdim6.html pdf (дата обращения: 18.02.2018).
5. Leymann F. Web Services Flow Language, Specification. 2001 г. URL: http://xml.coverpages.org/WSFL-Guide-200110.pdf (дата обращения: 18.02.2018).
6. Выбор технологии для интеграции прикладных систем предприятия (EAI) - JCA, JMS или Web_сервисы? // IBM developerWorks. URL: https://www.ibm.com/developerworks/ru/library/ws-jcajms/index.html (дата обращения: 18.02.2018).
7. Самуйлов К.Е., Серебренникова Н.В., Чукарин А.В., Яркина Н.В. Основы формальных методов описания бизнес-процессов / Учеб. пособие. - М.: РУДН, 2008.
8. Кулябов Д.С., Королькова А.В. Введение в формальные методы описания бизнес-процессов / Учеб. пособие. - М.: РУДН, 2008.
9. Michael Papazoglou, Willem-Jan van den Heuvel. Web Services Management: A Survey / IEEE Internet Computing - IEEE Computer Society, 2005.
10. Даниил Фейгин. Архитектуры и средства интеграции приложений / Открытые системы. СУБД №02 - Открытые системы, 2005.
11. Алексей Добровольский. Интеграция приложений: методы взаимодействия, топология, инструменты / Открытые системы. СУБД №09 - Открытые системы, 2006.
12. How to: Create a Custom Activity Designer // Microsoft. URL: https://docs.microsoft.com/en-us/dotnet/framework/windows-workflow-foundation/how-to-create-a-custom-activity-designer (дата обращения: 12.05.2018).
13. Windows Presentation Foundation. Microsoft Development Network . URL: https://msdn.microsoft.com/ru_ru/library/ms754130%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396 (дата обращения: 12.05.2018).
14. Developing Service_Oriented Applications with WCF // Microsoft. URL: https://msdn.microsoft.com/ru_ru/library/dd456779.aspx (дата обращения: 12.05.2018).
15. Apache log4net // Logging Services. URL: http://logging.apache.org/log4net (дата обращения: 16.05.2018).
16. Что такое Azure - облачные службы от Microsoft // Платформы и службы облачных вычислений Microsoft Azure. URL: https://azure.microsoft.com/ru-ru/overview/what-is-azure (дата обращения: 17.05.2018).