Вот уже более полувека программирование никак не может оформиться в соответствии с требованиями инженерных дисциплин — и это несмотря на то, что сам термин software engineering существует с 1968 года. Почему? Скорее всего потому, что сложившийся и остающийся неизменным миропорядок в программной отрасли основывается на своего рода «изоляционистской» схеме, сохраняющейся со времен первых компьютеров. Ее краеугольные камни — отдельно взятый компьютер и работающие на нем отдельно взятые программы.

В досетевую эпоху иного и помыслить было невозможно. Но времена меняются, и на горизонте возникает что-то иное. Сказать определенно, что именно, пока никто не готов, но масса критически настроенных специалистов постоянно увеличивается. К примеру, в 2006 году Тимоти Чу, занимавший прежде пост президента подразделения Oracle On Demand, совершил неожиданный поступок — опубликовал нашумевшую книгу с провокационным названием «Конец программного обеспечения» (The End of Software), где отрекся от того, чему посвятил всю свою предыдущую жизнь. Показательно, что сейчас наряду с другими обязанностями Чу читает курс SaaS в Стэнфордском университете. Свой пессимистический прогноз Чу строит на экономическом фундаменте, разделяя мнение тех, кто считает программные системы в их нынешнем виде неоправданно дорогими. Разработка больших универсальных пакетов требует привлечения большого числа программистов, следовательно, возрастают сложности, связанные с управлением проектом, кроме того, увеличивается вероятность ошибок, отсюда высокая стоимость разработки. С пользовательской стороны растут затраты на внедрение, поддержку, обновление и т.д. Выходом из положения могут стать модульные программы, предоставляемые по запросу, то есть SaaS. Выступая в качестве основного докладчика на конференции SaaScon 2006, он провозгласил, что SaaS — будущее приложений.

Убедительнее всех об альтернативных методах распространения программного обеспечения, не называя их SaaS, написал Пол Грэм в эссе «Другая дорога вперед» (The Other Road Ahead); вместе с другими очерками этого интереснейшего автора оно выложено на его сайте (www.paulgraham.com). Показательно, что материал для очерка дали беседы, состоявшиеся в 2001 году в компании BBN, той самой, которая в свое время поставила коммутационное оборудование для предшественницы Internet — сети ARPAnet — и остается одной из самых авангардистских исследовательских компаний.

Грэм — создатель Viaweb, одной из первых успешных Internet-компаний. В 1995 году он основал ее вместе с коллегой по Массачусетскому технологическому институту Робертом Моррисом (имя последнего стало всемирно известным после того, как он написал исследовательскую программу-червя, печально знаменитого «червя Морриса»). Грэм и Моррис решили написать пакет программ, позволяющий пользователям создавать электронные магазины. Сначала они пробовали разрабатывать систему обычной архитектуры, но потом осознали, что разумнее сделать так, чтобы хозяину создаваемого магазина не требовалось бы ничего, кроме браузера. Идея получила признание, Грэм заработал многомиллионное состояние и теперь живет под именем Yahoo Store. Что вполне резонно рассматривать как предтечу SaaS.

Но еще критичнее в своих взглядах Алистер Кокбурн. Его статью «Конец программной инженерии и начало экономико-кооперативного подхода» (The End of Software Engineering and the Start of Economic-Cooperative Gaming) опубликовал журнал Computer Science and Information Systems (www.comsis.fon.bg.ac.yu). Кокбурн тоже видит будущее программного обеспечения в SaaS.

SaaS в первом приближении

