Проекты Apache
05.03.2010
—
Новости Hi-Tech
|
Мы с вами
Практически в любом приложении хотя бы на этапе его отладки бывает очень полезно вести так называемый лог - то есть журнал всех производимых приложением действий. Иногда это полезно не только для отладки - даже в достаточно отлаженных приложениях, сами понимаете, найдется место достаточно суровым и неожиданным багам. Так вот, для реализации возможностей ведения логов (или, если более кратко, логгирования) и используется библиотека Log4J. Думаю, если вы читали предыдущие статьи о проектах фонда Apache, то должны были уже давно догадаться, что буква J в названии этого программного продукта значит не что иное, как Java. В чем преимущество Log4J перед, скажем, обычной записью сообщений в какой-то текстовый файл? Дело в том, что этот фреймворк позволяет легко структурировать информацию в логе по степени её значимости (от обычных "интересных" событий вроде статусных сообщений в ICQ, сообщающих о подключении или отключении пользователей, до фатальных ошибок, приводящих к аварийному завершению приложения). И потом при просмотре лога можно будет сконцентрироваться, в первую очередь, на наиболее важных сообщениях, а затем уже переходить к менее важным. Правда, такие логи имеют и минусы: для того, чтобы извлекать максимальную пользу от их структурированности, их лучше записывать не в текстовом виде, а в XML'е, и, соответственно, просматривать подобные логи в дальнейшем гораздо удобнее с помощью специализированного вьювера. Конечно, такой вьювер есть (и даже не один), и в рамках Apache есть проект Chainsaw, посвященный как раз разработке такого вьювера с графическим пользовательским интерфейсом. Но, кстати говоря, Java - далеко не
единственный язык, для которого
доступен этот замечательный
фреймворк для логгинга. Есть у Apache
ещё два проекта, очень тесно
связанных с Log4J - они называются Log4CXX
и Log4Net. Первый из них посвящен
разработке аналогичного
логгирующего фреймворка для языка
C++, а второй - для языков платформы
.NET. На подходе и Log4PHP (думаю, тут
нужно говорить, для какого языка
программирования разрабатывается
данный фреймворк). Кстати говоря,
официальный адрес страницы всех
этих проектов -
Несмотря на то, что из всех
рассмотренных проектов Apache у этого
едва ли не самое короткое название,
по степени важности для мировой
ИТ-индустрии он находится далеко не
на самом последнем месте. Потому
что это фреймворк, предназначенный
для создания такой популярной и
актуальной во всем мире вещи, как
web-сервисы. Как вы думаете, на каком
языке предлагается создавать
сервисы с использованием этого
фреймворка? Правильно, конечно же,
это Java. Официальный сайт Apache CXF
располагается по адресу Сейчас мы не будем говорить о том, что такое 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, имеющем к ним непосредственное отношение. Что, в общем-то, видно уже из названия. Впрочем, не стоит думать, что 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. Более подробно об этом фреймворке
можно прочитать по адресу
Пожалуй, именно этот программный продукт наиболее часто используется в остальных проектах, разрабатываемых под эгидой фонда 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, и дальше рассказывать о его возможностях вряд ли имеет смысл, потому что те, кто ими заинтересовался, легко смогут узнать подробности самостоятельно на web-ресурсе проекта.
В одной из прошлых статей мы говорили о СУБД на Java, разрабатываемой в рамках проекта Apache. Так вот, представьте себе, он не одинок. Есть у Apache еще один весьма интересный проект, также посвященный разработке СУБД. Только на сей раз речь идет не об "обычной" реляционной СУБД, а об XML базах данных. Такие базы данных очень удобны в случае, если требуется хранить именно информацию в формате XML (а такой информации сегодня хватает, особенно если речь о чем-то, хоть каким-то боком связанном с Web'ом). Xindice дает проектам, хранящим данные в XML, независимость от используемой схемы XML-данных, что, в целом, придает приложениям гибкость. Впрочем, конечно, если у вас в приложении XML-данные не используются, то для данного приложения Xindice вам вряд ли понадобится. Как и многие другие проекты Apache,
этот начался вовсе не под эгидой
фонда, а был передан ему позже
разработчиками. Официальная
страница Xindice доступна по адресу Что ж, вот мы с вами и познакомились с очередным блоком проектов фонда Apache. Впрочем, их осталось ещё немало, и мы продолжим серию в следующим номерах "КВ". Вадим СТАНКЕВИЧ,
Чтобы разместить новость на сайте или в блоге скопируйте код:
На вашем ресурсе это будет выглядеть так
Фонд Apache - одна из известнейших организаций, занимающихся свободным ПО. Однако мало кто себе представляет всю ширину спектра проблем, которые решают проекты Apache...
|
|