В начале ноября российское представительство Sun Microsystems провело в Москве для своих нынешних и потенциальных клиентов конференцию "Преимущества интеграции на основе сервис-ориентированной архитектуры от Sun Microsystems". В центре внимания мероприятия было представление нового для нашего рынка продукта Sun Java Composite Application Platform Suite (Sun Java CAPS) - программной платформы, предназначенной для создания композитных приложений, применение которых должно обеспечить заказчикам преимущества в виде использования существующих программ в сочетании с новой функциональностью. Презентацию этого решения провели приехавшие из-за океана сотрудники подразделения SOA & Business Integration во главе с его руководителем Россом Альтманом. О перспективах реализации SOA и возможностях продукта Java CAPS с ним беседовал обозреватель PC Week/RE Андрей Колесов.
PC Week: Чем вызвано само появление концепции SOA и почему все ИТ-поставщики так дружно поддержали ее?
Росс Альтман
Росс Альтман: В общем-то ее специально никто, кажется, и не придумывал - идея SOA родилась в результате естественного развития ИТ и отражает их современное состояние, тенденции в этой области, потребности заказчиков и т. д. Сегодняшние приложения отличаются от тех, что были десять лет назад: изменились ИТ-инфраструктура, возможности средств разработки, задачи пользователей.
Еще в середине 1990-х было много предприятий, способных решать задачи внедрения ИТ практически "с чистого листа". Не обязательно это были только новые компании - и ветераны могли позволить себе полную замену старой ИТ-инфраструктуры, поскольку в общем объеме бизнеса она занимала не очень много места. Сегодня такое уже невозможно: нужно учитывать сделанные инвестиции, использовать существующие активы. Кроме того, при автоматизации должны быть учтены изменения требований пользователя в плане функций и оперативности решения задач, а также новых возможностей ИТ, в частности повышения пропускной способности сети, появления мобильных клиентских устройств и т. д.
Приложения сегодня должны работать в режиме реального времени в условиях географически распределенных систем, обеспечивать процессную модель управления компанией и пр. И все это - за разумные деньги! В настоящее время достичь этого можно только с помощью SOA. И мы предлагаем для ее воплощения в жизнь свой подход в виде концепции композитных приложений и платформы для их реализации - Java CAPS.
PC Week: Но ведь модульный подход и повторное использование компонентов всегда были основой разработки ПО, на всем протяжении вот уже более чем полувековой современной вычислительной техники. Что же нового тогда в SOA?
Р. А.: Да, это так. Но раньше такие компоненты использовались лишь на этапе собственно разработки, а в результате получалось некоторое монолитное приложение, которое было не очень хорошо приспособлено для работы с другими программами. По большому счету задачи интеграции разных приложений выполнялись через такой универсальный коннектор, как человек, то есть через пользователя, который решал вопросы преобразования форматов, контроля семантики данных, согласования передачи информации во времени и т. д. Сейчас же нужно обеспечить автоматическое взаимодействие приложений с минимальным участием человека.
Модель зрелости стандартов
Когда мы говорим о сегодняшнем бизнес-приложении, то нужно отдавать себе отчет, что это совсем не то же самое, что клиентская программа типа текстового процессора. Фактически речь идет о сложных бизнес-системах, решающих целый комплекс задач.
Вот типичный пример: продажа автомобиля в кредит. Эту операцию можно представить в виде бизнес-процесса, по ходу выполнения которого нужно выполнить целый ряд автономных задач - проверить кредитоспособность клиента, разместить заказ у поставщика или производителя автомобиля, решить вопросы логистики, оформить банковский кредит... Обратите внимание, что при этом вам нужно взаимодействовать с внешними контрагентами. Раньше вы могли взять за основу какую-то ERP-систему, но все равно многие внешние операции приходилось выполнять вручную, посылая запросы и ожидая ответы. В результате возникает идея автоматизировать это взаимодействие.
Но тут выясняется, что контрагент может не только быстро представить вам какие-то данные, но и взять на себя выполнение некоторой законченной бизнес-операции, например по оформлению кредита и отслеживанию его выплаты. Взглянув на задачу с учетом таких возможностей, вы обнаружите, что вам нужно только реализовать бизнес-логику, которая объединит готовые средства, в том числе уже имеющиеся в вашей организации, - например, приложение для бухгалтерского учета. Так нужно ли вам использовать для автоматизации своей работы совсем не дешевую ERP-систему, которую все равно придется настраивать, состыковывать и т. д.? Или лучше создать композитное приложение с использованием уже готовых вычислительных и информационных ресурсов?
PC Week: Постановка вопроса выглядит вполне правомерно, а ответ на него практически очевиден: конечно, "лучше быть здоровым и богатым". Но есть большой подводный камень - совместимость, причем в долгосрочной перспективе. На согласование программных интерфейсов может уйти больше времени, чем на написание собственного кода для реализации данной бизнес-операции. Но еще хуже, когда в приложении вашего контрагента что-то поменяется, после чего нарушится созданный вместе с ним интерфейс и весь ваш бизнес-процесс не будет выполняться. Такие вопросы решаются с помощью стандартов, но их выработка - очень непростое дело. Как же обеспечить согласованную работу разных бизнес-систем (контролируемых разными владельцами) и стабильность выработанных интерфейсов?
Р. А.: Вы правы - это одна из главных проблем, которая лежит на пути реализации SOA. Она решается двумя взаимодополняющими способами.
Первый заключается в том, что SOA подразумевает использование схемы взаимодействия с так называемыми слабыми связями. Это означает, с одной стороны, что интерфейс между двумя программными компонентами обязан уметь адаптироваться к возможным изменениям в данных или алгоритмах обработки, а с другой - что даже полный отказ одного из компонентов не должен приводить к потере работоспособности системы в целом.
Второй способ - это стандартизация. За последние годы ИТ-индустрия, усилиями прежде всего компаний-лидеров, сделала очень многое в этой сфере и прежде всего в сфере Web-сервисов и XML. Но объективно нужно иметь в виду, что стандартизация - это очень непростой и совсем не быстрый процесс. Он проходит через несколько последовательных уровней, и чтобы понять его сложность и длительность, посмотрите на модель оценки зрелости стандартов (эта модель приведена в таблице. - Прим. ред.). Тут видны два этапа - собственно создание стандарта и применение его в реальных условиях. На второй нужно обратить особое внимание: если с новыми приложениями в общем-то все понятно, то внедрение появляющихся стандартов в унаследованное ПО - это уже проблема.
PC Week: Прогресс в области ИТ-стандартизации, конечно, налицо, и все же нельзя сказать, что все здесь идет очень гладко. Есть заметные противоречия и несогласованность между двумя противоборствующими технологическими лагерями - Java и .NET. Да и внутри Java встречается немало отклонений от уже принятых стандартов. Что вы можете сказать по этому поводу?
P. A.: Да, это реальность, с которой нужно считаться. Возможны несколько путей стандартизации. Первый из них - государственное регулирование на уровне законодательства. Но на технологическом уровне этот вариант работает довольно слабо. Второй путь - рыночный, когда представители отрасли договариваются между собой. Мы считаем, что именно этот вариант является основным в ИТ-отрасли. Но тут нужно не просмотреть субъективные и объективные препятствия. Ведь все ключевые игроки рынка являются конкурентами, и каждый из них пытается опередить других, предложить более эффективное решение. А разработка стандартов - это процесс довольно долгий, и разработчики зачастую просто не могут ждать его окончательного завершения.
Вот, например, проект "Танго", в рамках которого Sun и Microsoft сотрудничают в области стандартов Web Services. Как известно, Microsoft создает свою коммуникационную технологию в виде набора Windows Communications Foundation. Но в корпорации сказали, что они не могут ждать завершения процесса стандартизации. Так что ее вариант программных интерфейсов может отличаться от того, что будет утверждено организациями по стандартизации позднее. Чтобы решить вопрос совместимости с .NET, Sun решила создать Java-вариант принятых в Microsoft спецификаций в виде Web Services Interoperability Technology, реализованной как открытые коды.
Что же касается мира Java, то тут поддержка высокого уровня стандартизации представляется вполне решаемой задачей. И принципиальная позиция Sun в области Open Source заключается именно в том, что обеспечение совместимости должно быть поставлено во главу проблемы.
PC Week: Конечно же реализация идей SOA имеет много аспектов, и сейчас мы вряд ли можем обсудить их все. Давайте посмотрим, что же в этой сфере предлагает Sun и чем это отличается от других продуктов.
P. A.: Прежде всего я должен подчеркнуть, что Sun - это активный игрок на мировом рынке ПО. У нас есть полный спектр предложений в данной области - операционные системы, средства разработки, ПО связующего слоя и даже СУБД. Нет у нас фактически только прикладных программ. Такое позиционирование Sun не все сознают, во многом потому, что не заметили важные изменения в бизнесе компании за последние пять лет. Например, раньше наша ОС Solaris работала только на системах архитектуры SPARC и мы выпускали исключительно такие системы. Теперь же наши программные продукты могут функционировать в среде самых разных ОС, включая Windows и Linux. В самой Solaris обеспечивается поддержка и SPARC, и x86, в том числе для систем других поставщиков, включая Dell, HP и IBM.
Мы считаем, что у нас очень сильные позиции и предложения не только в области OC, но также в сфере SOA и технологий управления идентификацией. Во многом это было достигнуто за счет сделанных за последние годы приобретений, и сейчас мы можем уверенно сказать, что завершили процесс интеграции полученных технологий и продуктов в единый комплекс. На этот момент мне хотелось бы обратить особое внимание: мы считаем, что именно в создании интегрированного набора инструментов обладаем преимуществом перед конкурентами.
В плане совместимости и интеграции я бы выделил два уровня. Первый - это Java Enterprise System, когда все основные серверы и инструменты работают на единой технологической базе, в рамках единого продукта.
Второй уровень - Java CAPS, продукт, приобретенный компанией Sun в прошлом году вместе с фирмой SeeBeyond. Очень важно, что все его компоненты были созданы одним разработчиком и используют единую базовую платформу. Это существенно отличается от того, что зачастую предлагают наши конкуренты, демонстрирующие сравнимый набор средств, но при ближайшем рассмотрении можно увидеть, что такой комплект остается лишь объединением в одной коробке продуктов нескольких разных компаний.
Дополнительным преимуществом наших предложений является высокий уровень интеграции Java CAPS с технологиями идентификации. Благодаря этому наши заказчики могут создавать не просто SOA-решения, а защищенные SOA-системы. Обеспечение высокого уровня безопасности - ключевое требование для реализации SOA, поскольку компонентная распределенная модель более уязвима по сравнению с традиционными монолитными приложениями. Фактически для критически важных бизнес-приложений в этом случае мы должны обеспечивать защиту (шифрование, цифровая подпись и пр.) на уровне каждого передаваемого между отдельными компонентами сообщения. Разумеется, это потребует более мощных вычислительных ресурсов.
В целом нужно сказать, что заказчики еще только приступают к реальному применению SOA, а потому они, с одной стороны, не до конца понимают те преимущества, которые она предоставляет, а с другой - недооценивают трудности, которые необходимо преодолеть для полной реализации этих идей. Преимущество предложений Sun в данной области заключается как раз в том, что мы даем клиентам не только то, что им нужно уже сегодня, но и то, что им понадобится в будущем.
PC Week: И все же - кого вы считаете основными конкурентами на рынке SOA?
Р. А.: Конечно, конкуренты есть. Я бы выделил три группы. Первая - поставщики серверов приложений, и тут, конечно, нужно прежде всего упомянуть компании IBM и BEA, которые расширили спектры своих решений, в том числе за счет SOA-инструментов. Вторая - это ERP-поставщики, такие как SAP и Oracle. Они решают вопросы интеграции со стороны прикладного софта, причем преимущественно своего собственного. Третья группа - специализированные компании вроде TIBCO, которые изначально, как и мы, шли от вопросов интеграции.
Как мы конкурируем с ними? Со всеми одинаково! Мы предлагаем широкий набор продуктов, отвечающий ряду основных критериев, таких как совместимость, интеграция, автоматическая генерация кода, поддержка стандартов, интероперабельность.
На стандарты мне хотелось бы обратить особое внимание. Об их поддержке говорят все поставщики, но спросите их, например, на каких серверах приложений будут работать ваши прикладные программы. Если в ответ вы услышите лишь название одной-двух платформ, то понятно, что о широкой совместимости тут нет и речи. А это означает, что у клиента могут возникнуть проблемы с использованием подобных решений уже в ближайшем будущем, допустим, при модернизации своей ИТ-инфраструктуры. Не менее важна также интероперабельность, которая подразумевает поддержку и унаследованных стандартов, таких как COM и CORBA. Что же касается интеграции, то тут мы используем одну ключевую технологию - Java.
PC Week: Кого вы видите в роли пользователей предлагаемого вами набора Java CAPS? Независимых поставщиков программных продуктов - ISV, системных интеграторов или ИТ-подразделения самих заказчиков?
Р. А.: Я думаю, что все перечисленные вами категории компаний являются потенциальными пользователями Java CAPS. Ведь этот продукт уже имеет свою рыночную историю, которая подтверждает данное мнение.
PC Week: Спасибо за беседу.