На фоне таких неортодоксальных взглядов на перспективы программного обеспечения технологии, предназначенные для поставки программ в виде сервисов (Software-as-a-Service, SaaS), обычно все же представляют с вполне утилитарных позиций, усматривая в них всего лишь еще одну возможную модель распространения программных продуктов. Поэтому SaaS интерпретируют как альтернативу сложившейся схеме «программа в коробке», которую теперь резонно назвать аббревиатурой-антонимом Software-as-a-Product (SaaP). В SaaP реализованы упомянутая выше изоляционистская схема и то отношение к программному бизнесу, которое было задано Биллом Гейтсом в его знаменитом открытом письме любителям, бесплатно заимствовавшим написанный лично им интерпретатор BASIC (Open Letter to Hobbyists, 1975). Тогда, обращаясь к коллегам, он писал: «Аппаратуру необходимо покупать, а программным обеспечением можно делиться. А кто заботится о том, что тем, кто его разрабатывает, нужно платить?» С тех пор и автор, и адресаты стали профессионалами и, чтобы зарабатывать, они общими усилиями внедрили модель, которая предполагает приобретение программных продуктов по лицензионным правилам, зависящим от числа процессоров, типов серверов и т.п. Логика этой модели предполагает, что пользователь должен обладать необходимым аппаратным обеспечением и все последующие работы, связанные с эксплуатацией программ, в основном выполняются самим пользователем, пользователь самолично отвечает за безопасность и остальные показатели системы.

Но любая бизнес-модель не вечна. В нашем случае под влиянием прогресса сетевых технологий идея SaaP устаревает и ее начинает теснить новая модель — SaaS. В основе SaaS лежит принцип подписки: программное обеспечение не продается как продукт, а предоставляется в аренду, оплата зависит от числа пользователей, объема транзакций и других количественных показателей. Чтобы воспользоваться SaaS, не нужно иметь ничего, кроме инфраструктуры, обеспечивающей доступ в Internet. Главные отличительные свойства модели SaaS таковы:

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

Немаловажно, что на провайдера, предоставляющего услугу, может быть возложена в том числе и юридическая ответственность в спорных ситуациях. SaaS можно рассматривать как развитие модели ASP (Application Service Providing). Отличие состоит в более широкой функциональности и архитектуре приложений, используемых для предоставления услуг. В ASP — и именно поэтому такой подход не нашел широкого распространения — используются обычные приложения, отличающиеся лишь тем, что размещены они на стороне провайдера, со всеми вытекающими отсюда и положительными, и отрицательными последствиями. С появлением характерных для SaaS приложений нового типа multi-tenant классические приложения стали называть single-tenant*. В случае ASP одному пользователю соответствует одно приложений, в SaaS одно приложение можно разделяться на нескольких пользователей.

Родословная SaaS

Собственно аббревиатура SaaS существует примерно с 2001 года. На первых порах она не привлекала к себе особенного внимания и получила широкое распространение только после 22 марта 2005 года, когда состоялось первое собрание группы единомышленников, назвавшей себя SaaS Special Interest Group. Группа объединяет тех, кого интересует влияние на развитие ИТ-отрасли программ, поставляемых по запросу. Сегодня SaaS SIG наряду со многими другими группами входит в состав общественной организации Software Development Forum — одной из наиболее влиятельных ассоциаций разработчиков, объединяющей более 12 тыс. профессионалов-программистов.

Вскоре после памятного собрания началась массовая экспансия SaaS. К примеру, совсем недавно даже такое отнюдь не специализированное издание, как The New York Times, опубликовало статью Software for Rent («Программное обеспечение в аренду»), посвященную преуспевшим в области SaaS компаниям Salesforce.com и NetSuite. Энтузиазм столь велик, что вызывает у значительного числа специалистов весьма настороженное отношение к SaaS. И все же, признавая право на осторожность в оценках, стоит напомнить, что идеи SaaS зародились не в маркетинговой, а в программистской среде, значит, это не игра на публику, а вполне закономерное явление. Сегодня SaaS находится в центре внимания Software & Information Industry Association (SIIA) — еще одной общественной организации. Эта ведущая организация индустрии программного обеспечения и цифрового контента объединяет сотни государственных структур, частный бизнес, образовательные учреждения в разных странах.

Концепция «программного обеспечения как сервиса» была известна. Под этим названием, но без верблюжьей аббревиатуры она обсуждается примерно с 1999 или 2000 года. Именно тогда были опубликованы первые статьи Пенинской группы, создана компания Salesforce.com. В группу, названную в честь небольшого горного массива, расположенного в северной части Англии, объединились исследователи из трех университетов — Манчестерского, Даремского и Киильского. Эта группа одной из первых выдвинула и развивает концепцию, теперь называемую SaaS, которая предусматривает создание «подчиняющегося требованиями» рынка программного обеспечения, обеспечивающего предоставление услуг при возникновении соответствующего запроса. Взгляды представителей Пенинской группы на проблемы SaaS отражены в статье Марка Тернера, Дэвида Будгена и Перла Бриретона «Превращение программы в сервис» (Turning Software into a Service). В нашем журнале опубликована статья членов этой группы «Как разобраться в SOA».

