Что Вы подумаете, уважаемый читатель, увидев в популярном отечественном компьютерном еженедельнике переводную статью «Дезертирство из рядов JBI» с подзаголовком «Спецификация Java теряет поддержку BEA и IBM»? Автор этой статьи — американский журналист Дэррил Тафт, а ее оригинал озаглавлен Defections Rattle Java Alliance («Коалиция Java разваливается с треском»). Скорее всего, аббревиатура JBI (Java Business Integration) вам незнакома, в подтверждение чему в российском сегменте Сети фигурируют лишь шесть (!) ссылок на сей предмет, но указанный подзаголовок, без сомнения, вызовет у Вас более чем удивление.
Беспокоиться за судьбу языка Java не стоит — с ним все в порядке. Просто на не слишком достоверный по смыслу оригинал наложился чересчур пафосный перевод. Аналогичный случай описан в сказке Ганса Христиана Андерсена про курочку, которая по неосторожности выщипала себе перо.
Действительно, в конце октября компания Sun Microsystems и еще несколько производителей программного обеспечения опубликовали предварительную версию спецификации JBI. Ее поддержали целый ряд компаний, но из группы поддержки вышла BEA Systems, а ранее — IBM. Отметим, что в российской публикации упомянутой статьи статус спецификации early draft по какой-то причине переводится как «окончательный». Сам же Дэррил Тафт придал изменению позиции BEA и IBM драматическую окраску: это дало автору повод для утверждения, что готовится очередная война стандартов, теперь — в области интеграции Web-сервисов. По его мнению, противниками окажутся, с одной стороны, спецификация JBI JSR 208 (Java Specification Request 208), подготовленная в рамках JCP (Java Community Process), и, с другой, язык исполнения бизнес-процессов BPEL.
Бедный Дэррил, как тут не вспомнить классическое «Где имение, а где наводнение»! Ни о какой войне и речи быть не может, поскольку JSR-208 определяет архитектуру и интерфейсы для включения в Java-платформу машин, поддерживающих исполнение бизнес-процессов, потоков работ или трансформации документов. Это может делаться с использованием JSR-208 и без оной, так как инфраструктурный компонент JSR-208 обеспечивает обмен сообщениями в общей системе.
Поддержка или НЕподдержка компанией одного из уровней многоуровневой системы, создаваемой на основе множества соглашений, отнюдь не является признаком мира или войны. Она лишь свидетельствует о принятии или непринятии на себя тех или иных обязательств. Спецификация JBI сосредоточена на образах обмена сообщениями WSDL (message exchange patterns) и служит своего рода сервисом. Воспользовавшись терминологией WSDL 1.1, можно сказать, что она абстрагирует на уровне portType. Если реализация машины BPEL строится на открытых принципах, то даже о прямой конкуренции, а не то что о войне, речи и быть не может. Другое дело, что при частной и закрытой реализации BEPL возможна косвенная конкуренция.
Однако разберемся по порядку. Почти одновременно с созданием языка Java в 1995 году появилось сообщество Java Community Process (JCP, jcp.org). По традиции, возникшей во времена создания Arpanet, когда был придуман документальный обмен мнениями в виде комментариев к запросам Request for Comments No. XXX, одной из форм работы JCP стали запросы Java Specification Requests (JSR). В них формально описываются предложения и технологии, которые стоило бы добавить к платформе Java. Существует уже отработанная процедура прохождения таких документов. Их насчитывается примерно 250, причем они неодинаковы по значимости.
Под номером 208 в списке JSR значится Java Business Integration. В популярной форме содержание этой инициативы было обнародовано 11 июня 2004 года в относительно небольшом документе Java Business Integration Vision. Непротиворечивость JBI и BPEL становится очевидной даже при самом поверхностном его просмотре.
Идея спецификации JSR 208 (Java Business Integration) предложена JSP корпорацией Sun Microsystems в марте 2003 года. Тогда же была создана экспертная группа из 24 компаний под председательством Sun, которая должна была подготовить первую редакцию спецификации. На июнь 2004 года в группу входили такие компании, известные деятельностью в сфере сервис-ориентированных архитектур, как IBM, BEA, Borland, Bull, Collaxa, IOPSIS, Intalio, Nokia, Novell, Oak Grove Systems, Oracle, Research In Motion, SAP, SeeBeyond, Sonic Software, Sybase, TIBCO, Tmax Soft, Vignette, WebMethods. Сегодня в группе появились новые участники, кто-то вышел из нее, кого-то купили — жизнь не стоит на месте.
Сам по себе этот список чрезвычайно интересен, в нем отразились все стороны процесса становления SOA. В нем, например, значатся «далекие друг от друга» компании, такие как Intalio и Sonic Software. Первая занимает верхний уровень технологической пирамиды, занимаясь, в основном, средствами моделирования бизнес-процессов, а вторая — нижний, действуя в области обеспечения физического обмена информацией по корпоративной шине ESB. Тот факт, что все участники группы работают скоординированно, очень показателен.
Поскольку инициатором JSR 208 является Sun Microsystems, понятно, что перед нами — интеграционная стратегия именно данной компании. Этого никто не собирается скрывать, но черным по белому в этой спецификации написано: «Мы намереваемся работать вместе со всей индустрией и стандартными комитетами для создания общих стандартов, которые начинаются с JSR 208 и WS-BPEL и включают в себя другие стандарты, относящиеся к Web-сервисам и интеграции приложений».
JSR 208 определяет стандартные, подключаемые (pluggable) Java-контейнеры (или среду исполнения интеграционных решений). В спецификацию входят интерфейсы для поставщика сервисов Service Provider Interfaces (SPI), предназначенные для сервисных машин и образующие используемый этими машинами нормализованный сервис сообщений Normalized Message Service. Сама JSR 208 не определяет машины, так как, в отличие от некоторых других инициатив JCP, не ориентирована на разработчиков приложений. Она нацелена на системных разработчиков, создающих интеграционные серверы.
Спецификация JSR 208 имеет следующие достоинства: JSR 208 сама по себе является архитектурой, ориентированной на сервисы, а потому характеризуется высокими гибкостью и масштабируемостью; если сервисные машины поддерживают SPI, они могут быть реализованы на любом языке, новые машины могут быть добавлены в контейнер с использованием SPI.
Спецификация JSR 208 предполагает координацию соответствующей деятельности с другой работой по стандартизации. В том числе, имеются в виду WS-BPEL, разрабатываемый OASIS, и инициатива JSR 207, предложенная BEA (описываются роль и поддержка потоков работ в среде разработки).
В перспективе Sun предполагает передать свои предложения в главные стандартизующие организации W3C и OASIS, а также организовать взаимодействие с Web Services Interoperability group (WS-I). Естественно, для потенциальных потребителей больший интерес представляют не внутренние процессы, определяющие взаимодействие производителей, а их результаты. В данном отношении от Sun следует ожидать реализации проекта Project Shasta, основанного на архитектуре JSR 208, который включит в себя сервисы Sun J2EE Application Server, такие как JMS, JCA. В проекте нашли отражение и другие стандарты, развивающиеся на пространстве Web-сервисов и интеграции.
В процессе поиска новых подходов все участники консорциума проявляют завидную терпимость. Так, Sun вполне благожелательно относится еще к одной инициативе BEA и IBM, создающих в соавторстве WS-BPELJ — средство взаимодействия BPEL и Java.