среда, Октябрь 18, 2006

 

Первые впечатления от Apex, новой платформы Salesforce.com

Компания Salesforce.com, один из лидеров рынка On Demand приложений, на своей недавней конференции Dreamforce обнародовала планы развития своих прикладных решений и платформы. Ключевым элементом этих планов безусловно стала технология Apex, впервые позволившая клиентам и партнерам Salesforce.com программировать свои решения на платформе компании. Текущая версия платформы AppExchange 7.0 допускала расширение функциональности лишь на уровне информационной модели и экранных форм, а также удаленное взаимодействие с ними. Возможность обработки данных на стороне сервера появилась впервые.

Пока Apex находится на стадии закрытого бета-тестирования и используется "преимущественно" (только?) внутренними разработчиками Salesforce.com для создания ее собственных прикладных решений. Более того, сообщается, что синтаксис языка программирования почти наверняка претерпит изменения, как, возможно, и некоторые элементы модели программирования Apex. Тем более странными кажутся заявления о том, что Apex -- первый язык программирования и платформа своего рода. Как известно, NetSuite представил свой SuiteScript в апреле 2006.

Код под Apex почти идентичен по своим возможностям и модели программирования хранимым процедурам, за исключением некоторых расширений. В частности, существует возможность через исключения осуществлять обратную связь с пользовательским интерфейсом. Привести в действие процедуру может нажатие кнопки в форме или событие (триггер), такое как сохранение или удаление объекта. Любую из процедур можно также автоматически сделать Web-сервисом, доступным для удаленного вызова, так что теперь приложения AppExchange смогут иметь собственные API, а не только низкоуровневый интерфейс доступа к их данным.

Язык Apex обладает синтаксисом Java, полным набором управляющих конструкций (включая, например, "for" в стиле Java 5). В отличие от Java, примитивные типы, похоже, будут взаимозаменяемы с их объектными эквивалентам (т.е. int = Integer), а массивы соответствуют понятию коллекции. Более подробный обзор основных конструкций языка на данный момент содержится здесь. В отличие от NetSuite SuiteScript, основанного на JavaScript, язык Apex не динамический, а структуры данных в нем типизированные, со всеми вытекающими последствиями, в целом позитивными для сферы корпоративных приложений.

Известно, что Salesforce.com использует СУБД Oracle, которая имеет встроенную JVM для исполнения кода. Исходя из этого можно сделать некоторые предположения о механизмах реализации Apex. Вероятно, исходный код транслируется "препроцессором" Apex в Java (разворачивая, например, SOQL в соответствующий SQL, добавляя вызовы JDBC и объектно-реляционные преобразования, осуществляя auto-boxing/-unboxing и устраняя прочие несоответствия спецификации и библиотекам Java) и в этом виде загружается в СУБД вкупе с прослойкой PL/SQL. Там он компилируется в двоичный байткод и в дальнейшем исполняется.

Такой метод реализации вполне вписывается в архитектуру платформы Salesforce.com, поскольку позволяет использовать тот же способ организации схем(ы) базы данных, который прежде использовался только для реализации многопользовательской модели управления данными (кстати, отличный обзор от Microsoft на эту тему). Ведь в СУБД и код и модель данных представляются в единой метамодели -- схеме, унифицирующей эти понятия. Так или иначе, но конечной средой исполнения, судя по документации, явно является JVM. Интересно, к каким библиотекам при этом имеется доступ (как насчет java.net.*?).

Тут же выявляются первые проблемы. Во-первых, можно констатировать полное отсутствие переносимости кода с платформы Salesforce.com с более стандартную среду. Выходя на рынок через Salesforce.com, отвязаться от него впоследствии будет трудно, даже когда он будет уже не подталкивать рост, а ограничивать его относительно высокой стоимостью платформы (что всегда происходит при наличии lock-in). Во-вторых, при выпуске новой версии виртуальной машины Apex, обратная совместимость может быть утрачена. Представители Salesforce.com утверждают, что в этом случае старая версия платформы будет продолжать функционировать. В то, что поддержка старой версии платформы будет вечной (даже учитывая постоянную модель оплаты), не верится. И в этом есть некоторая уязвимость пользователей и партнеров, доверяющих свой код такого рода платформе. Платформа может утратить совместимость с их кодом и им придется переписывать код, хотят они этого или нет.

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

technorati tags: , , , , , , , ,


Комментарии:
СФ одна из компаний, к которой будет приковано наше внимание в ближайшее время, особенно с ее Апексом. Интересно, на мой взгляд, не столько как эта платформа сымплементирована, а какая стратегия у СФ, флагмана СааСа, по локированию клиентов. Сервисы, открытость, гибкость и динамичность - это все хорошо, но преодолев барьер в полмиллиона юзеров им нужно думать как "застолбить" этих клиентов. Пытался порассуждать на эти темы здесь: http://roman-rytov.typepad.com/miles/2006/10/whatwho_salesfo.html
 
Несколько упрощая, можно сказать, что в IT открытость создает ценность для клиентов и экосистемы, а закрытость (lock-in) для вендора. Собственно, о наличии lock-in в Apex я упомянул выше. Не стоит забывать и про то, что данные клиентов и наработки партнеров находятся у Salesforce.com, и, как следствие, любая миграция будет сопряжена с некоторыми препятствиями. И все же это не очень высокие барьеры, потому что выше сейчас и не требуется. Ведь lock-in начинает иметь значение тогда, когда у пользователей появляется выбор, а его сейчас нет -- и вот почему.

То, чем занимается Oracle и SAP в этой области, при всем уважении, можно отнести не более чем к SoSaaS. Никаким vision или leadership
киты бизнес-приложений в этом направлении не отличились, что и понятно -- для них выгодно сохранение статус-кво. Однако тенденция роста доли SaaS в обозримой перспективе необратима, и с этим рано или поздно придется считаться. SoSaaS не дает всех преимуществ SaaS, почему, кстати, я и пишу про имплементацию. Архитектурный принцип multi-tenancy позволяет сделать SaaS-решения на всех этапах жизненного цикла дешевле ("wring the costs out", как это обычно называют сторонники), чем полностью изолированные решения. Из этого вытекают важные последствия и для других элементов стратегии (например, организации продаж) и для бизнес-модели в целом.

Когда Oracle и SAP начнут напрямую конкурировать с Salesforce.com (а активы и партнерские отношения по линии SOA можно успешно конвертировать в SaaS-стратегию), тогда мы увидим либо его другое лицо, либо отток клиентов. Пока же пересечение по адресуемому рынку минимально.
 
Отправить комментарий

Ссылки на это сообщение:

Создать ссылку



<< Главная страница

Я использую Blogger, а Вы?