Таким образом, формально история вопроса насчитывает шесть-восемь лет, но и это не совсем так. Природа программного обеспечения как продукта потребления заинтересовала серьезных специалистов намного раньше, еще в те времена, когда слова «сервис» не использовали. В начале 80-х вышла примечательная статья (к сожалению, в памяти не сохранилось имя ее автора), где методы распространения программ сравнивались с методами продажи вина. Автор спрашивал: что мы покупаем — вино или бутылки, упаковку или содержание? Форма распространения любого продукта зависит от технологии, используемой для передачи. Скажем, мы можем покупать электрическую энергию в виде батареек, в виде топлива для мобильных электростанций, но чаще всего получаем ее по проводам, а можем и вовсе пользоваться возобновляемыми источниками. С программами просматривается очевидная аналогия: «батарейки», точнее, диски, были почти единственным приемом передачи для большинства коммерческих программных продуктов от производителя к потребителю. Сегодня ясно, что и альтернативных техник распространения может быть много, помимо не оправдавших возложенных на них надежд поставщиков приложений в виде сервисов (Application Service Provider, ASP).

Подписка на возобновляемые базы данных. Этот способ хорошо известен. Производители антивирусных программ или различного рода информационных материалов (например, нормативно-правовых), делают свой основной бизнес не на самом программном продукте — единожды загруженный, он не меняется годами.

Физические или виртуальные специализированные устройства (Virtual appliances). Чаще всего словом appliances в английском языке называют бытовые приборы, в какой-то мере этот смысл распространяется и на их виртуальное исполнение. Такие «штуки» стали неожиданным следствием технологий виртуализации и обладают всеми их достоинствами — прежде всего независимостью операционной среды от аппаратной платформы, но плюс к тому они поставляются с предварительно установленными пакетами. Чтобы установить и запустить в работу такое «устройство», нужно просто его скопировать для работы под определенным монитором виртуальных машин, или гипервизором. Эта процедура отличается тем, что вообще не требует от потребителей ни знаний, ни дополнительных действий. Аналитик Фрэнк Генс (IDC) образно назвал виртуальные устройства AppPod, обыграв название популярного плейера Apple.

Потоковые приложения (Streaming applications). Приложения такого типа в готовом виде передаются на компьютер пользователя, где исполняются, а после исполнения деинсталлируются. Одно из достоинств этого подхода в том, что пользователь всегда получает последнюю версию продукта.

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

Аналитики о SaaS

Оптимистичней других предсказания Gartner, хотя разные сотрудники этой аналитической компании и дают различающиеся между собой цифры. По мнению одних, рынок SaaS уже сегодня составляет 5 млрд. долл., другие считают, что эта цифра больше, и к 2011 году она может увеличиться до 16-20 млрд. долл., перетянув на себя до 20% от всего рынка программного обеспечения. В IDC тоже неоднозначны в оценках: одни оценивают современное состояние рынка SaaS суммой 2 млрд. долл., другие, напротив, поднимают планку до 8 млрд. долл., в пятилетней перспективе отводя на долю SaaS от 5 до 25% софтверного рынка. Но в любом случае цифры значительны и серьезно угрожают былой стабильности, присущей рынку программного обеспечения.

Демонстрируя агрессивные намерения, Марк Беньофф, глава компании Salesforce.com, одного из наиболее успешных игроков на поле SaaS, эпатирует публику, постоянно появляясь со значком-символом запрета чего-то, в данном случае — программного обеспечения. Свои убеждения он выразил в двух книгах. Одна называется «Бизнес в изменившемся мире» (The Business of Changing the World). Вторая — «Сочувствующий капитализм: как корпорация может сделать добро составной частью благополучия» (Compassionate Capitalism: How Corporations Can Make Doing Good an Integral Part of Doing Well)**.

