Введение. 3
Глоссарий. 6
Глава 1. Обзор литературы. 8
Параграф 1.1. Описание модели SaaS. 8
Параграф 1.2. Требования к безопасности в SaaS-сервисе. 10
Параграф 1.3. Архитектура SaaS-сервиса. 14
Глава 2. Разработка библиотеки. 17
Параграф 2.1. стек технологий. 17
Параграф 2.2. Работа с платёжными сервисами. 19
Пункт 2.2.1. Работа с PayPal. 19
Пункт 2.2.2. Работа со Stripe. 23
Параграф 2.3. Универсализация, оптимизация кода. 27
Параграф 2.4. Подключение библиотеки к проектам. 29
Глава 3. Полученные результаты. 32
Параграф 3.1. сравнение имеющихся решений. 32
Параграф 3.2. Анализ полученных результатов. 33
Заключение. 35
список использованных источников.
В настоящее время созданием и продажами SaaS-решений занимаются различные группы людей. Этот список включает в себя, как разработчиков, так и системных интеграторов. При этом, производители облачного программного обеспечения (ПО), самостоятельно занимающиеся его продажами, делятся на две группы: производители, продукты которых изначально создавались как SaaS («Мегаплан», «СКБ Контур», «Мой склад»), и производители, коробочные продукты которых были переориентированы на использование по модели SaaS (Microsoft, «1С Битрикс»). Если рассматривать эти две группы, можно отметить, что перевод веб-сервиса на SaaS (ПО как услуга) платформу, а также разработка SaaS сервиса с нуля занимает достаточно большое количество времени. Те организации, которые обладают большим опытом в осуществлении внутренних интеграционных проектов и выполняют значительную долю своих функций с помощью самостоятельно написанных программ, будут, вероятно, применять собственные инструменты для интеграции SaaS в используемые внутри компании приложения. [1] Безусловно, такой способ предполагает большие временные затраты от разработчиков. В модели SaaS предполагается наличие подписок, а также большого количества денежных операций, варьирующихся по своей структуре, для поддержки которых необходимы мощные инструменты. Разработчикам приходится тратить время на изучение документации платёжных систем, прописывание логики подписок, тарифов, разработку оптимальной структуры для хранения этих данных и на интеграцию этой структуры с уже готовыми приложениями.
Проблема данной работы - отсутствие инструмента на основе Spring Framework, который выполнял бы функции по управлению подписками, безналичной оплате с возможностью подключения различных платёжных сервисов, отправке отчётов на почты пользователей, отслеживанию статуса подписки, и который бы автоматически подключался к готовым проектам. Spring Framework является одним из самых часто применяемых решений на таком популярном языке программирования в веб-сфере как Java. Выбор технологии Spring Framework как ключевой в данной дипломной работе обусловлен тем, что хотя и объём кода будет увеличен, этот код будет намного проще понимать и тестировать. Кроме того, используя Spring, можно получить слабосвязанную систему, которая будет основываться не на конкретной реализации, а на интерфейсах. В рамках поставленной проблемы этот факт является определяющим, так как необходимо будет иметь дело с готовыми проектами, реализации которых могут значительно отличаться.
Актуальность данной проблемы обуславливается тем, что анализ рынка веб-решений показывает, что в отличие от разработки сайтов на коробочных и самописных CMS, сектор SaaS на сегодняшний день имеет больший потенциал. По оценкам исследования компании J'son & Partners Consulting, объем российского рынка корпоративных облачных сервисов IaaS (инфраструктура как услуга), SaaS вырос в 2016 году на 40%. J'son & Partners Consulting прогнозирует, что даже при консервативном сценарии развития рынка (CARG (сложный средний процент роста) 28%) в 2021 году его совокупный объем составит около 70 млрд руб., что сделает рынок корпоративных облачных и web-сервисов одним из самых инвестиционно привлекательных сегментов российской экономики не только по темпам роста, но и по размеру прироста спроса. [2]
Цель данной работы - разработка открытой библиотеки для быстрого создания SaaS платформы на основе Spring Framework, реализующая функции, описанные выше.
Задачами данной работы являются:
1. Анализ специальной литературы по данной теме;
2. Выбор инструментов разработки;
3. Написание SDK (набор средств разработки) для платёжных сервисов;
4. Универсализация, оптимизация кода;
5. Реализация подключения библиотеки к проектам;
6. Сравнение полученных результатов с уже готовыми похожими решениями.
Объект исследования - интеграция платформы SaaS в веб-сервисы на основе Spring Framework.
Предмет исследования - веб-сервисы на основе Spring Framework, построенные по модели SaaS.
Объектом исследования в данной дипломной работе выступали веб-сервисы на основе Spring Framework, построенные по модели SaaS. В теоретической части работы были проанализированы основные характеристики и свойства, отличающие SaaS-сервисы, более детально была рассмотрена проблема перевода готового сервиса на модель SaaS. Были рассмотрены требования к SaaS-сервисам, в том числе требования к безопасности, а также методы выполнения поставленных требований. Была описана архитектура SaaS-сервиса и скорректирована с учётом специфики рассматриваемой проблемы. На основе поставленных требований были выбраны и обоснованы необходимые технологии и инструменты разработки.
В практической части была проведена работа по интеграции с платёжными сервисами Stripe и PayPal. Были поставлены и выполнены подзадачи для работы с каждой платёжной системой. Значительное внимание было уделено оптимизации и универсализации кода для его эффективного использования. Был рассмотрен алгоритм подключения разработанной библиотеки к готовым проектам, а также алгоритм её настройки. Полученные результаты были проанализированы на основе сравнения с текущими решениями. Все поставленные задачи были успешно выполнены, цель дипломной работы была достигнута.
Практическая значимость работы обуславливается тем, что в данный момент создание похожего решения для веб-сервисов на Spring Framework занимает долгое время, в связи с тем, что имеются проблемы с агрегацией интерфейсов для приёма оплаты, интерфейсов по управлению подписками и других необходимых для модели SaaS функций. Подключение разработанной библиотеки, в зависимости от уровня программиста, будет занимать от 1 до 2 дней вместо 15-30 дней при самостоятельной реализации перечисленных функций. В ходе работы были выявлены и изложены предположения о решении проблем, связанных с заменимостью используемых технологий и платёжных систем. Разработанная библиотека находится в открытом доступе и с помощью неё разработчики смогут упростить перевод веб-сервиса на модель SaaS, что, как говорилось ранее, будет очень полезно производителям SaaS-продуктов.
1. Итоги развития российского рынка корпоративных облачных и web-сервисов в 2016 году [Электронный ресурс] - http://json.tv/ict_telecom_analytics_view/itogi-razvitiya-rossiyskogo-rynka-korpor ativnyh-oblachnyh-i-web-servisov-v-2016-godu-20170426103743
2. Вейс М. Интеграция SAAS с унаследованными системами. // PC Week/RE.
- 2011, №8 (758).- https://www.itweek.ru/its/article/detail.php?ID=128965
3. Laatikainen, G., & Ojala, A. SaaS architecture and pricing models. //
Proceedings of the 2014 IEEE international conference on services computing. - 2014. - pp. 597-604. -
https://www.researchgate.net/publication/270957697_SaaS_Architecture_and_Pric ing_Models
4. Выполнение требований к защите SaaS-приложений. [Электронный ресурс] - https://www.ibm.com/developerworks/ru/library/ar-saassec/
5. Мультитенантная архитектура для SaaS приложений [Электронный ресурс]
- https://habrahabr.ru/post/110979/
6. Демиш В. О. Интеграция SAAS-Сервисов: актуальные проблемы, интеграционные платформы. // Вестник Новосибирского государственного университета. Серия: информационные технологии. - 2012, т. 10, №2. - C.
5-13. - https://elibrary.ru/item.asp?id=17781993
7. Wang, B., Liu, H., Song J. SaaS-based enterprise application integration approach and case study. // The Journal of Supercomputing. - 2016, v. 72, issue 7.
- pp. 2833-2847. - https://link.springer.com/article/10.1007/s11227-016-1625-y
8. Spring Framework - Overview. [Электронный ресурс] http://www.w3ii.com/en-US/spring/spring_overview.html
9. Apache Maven Documentation. [Электронный ресурс] https://maven.apache.org/guides/
10. PayPal Developer Documentation. [Электронный ресурс]
https://developer.paypal.com/docs/
11. Stripe Developer Documentation. [Электронный ресурс]
https://stripe.com/docs
12. Cosmina, I., Harrop, R., Schaefer, C., Ho, C. Pro Spring 5. - 2017. - 827 p. - https://link.springer.com/book/10.1007/978-1-4842-2808-1#authorsandaffiliations book