КОНФЕРЕНЦИИ
Конференции JavaOne исполнилось десять лет, и по американским нормам можно сказать, что она покинула детство и вступила в возраст тинейджерства. Мероприятие уже не приносит каких-то серьезных неожиданностей (почти все основные новости узнаются из других источников), а стало просто площадкой регулярного обмена опытом между разработчиками. Заявления с трибуны о том, что число разработчиков Java достигло 4,5 млн., еще раз говорит об одном: Java - субстанция устоявшаяся, развивающаяся эволюционно, а не революционно.
Если судить по JavaOne, то основные темы, волнующие сообщество Java, - это интеграция приложений и платформ на базе сервисно-ориентированной архитектуры (SOA), производительность Java-систем, упрощение разработки на J2EE и J2SE, новые библиотеки и развитие community.
Другие темы, такие, как встраивание Java в устройства, потеряли налет новизны: поддерживающие этот язык сотовые телефоны, коммуникаторы или смарткарточки встречаются на каждом углу. Так что хотя на форуме и вывели на сцену представителя Sony, сообщившего, что корпорация будет оснащать свои BlueRay-диски и плейеры полностью написанным на Java управляющим приложением, это мало кого сильно заинтересовало. Всем и так понятно, что корабль идет нужным курсом.
Гораздо интереснее было слушать о том, как разрешилась "важнейшая" баталия мира Java, будоражившая его весь прошлый год, а именно словесная перебранка двух главных апологетов платформы - самой Sun Microsystems и IBM, начавшаяся вскоре после замирения Sun с Microsoft. Эта стычка никогда не вызывала серьезных сомнений в будущем Java как технологии, скорее она внушала недоумение, как такое вообще может происходить. Сделанное на JavaOne объявление о перемирии казалось вполне естественным. Как и то, что IBM решила поддерживать свои продукты серии WebSphere, DB2 и Rational на Solaris для x86 и сертифицировать их для данной платформы. В конце концов, для некоторых своих продуктов она это делала и раньше.
У торта "10 лет JavaOnе" запечатлелись все
руководители Sun Microsystems
Интеграция
Как ни странно, секция, посвященная интеграции приложений на базе SOA, пользовалась самой высокой популярностью - по крайней мере если верить заявлению Джеймса Гослинга ("отца Java"), сделанному на пленарном заседании. По-видимому, это отражает ее значение с точки зрения современного состояния американских ИТ-инфраструктур.
Востребованность платформ интеграции ощущалась и на выставке JavaOne - здесь фигурировали такие вендоры, как Fiorano (разработчик ПО класса Enterprise Services Bus), SeeGull (производитель средств BPM) и даже Microsoft, которая посвятила свой стенд интеграции J2EE и .Net через Web-сервисы. Правда, было заметно отсутствие лидера в этой области - корпорации IBM, хотя она и являлась платиновым спонсором конференции. Видимо, разрешение конфликта двух компаний происходило незадолго до ее начала, когда поздно было что-то менять в организационном плане.
Сама Sun Microsystems в последние недели сделала несколько важных шагов в этой области. Для того чтобы объяснить их суть, напомним, что подход к интеграции на базе SOA подразумевает оформление части API корпоративных приложений в виде набора общедоступных сервисов, которые можно связывать при помощи сценариев, задаваемых в платформах интеграции. Можно выделить несколько типов платформ, упрощающих подобное связывание (см., например, отчет "Методы и средства интеграции приложений", RC Group, 2005 гг.), в том числе платформы гарантированной доставки сообщений в территориально распределенных средах (Message-Oriented Middleware), интеграционные брокеры (к этой категории относятся брокеры сообщений и системы BPM), а также серверы приложений. Сейчас идет процесс конвергенции, и серверы приложений все чаще служат как платформа исполнения кода интеграционных серверов.
Из этого стека Sun Microsystems до настоящего времени имела только два компонента - платформу MOM (Java Enterprise Systems MessageQ) и сервер приложений JES Application Server, являющийся развитием продукта, когда-то приобретенного вместе с компанией iPlanet. Третий компонент (интеграционный брокер) у Sun отсутствовал - около двух лет назад она прекратила продажи продукта SunONE Integration Server, так как сочла использованные в нем подходы тупиковыми. На JavaOne корпорация сообщила о закрытии этой "дыры" в продуктовой линии: во-первых, вышла окончательная версия давно анонсированной спецификации Java Business Integration (JBI) и связанного с ней прикладного ПО, а во-вторых, Sun объявила о решении приобрести фирму SeeBeyond, производящую ПО для процессной интеграции приложений.
SeeBeyond мало известна в России, так как у нее нет здесь представительства и больших партнеров, но в США позиции этой фирмы более сильны - в среднем на нее приходится около 4% мирового рынка межплатформенного ПО. Компания выпускает платформу процессной интеграции, позволяющую иметь несколько серверов в территориально распределенной конфигурации, управляемых централизованно. Она включает средства обмена сообщениями и их трансформации посредством XSLT, инструменты Business Process Management и B2B-интеграции. Система базируется на подходе обобщенных деловых объектов и может опираться на средства гарантированной доставки IBM, Oracle и других вендоров.
JBI
Из представленных технологий стоит подробнее остановиться на JBI, поскольку это не закрытая фирменная технология, а некоторая архитектура, ориентированная на широкое применение.
JBI определяет рамочный набор интерфейсов, через которые могут взаимодействовать провайдеры информационных сервисов, а также средства связывания и координации исполнения этих сервисов. К числу первых могут относиться, например, Web-сервисы, к числу вторых - процессоры сценариев на языке BPEL (Business Process Execution Language) или средства трансформации на базе языка XLST. Архитектура этой технологии ориентирована на обмен сообщениями, которые поступают из источников и отправляются получателям, описанным при помощи языка WSDL (Web Services Description Language). Это первая часть спецификации, затрагивающая связывание "сервисных механизмов" - Service Engines (SE). Эти механизмы оперируют "внутри" среды исполнения JBI.
Вторая ее часть определяет привязку к внешним системам, функционирующим далеко за рамками среды JBI. Это достигается через так называемые компоненты связывания Binding Components (BC). Через них могут подключаться внешние корпоративные системы или системы, действующие через специфические транспортные протоколы. JBI предлагает стандарт на промежуточный слой для удаления этой специфической информации о транспортном уровне и форматах сообщений, не нужной для исполнения делового процесса. Такой процесс называется нормализацией.
Координация взаимодействия всех сервисов лежит на блоке архитектуры, называемом Normalized Message Router, - фактически брокере сообщений.
JBI предлагает также средства для формирования пакетов сервисов, для их упрощенного развертывания (Service Assembly), для управления жизненным циклом сервисов и их мониторинга, в том числе через командную строку или Java Management Extensions (JMX).
Средства разработки
Огромное внимание корпорация Sun уделила на конференции новым средствам разработки. Прежде всего, конечно, собственной разработки. Всего у компании три подобных продукта, каждый из которых базируется на платформе NetBeans, - это Java Studio Creator, Java Studio Enterprise и Sun Studio.
К JavaOne был приурочен выпуск очередного релиза Java Studio Creator (JSC), существенно упрощающей разработку Web-интерфейсов Java-приложений. Даже относительно сложный JSP-код здесь можно сформировать простым перетаскиванием стандартных компонентов мышью и также привязать их к источникам данных. Демонстрации возможностей этого продукта были разной убедительности - от сборки приложения из готовых компонентов (например, прямо во время пленарного доклада был собран мультимедиа-плейер) до быстрого программирования приложений, черпающих информацию из СУБД и Web-сервисов. Конечно, очень большая часть реальной работы производится разработчиком, создающим компоненты для такого приложения, но если принять во внимание недостаточную развитость средств разработки на Java в целом, то легко понять, что инструменты наподобие JSC крайне важны в конкуренции этой технологии с Microsoft .Net и Visual Studio.
Многие участники JavaOne предпочли
сидению в тесноте в зале пленарных
заседаний работу через Wi-Fi-сеть конференции,
впрочем, не пропуская ничего из того, что
говорилось с трибуны
Другие два инструмента позиционируются как средства разработки для серверного слоя (Java Studio Enterprise) и решения сложных задач 64-разрядной разработки (Sun Studio). Руководители команды разработчиков Sun, с которыми мне удалось пообщаться на JavaOne, считают существование большого набора инструментов большим плюсом, полагая, что у опытного разработчика должен быть под рукой столь же разнообразный набор средств, как у хирурга на операции. (Заметим, что многие специалисты из лагеря Microsoft придерживаются обратного мнения, считая, что одна среда лучше многих.) Не менее активно Sun пропагандировала на конференции новый профайлер DTrace for Java, позволяющий собирать статистику вызовов подпрограмм начиная от верхнего уровня и вплоть до сервисов и ядра ОС. За счет такой глубины инструмент может выявлять проблемы производительности, недоступные обычному профайлеру. Работающий на Solaris, DTrace позволяет, по утверждению компании, поднять производительность приложений на 30-300%. В рекламе его возможностей лично принял участие президент Sun Скотт Макнили.
Представляется, что большие подвижки происходят и в области прикладных библиотек Java. Например, в сфере интерфейсов идет переход с AWT и Swing на новую библиотеку SWT. Все чаще применяется серверная компонентная технология для создания Web-интерфейсов - JavaServer Facets, с которой позволяет работать уже упомянутый Java Studio Creator. В сообществе open source активно используются и другие технологии, например Struts, реализующая звено контроллера в архитектуре "модель - вид - контроллер" или JavaServer Faces, предлагающая функции для построения "видов". Подобные технологии время от времени расходятся с "генеральной линией Java", вызывая напряженные противостояния.
Так, предложенная Sun реализация сохранения в БД состояния серверных Java-объектов, прилагавшаяся к платформе EJB (Enterprise Java Beans) 2.х, не снискала популярности у разработчиков. Мир open source немедленно предложил несколько альтернатив - в частности, такие библиотеки, как Hibernate и ObJectRelationalBridge. Возникла странная ситуация, когда популярность набирали библиотеки, не полностью совместимые с важнейшей для Sun серверной технологией. Но компания пошла навстречу обществу, и в ближайшем будущем должна появиться технология Java Data Objects (JDO), обеспечивающая новый стандартизированный API для осуществления функций сохранения состояния. Вместе с ней, как обещают, можно будет использовать любую подобную библиотеку.
Технология JDO будет использоваться совместно с EJB версии 3.0: для сохранения состояния объектов можно будет использовать любые такие пакеты. Сама EJB 3.0 также обещает немало нового разработчикам - прежде всего в области сокращения непроизводственных затрат. Как известно, многие разработчики с большой нелюбовью относятся к EJB, справедливо ругая ее за то, что в ней масса ненужных сложностей, например, связанных с определением большого числа интерфейсов для создания EJB-компонента или с оформлением избыточных с точки зрения здравого смысла метаописаний этих компонентов (файлов дескрипторов).
Данные недостатки и должны быть ликвидированы в EJB 3.0, где будет активно использоваться механизм аннотаций - фактически аналог директив препроцессора, отказ от которых в Java в свое время вызвал фурор. Благодаря аннотациям код классов EJB не будет отличаться от кода обычных Java-бинов (Pure Old Java Object), что решает важную проблему этой технологии.
Дорожная карта
Что же ожидать от Java в ближайшем будущем? Ответ на этот вопрос дает "дорожная карта" (Roadmap) развития платформы на ближайшие несколько лет, представленная на конференции.
Прежде всего нас ждет перенумерация платформ. Все номера будут одноразрядными - скажем, J2EE 5. В середине 2006 г. будет выпущена новая версия "настольной" платформы, пока имеющая кодовое название Mustang. Акцент в ней сделан на повышение стабильности, улучшение возможностей по взаимодействию с расположенными на сервере Web-сервисами, а также на технологии доступа к БД JDBC 4.0, поддерживающей работу с данными в XML.
Наиболее интересной будет рамочная инфраструктура для подсоединения в Java Virtual Machine модулей исполнения скриптовых языков. Хотя, по признанию разработчиков из Sun, конечной целью было обеспечить подключение "движка" PHP, вместе с платформой будет поставляться модуль исполнения JavаScript. Другим поддерживаемым "из коробки" языком, возможно, станет BeanShell, правда, уже в следующей версии стандартной редакции платформы J2SE. Сценарные языки, по замыслу архитекторов, должны обеспечить быстрое создание простых приложений, на Java же должны писаться более сложные.
Итак, задачи Java-платформы на ближайшие год-два выглядят следующим образом: стать надежнее (да-да, это все еще актуально), производительнее и проще в прикладной разработке.