Аналитики обнаружили, что перспективность SaaS зависит от сферы применения программных систем. Уже сейчас эта схема охватила до 60% рынка продуктов для электронного обучения и до 70% технологий для Web-конференций. На другом полюсе — средства для поиска и управления корпоративным контентом, где распространенность SaaS не достигает и 2%. Самый яркий пример успешного применения SaaS продемонстрировала компания Salesforce.com, построившая всю свою деятельность на работающих по запросу системах управления отношениями с клиентами. Ее создал Марк Беньофф, а основными инвесторами стали Ларри Эллисон и один из самых известных венчурных капиталистов Игорь Силл. Участие Эллисона в этой компании особенно интересно, поскольку сегодня от лица Oracle он демонстрирует не слишком благожелательное отношение к SaaS.

Аналитики сходятся в том, что ключевым для SaaS окажется применение в сфере малого и среднего бизнеса. Помимо очевидных аргументов, связанных с эксплуатационными преимуществами SaaS, есть аргументы, связанные с возможностями более полного удовлетворения потребностей небольших предприятий. Для иллюстрации этого утверждения нередко используется метафора, получившая название «длинный хвост». Ее в последнее время часто используют для описания того, как распределяется потребительский спрос. В левой части графика находится меньшая часть потребителей, с родственными предпочтениями, по совокупности они составляют примерно половину потенциального потребительского спроса. Производители в первую очередь ориентируются на эту часть потенциальных клиентов. Но есть большое число потребителей с диверсифицированными потребностями, их интегральный потенциал, показанный в правой части, вполне сравним по объему с тем, на что ориентировано консолидированное меньшинство. Развитые рынки (например, автомобильный), построены так, что массовыми продуктами удовлетворяются потребности массового спроса, а специализированные продукты предназначаются для потребителей с повышенной избирательностью. Проблема состоит в высокой себестоимости специализированных продуктов, поэтому во многих случаях спрос представителей «длинного хвоста» остается неудовлетворенным.

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

Аналитики с более узкой технологической специализацией стремятся осознать явление SaaS на качественном уровне. Брэди Шиммин из Current Analysis пишет: «Я рассматриваю SaaS всего лишь как механизм доставки приложений, существующих в единственном экземпляре или в виде коммунальных приложений. В то же время я представляю себе SOA как философскую конструкцию для создания слабосвязанных приложений. То есть SOA служит для того, чтобы структурировать приложения, а SaaS — чтобы их наилучшим образом использовать».

Джейсон Блумберг из компании ZapThink согласен с тем, что SOA и SaaS близки, но часто не делают различия в природе предоставляемых ими сервисов: «Чтобы не путаться в основах, нужно понять, что SOA — это архитектурный подход, а SaaS — модель доставки. Следовательно, те сервисы, которые доставляются средствами SaaS, вовсе не обязательно должны быть слабосвязанными, например, простые Web-сервисы не требуют для себя SOA. Но SOA может наделить SaaS новыми качествами, усилить их контрактными возможностями, используя передачу метаданных для установления отношений между поставщиком и потребителем. Если сервисы осуществляются по таким правилам, то можно повысить качество обслуживания, обеспечить возможность повторного использования, настройки на определенные версии».

Конец начала?

Есть основания полагать, что правда на стороне таких людей, как Чу, Грэм и Кокбурн. События развиваются со стремительностью, за которой угадывается явление совершенно иного порядка, об этом свидетельствует почти мгновенное появление его многочисленных «родственников» (их далеко не полный перечень приведен во врезке «XaaS — что угодно как сервис»).

«Длинный хвост» потребителей программных продуктов

Появление SaaS явным образом способствовало рождению множества новых идей, грозящих грандиозными изменениями в компьютерном мире в целом. Невольно на ум приходит известное высказывание Уинстона Черчилля по поводу победы англичан в танковом сражении Эль-Аламейне в 1942 году: «Это еще не конец. Это даже не начало конца. Но возможно, это конец начала». Есть неплохой шанс, что все предшествующие шестьдесят лет компьютерной истории были всего лишь началом, при конце которого мы сегодня присутствуем.

