Проекты Apache

Часть четвёртая

Мы с вами поговорили уже о достаточно большом количестве проектов фонда Apache, но... Да-да, вы совершенно правы: это был ещё далеко не весь их список. В целях общего развития читателей "Компьютерных вестей" и повышения уровня их образованности продолжим нашу победную серию.


Apache Log4J

Практически в любом приложении хотя бы на этапе его отладки бывает очень полезно вести так называемый лог - то есть журнал всех производимых приложением действий. Иногда это полезно не только для отладки - даже в достаточно отлаженных приложениях, сами понимаете, найдется место достаточно суровым и неожиданным багам. Так вот, для реализации возможностей ведения логов (или, если более кратко, логгирования) и используется библиотека Log4J. Думаю, если вы читали предыдущие статьи о проектах фонда Apache, то должны были уже давно догадаться, что буква J в названии этого программного продукта значит не что иное, как Java.

В чем преимущество Log4J перед, скажем, обычной записью сообщений в какой-то текстовый файл? Дело в том, что этот фреймворк позволяет легко структурировать информацию в логе по степени её значимости (от обычных "интересных" событий вроде статусных сообщений в ICQ, сообщающих о подключении или отключении пользователей, до фатальных ошибок, приводящих к аварийному завершению приложения). И потом при просмотре лога можно будет сконцентрироваться, в первую очередь, на наиболее важных сообщениях, а затем уже переходить к менее важным. Правда, такие логи имеют и минусы: для того, чтобы извлекать максимальную пользу от их структурированности, их лучше записывать не в текстовом виде, а в XML'е, и, соответственно, просматривать подобные логи в дальнейшем гораздо удобнее с помощью специализированного вьювера. Конечно, такой вьювер есть (и даже не один), и в рамках Apache есть проект Chainsaw, посвященный как раз разработке такого вьювера с графическим пользовательским интерфейсом.

Но, кстати говоря, Java - далеко не единственный язык, для которого доступен этот замечательный фреймворк для логгинга. Есть у Apache ещё два проекта, очень тесно связанных с Log4J - они называются Log4CXX и Log4Net. Первый из них посвящен разработке аналогичного логгирующего фреймворка для языка C++, а второй - для языков платформы .NET. На подходе и Log4PHP (думаю, тут нужно говорить, для какого языка программирования разрабатывается данный фреймворк). Кстати говоря, официальный адрес страницы всех этих проектов - logging.apache.org.


Apache CXF

Несмотря на то, что из всех рассмотренных проектов Apache у этого едва ли не самое короткое название, по степени важности для мировой ИТ-индустрии он находится далеко не на самом последнем месте. Потому что это фреймворк, предназначенный для создания такой популярной и актуальной во всем мире вещи, как web-сервисы. Как вы думаете, на каком языке предлагается создавать сервисы с использованием этого фреймворка? Правильно, конечно же, это Java. Официальный сайт Apache CXF располагается по адресу cxf.apache.org.

Сейчас мы не будем говорить о том, что такое web-сервисы, отложим эту познавательную информацию для рубрики FAQ. Лучшем обсудим, что именно CXF предлагает хорошего для создателей web-сервисов. Во-первых, это поддержка большого количества разнообразных стандартов: SOAP, WSI Basic Profile, WSDL, WS-Addressing, WS-Policy, WS-ReliableMessaging, WS-Security, WS-SecurityPolicy, WS-SecureConversation. CXF гибкий фреймворк относительно "фронт-ендов" к сервисам, а также поддерживает бинарные и устаревшие (для обратной совместимости) протоколы для коммуникации между сервисами и клиентскими приложениями. Что весьма удобно, поскольку, несмотря на то, что в большинстве случаев используются, конечно же, протоколы, основанные на XML'е, хотя есть ведь и JSON, который, к счастью, также поддерживается CXF'ом. Есть также поддержка CORBA, что, несомненно, также следует рассматривать именно как плюс данного фреймворка.


Apache ServiceMix

Раз уж речь зашла о сервисах, стоит вспомнить о другом проекте Apache, имеющем к ним непосредственное отношение. Что, в общем-то, видно уже из названия. Впрочем, не стоит думать, что CXF и ServiceMix - это конкурирующие программные продукты. Скорее, взаимно дополняющие друг друга.

