В настоящее время вместе с увеличением рынка информационных услуг, охватывающим новые области деятельности человека, доля услуг, поставляемых по модели “программное обеспечение как услуга” (software as a service, сокр. SaaS), так же стремительно увеличивается. По прогнозам компании IDC, специализирующейся на исследованиях в области информационных технологий, рынок публичных облачных вычислений к 2013 году составит 44 миллиарда долларов, что составит около десяти процентов от всего рынка информационных технологий. Для разработки приложений, разворачиваемых на облачном сервисе, необходимо выбирать современные методы, языки и средства разработки программного обеспечения, которые смогут облегчить процесс разработки, развертывания, тестирования и сопровождения приложений.
Быстрые темпы развития рынка информационных услуг накладывают свои требования на разработку программного обеспечения, которые не могут быть выполнены с помощью консервативных методик разработки программного обеспечения типа “водопад”. Данная модель разработки не предполагает адаптирования программного обеспечения в случае изменений требований к нему, что является одной из ключевых особенностей SaaS-приложения: модернизация и обновление приложения должно происходить плавно и прозрачно для пользователей. Отличительной особенностью SaaS приложения является модель продажи услуги пользователям.
Для адаптации SaaS-приложени под изменяющиеся требования к программному обеспечению предполагается использование итеративной модели разработки ПО. Разработка ПО по данной модели представляет собой цикл из повторяющихся этапов: планирование, реализация, тестирование, поставка пользователю и оценка. Использование такой модели позволит снизить риски на ранних этапах разработки ПО, организовать эффективную обратную связь от пользователей к разработчикам, а так же непрерывное тестирование. Для быстрой и эффективной разработки программного обеспечения предполагается использование высокоуровневых языков программирования. Крупные облачные платформы предоставляют библиотеки SDK (software development kit) для различных языков программирования (C#, Java, Go, Python, Ruby, PHP) для эффективного использования всех возможностей облачной платформы.
В отличии от классической модели, когда пользователь покупает программный продукт с правом пользования на неограниченное время, для использования SaaS приложения пользователь покупает право на использование приложения, ограниченное по времени. Такая модель оплаты часто называется подписками. Стоимость подписки обычно значительно дешевле, чем стоимость программного обеспечения, продаваемого по классической модели оплаты. Пользователь платит только за полезное время, когда ему необходимо пользоваться приложением. Отсюда следует так же одно из требований к SaaS-приложению, которое должно решаться либо разработчиками приложения, либо платформой, на которой это приложение будет разворачиваться: процедура «покупки» лицензии должна быть максимально простой и быстрой для пользователя.
Другой особенностью SaaS-приложения является модель поставки приложения пользователю, когда много пользователей не имеют личной копии программного продукта, а обращаются к единому программному ядру (multi-tenant architecture). Такая архитектура позволяет облегчить процесс обновления программного обеспечения, так как для этого необходимо обновить единственное приложение для всех пользователей, а не управлять удаленными копиями для каждого заказчика.
Перечисленные особенности архитектуры SaaS-приложения предполагается решать в виде клиент-серверного приложения, где в качестве сервера будет реализовано веб-приложение, реализующее функциональные требования к программному комплексу, а в качестве клиентской части — интернет-браузер пользователя. Технические возможности веб-приложений давно позволяют реализовывать полноценные, удобные графические интерфейсы, а использование защищенных соединений между клиентом и сервером позволяет достигать приемлимого уровня защиты пользовательской информации.
Предполагаемые методики и средства разработки SaaS-приложения позволят уже на ранних этапах развития проекта иметь работоспособную версию программы, а её структуктура, спроектированная с учетом требований к изменяемости, позволит быстро адаптироваться к новым требованиям. Следует отметить, что при проектировании SaaS-приложения следует закладываться на модульную архитекруту, которая позволит расширять приложение в ключевых точках.
Предоставление услуг пользователю в виде SaaS на данный момент является одним из наиболее перспективных направлений в информационных технологиях. Это позволяет эффективно бороться с нелицензионным использованием программного обеспечения, уменьшить затраты на развертывание и внедрение приложения, значительно уменьших стоимость приложения для пользователей, упростить процесс тестирования, обновления, а так же поддежки пользователей.
Список литературы:
1. Sahil Parikh. The SaaS Edge
2.
Borko
Furht and Armando J. Escalante. Handbook of Cloud Computing: Part1 Technologies
and Systems, page : 3-19.
3. Bogdanov, M. Dmitriev, Ye Myint Naing, Eucalyptus Open-source Private Cloud Infrastructure, GRID 2010, Proceedings of the 4th International Conference Dubna, June 28 July 3, 2010. page: 57-63.