В духе времени после недолгой эволюции появилась вторая версия SaaS — SaaS 2.0. От версии Software-as-a-Service 1.0 новое поколение отличает их интеграция с бизнес-платформами. Изначально технологии SaaS задумывалась с целью снижения общей стоимости владения программными системами, улучшения качества обслуживания, ускорения внедрения приложений и других улучшений, относящихся непосредственно к программам. Но даже стороннему наблюдателю понятна необходимость появления комплексного решения, которое и назвали SaaS 2.0. Это решение логически развивает сервисный подход и инкорпорирует в себя помимо SaaS еще и сервис-ориентированную архитектуру приложений, и всю платформу, необходимую для управления бизнесом.

Переориентация от простого представления программ в пользование к поставке комплексных платформ может привести к тому результату, который мы неоднократно могли наблюдать при появлении новых технологических решений: преимущества получают крупные корпорации, такие, как IBM или Microsoft, а первопроходцы, подобные Jamcracker, OpSource или Salesforce.com, со временем растворяются в недрах этих гигантов. Этот процесс может в обозримом будущем привести к формированию нового представления о задачах ИТ-отрасли в целом, которая будет создавать сервисные инфраструктуры (IT Infrastructure-as-a-Service). В результате может произойти существенное перераспределение функций. Производители аппаратного обеспечения, традиционно продававшие коробки, превратятся в поставщиков аппаратных услуг; это относится и к производителям серверов, и к производителям систем хранения. (С этих позиций становятся яснее взгляды директора по технологиям компании Sun Microsystems Грега Паподопулоса и его гипотеза о «красном смещении».) Производители программного обеспечения также постепенно превратятся в поставщиков программных сервисов. Корпоративные приложения потеряют свою монолитность и будут собираться из необходимых сервисов, а роль ИТ-подразделений, освободившихся от рутинных операций, сведется к реальной информационной поддержке бизнеса.


* Что касается собственно термина multi-tenant, то раньше его использовали в риэлтерской среде для описания объектов недвижимости с несколькими арендаторами. К счастью для русскоязычного читателя лучшим переводом термина multi-tenant может быть не переводимое ни на какой иностранный язык слово «коммунальный» в контексте «коммунальная квартира».

** Марк Беньофф, как и некоторые другие руководители современных корпораций, является поклонником Сунь Цзы и его «Искусства войны». Прелюбопытная беседа с Беньоффом, посвященная SaaS и выдержанная в духе полководческих взглядов, опубликована в Сети по адресу www.sonshi.com/benioff.html.


Web-сервисы: на пути к зрелости
http://www.osp.ru/os/2003/12/183715

Как разобраться в SOA
http://www.osp.ru/os/2004/06/184456

Черный ящик и красное смещение
http://www.osp.ru/os/2007/07/4392253


XaaS — что угодно как сервис

Вслед за шумихой вокруг SaaS и возникновением таких производных конструкций, как SaaSOA (интеграция SaaS и SOA), SaaSGrid (платформа для предоставления приложений, построенная на принципах grid), SaaS Integration Platforms (интеграционные платформы SaaS) и т.п., фактически мгновенно сложилась большая семья терминов, построенных по единому шаблону и служащих для обозначения чего бы то ни было, доступного «как сервис».

AaaS (Architecture as a Service) — архтитектура как сервис
BaaS (Business as a Service) — бизнес как сервис
DaaS (Data/Documents as a Service) — данные/документы как сервис
DISaaS (Data Integration System as a Service) — интеграция данных как сервис
EaaS (Ethernet as a Service) — Ethernet как сервис
FaaS (Frameware as a Service) — конструкция для разработки и внедрения приложений, поставляемая как сервис
GaaS (Globalization as a Service) — глобализация как сервис
HaaS (Hardware as a Service) — аппаратное обеспечение как сервис
IaaS (Infrastructure/Information as a Service) — инфраструктура/информация как сервис
IDaaS (Identification as a Service) — идентификация как сервис
PaaS (Platform as a Service) — платформа как сервис
OaaS (Organization/Optimization/Operations as a Service) — организация/ оптимизация/операции как сервис
TaaS (Technology as a Service) — технологии как сервис
VaaS (Voice as a Service) — голос как сервис