ServiceMix - также фреймворк для Java, основанный на SOA и ESB, поддерживающий спецификацию API Java Business Integration (JBI) и имеющий, ко всему прочему, поддержку OSGi. И снова не будем углубляться в суть этого акронима, но вкратце скажем, что этот фреймворк предназначен для реализации главной идеи JBI - построения решений на основе сервисов по популярному в силу своего удобства принципу "Plug and Play", то есть по компонентному принципу.

Как и многие другие проекты Apache, ServiceMix имеет интеграцию с таким актуальным для Java-программистов решением, как Spring. Что, в общем-то, можно только приветствовать. ServiceMix включает в себя полностью реализованный JBI-контейнер, реализующий все спецификации JBI. Также ServiceMix предоставляет простое клиентское API для работы с JBI-компонентами и сервисами, а также предоставляет реализацию WS Notification.

Более подробно об этом фреймворке можно прочитать по адресу servicemix.apache.org. Нужно сказать, что из множества проектов Apache у этого одна из самых информативных страничек.


Apache ActiveMQ

Пожалуй, именно этот программный продукт наиболее часто используется в остальных проектах, разрабатываемых под эгидой фонда Apache (например, в уже упоминавшемся выше ServiceMix). Почему? Потому что в его рамках идет разработка брокера сообщений (message brocker), полностью соответствующего спецификациям Java Message Service 1.1 (JMS). Кстати говоря, в отличие от большинства других проектов Apache, эта разработка является кросс-языковой - то есть, речь идет о поддержке не только Java, но также языков платформы .NET, C/C++ и разных скриптовых языков наподобие Perl, Python, PHP и Ruby.

Что такое брокер сообщений? Условно говоря, это такой компонент, который принимает сообщения от одного приложения и затем переадресует их какому-то другому. То есть, он фактически, занимается маршрутизацией сообщений. Попутно, конечно, он может заниматься их валидацией, конвертацией из одного формата в другой (если, к примеру, клиенты, подключенные к брокеру, используют разные протоколы)... В ряде случаев удобно применять шаблон, предусматривающий использование брокера сообщений, чем, собственно говоря, и объясняется высокая степень востребованности Apache ActiveMQ.

ActiveMQ поддерживает много интересных и полезных вещей, например, таких, как группы сообщений, виртуальные адресаты, составные адресаты. Работа ActiveMQ протестирована под Geronimo, JBoss 4, GlassFish и WebLogic, то есть, фактически, вы можете смело ставить его под любой промышленный сервер приложений. Также, как утверждается на официальной странице проекта (а расположена она, к слову, по адресу activemq.apache.org), ActiveMQ с самого начала "затачивался" под высокопроизводительные кластерные или клиент-серверные системы, а также под P2P-коммуникации. Так что если желаете организовать собственную пиринговую сеть, чтобы судиться вволю со звукозаписывающими компаниями, можно воспользоваться ActiveMQ.

В общем-то, думаю, и так уже вполне понятно, что ActiveMQ - один из самых значимых проектов фонда Apache, и дальше рассказывать о его возможностях вряд ли имеет смысл, потому что те, кто ими заинтересовался, легко смогут узнать подробности самостоятельно на web-ресурсе проекта.


Apache Xindice

В одной из прошлых статей мы говорили о СУБД на Java, разрабатываемой в рамках проекта Apache. Так вот, представьте себе, он не одинок. Есть у Apache еще один весьма интересный проект, также посвященный разработке СУБД. Только на сей раз речь идет не об "обычной" реляционной СУБД, а об XML базах данных. Такие базы данных очень удобны в случае, если требуется хранить именно информацию в формате XML (а такой информации сегодня хватает, особенно если речь о чем-то, хоть каким-то боком связанном с Web'ом). Xindice дает проектам, хранящим данные в XML, независимость от используемой схемы XML-данных, что, в целом, придает приложениям гибкость. Впрочем, конечно, если у вас в приложении XML-данные не используются, то для данного приложения Xindice вам вряд ли понадобится.

Как и многие другие проекты Apache, этот начался вовсе не под эгидой фонда, а был передан ему позже разработчиками. Официальная страница Xindice доступна по адресу xml.apache.org/xindice.

Что ж, вот мы с вами и познакомились с очередным блоком проектов фонда Apache. Впрочем, их осталось ещё немало, и мы продолжим серию в следующих номерах "КВ".

Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by

Версия для печатиВерсия для печати

Номер: 

08 за 2010 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!