Проекты Apache

Фонд Apache - одна из известнейших организаций, занимающихся свободным программным обеспечением. Однако мало кто себе представляет всю ширину спектра проблем, которые решают проекты Apache. Эта статья познакомит вас с некоторыми из них - как достаточно известными, так и мало знакомыми широкой публике.


Категории проектов

Собственно говоря, если вы хотите познакомиться с проектами Apache, можете не читать эту статью, а просто зайти на сайт организации (www.apache.org) и там перейти на страницу "Projects", где изучить как список всех проектов в алфавитном порядке, так и их перечень, сгруппированный по категории предназначения проектов. Только приготовьтесь к тому, что на это уйдет достаточно много времени - ведь список проектов, работа над которыми идет под эгидой Apache Foundation, весьма велик.

А вот список категорий, на которые делятся все эти проекты, куда короче, и его изучить не составит труда. Выглядит же этот список следующим образом:

  • Билд-менеджмент
  • Базы данных
  • Графика
  • HTTP
  • HTTPD-модули
  • Библиотеки
  • Электронная почта
  • Сетевые клиенты
  • Сетевые серверы
  • Регулярные выражения
  • Тестирование
  • Виртуальные машины
  • Web-фреймворки
  • XML

Как видите, список все-таки достаточно длинный, и поэтому было бы глупо надеяться на то, что в одной статье мы сможем рассмотреть все проекты, размещающиеся в этих четырнадцати категориях. Поэтому для начала мы поговорим о самых известных из них. С одними вы наверняка сталкивались и сами, ну а про другие наверняка хотя бы слышали. Впрочем, давайте обо всем по порядку.


Apache HTTP Server

Пожалуй, из всех проектов Apache самым известным (я бы даже сказал, знаменитым) является HTTP-сервер, который так и называется - Apache HTTP Server. Проект имеет достаточно давнюю историю - началась разработка этого без преувеличений великого программного продукта ещё в далеком 1995 году, когда из-за ошибок в популярном тогда сервере NCSA HTTPd появилась потребность в аналогичном, но более стабильном продукте. В шутку или всерьез, но многие пишут, что и само название сервера произошло от слово "patch". Первые версии "Апача" были основаны на коде NCSA HTTPd, хотя в дальнейшем весь код старого сервера был переписан заново.

По статистике, Apache является сегодня самым популярным web-сервером в мире и удерживает эту пальму первенства уже не первый год. Может быть, конечно, к тому времени, как вы будете читать этот материал, что-нибудь внезапно и изменится, однако пока никаких предпосылок для подобного рода революций, вроде бы, нет. Зато есть множество коммерческих и свободных программных пакетов, куда Apache включен. Наверняка вы встречались с таким продуктом, как Denwer (он же "Джентльменский Набор Web-Разработчика").

Успех Apache, конечно, во многом объясняется соотношением цены и качества. Поскольку цена за использование этого сервера равняется нулю, а качество, напротив, стремится в недостижимую высь, то по этому параметру с Apache HTTP Server тягаться довольно-таки сложно. Впрочем, думается, дело не только в этом, но также и в том, что для Apache HTTP Server написано огромное количество дополнительных модулей на все случаи жизни, а также поддержка виртуальных серверов (VDS), которые стали популярными именно в эпоху глобальной "интернетизации". Впрочем, как бы там ни было, сегодня Всемирная паутина - это во многом именно Apache HTTP Server, и с этим нельзя не считаться.


Apache SpamAssassin

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

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


Apache Tomcat

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

Что такое Apache Tomcat? Дело в том, что сам по себе HTTP-сервер, как бы хорош он не был, не может запускать разработанные программистами web-приложения (то есть, фактически, сегодня уже любые мало-мальски функциональные сайты), не суть важно, с использованием каких языков и технологий они написаны. Поэтому, в общем-то, и нужны специальные серверы приложений, которые организуют "диалог" web-сервера и web-приложений. Что касается Apache Tomcat, то вообще-то сами его разработчики говорят о нем не как о сервере приложений, а как о контейнере сервлетов и JSP-страниц. Собственно, именно контейнером Tomcat и является, поскольку для полноценного J2EE-сервера приложений у Apache Tomcat, скажем так, все-таки не хватает кое-какой функциональности. Но поскольку писать "сервер приложений" короче, чем "контейнер сервлетов и JSP-страниц", да и прижилось уже это звание за Tomcat'ом, обычно именно так его и называют. Хотя, конечно, чаще всего просто пишут Tomcat - все-таки программный продукт очень известный.

Кстати говоря, Tomcat - тоже достаточно зрелый программный продукт, хотя, конечно, и не такой старый, как Apache HTTP Server. Но если вы зайдете на его официальный сайт (tomcat.apache.org), то увидите, что проекту уже исполнилось десять лет, о чем его разработчики с радостью сообщают всему миру.


Apache Ant

Если контейнер сервлетов нужен только тем, кто разрабатывает приложения на основе сервлетов, то такой инструмент, как Apache Ant, пригодится практически всем. Почему? Да потому, что это приложение - инструмент сборки проектов, хотя, наверное, лучше его суть передает английский термин - build tool. Как и множество других разработок Apache, Ant основывается на Java, и, собственно, именно для Java-программистов и предназначен (хотя, конечно, это вовсе не означает его полную бесполезность для всех, кто использует какие-то другие языки).

Когда-то достаточно давно я довольно подробно рассказывал читателям "Компьютерных вестей" о том, как именно применять Ant в своей работе. Но, думаю, имеет смысл и сейчас кратко упомянуть некоторые основные принципы работы этого инструмента. Ant позволяет автоматизировать процесс создания "билдов" программного продукта путем написания специальных сценариев на собственном, основанном на XML, языке. При этом, благодаря тому, что продукт "заточен" именно под Java-проекты, XML-скрипты Ant'а поддерживают множество специфических именно для этой программной платформы действий. Хотя, конечно, сегодня многие высказываются против использования Ant'а, аргументируя это тем, что нужно использовать комплексные инструменты, которые автоматизируют не только сборку проектов, но и другие стадии создания приложений. Впрочем, на популярности Ant'а это пока особенно не сказывается.


Apache .NET Ant Library

Раз уже зашла речь об Ant'е, нельзя не вспомнить другой продукт, который достаточно тесно с ним связан. Это не версия Ant для разработчиков .NET-приложений, как можно было бы подумать, - такой продукт действительно существует, хотя его было бы вернее назвать аналогом Ant для платформы. Называется эта программа NAnt, однако к фонду Apache она никакого отношения не имеет. Что касается Apache .NET Ant Library, то это просто дополнение к Ant'у, которое позволяет делать "билды" тех проектов, где Java и .NET используются совместно. Расширенный синтаксис XML, который обеспечивает Apache .NET Ant Library, позволяет запускать исполняемые файлы .NET, NUnit-тесты, MSBuild-скрипты и даже сценарии WiX для создания установочных пакетов для Windows Installer. В общем-то, конечно, даже с Apache .NET Ant Library Ant остается продуктом, сделанным именно для Java-разработки, однако все-таки благодаря этому продукту Ant становится если не лицом, то хотя бы боком к .NET-разработчикам.

Что ж, конечно, мы с вами не охватили в этом обзоре и десятой части всех проектов Apache Foundation, а потому продолжим разговор о них в следующих номерах "КВ".

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

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

Номер: 

03 за 2010 год

Рубрика: 

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