Главная > Java - язык и технологии, Open Source, Высокопроизводительная архитектура, Мир SourceForge.net, Разное > #5. Интересное с мира SourceForge.net: распределенная система кеша ehcache для приложений любого уровня

#5. Интересное с мира SourceForge.net: распределенная система кеша ehcache для приложений любого уровня

11 марта 2008

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

Сегодня я хотел бы рассказать об одном интересном проекте, который вам пригодится при проектировании и реализации сложных веб-приложений на платформе Java. Речь идет о ehcache - универсальной системе распределенного кеширования для Java приложений и сервлетов. Это необычно небольшое приложение (честно, такого уровня системы, размером в несколько сотен Кб это редкость, при этом высокого качества), которое реализует кеш как динамический (в оперативной памяти), так и дисковый кеш, причем изначально спроектированное для работы с кешами большого обьема (порядка гигабайтов) и в распределенных системах.

ehcache может реализовывать несколько различных стратегий кеширования, например - LFR (кеширование исходя из частоты использования) или FIFO, а также можно контролировать кеш на уровне отдельных обьектов (задавая схему инвалидации объектов в кеше - по времени жизни или времени простоя). Кстати, не обошлось без поддержки стандартов - приложение поддерживает стандартный протокол работы с кешем - JSR107 JCACHE.

Конечно, сразу написать приложение на все случаи жизни нельзя, поэтому разработчики ehcache пошли другим путем, обеспечив простую расширяемость своего детища и часть функций реализуются через сторонние компоненты (например, распределенные кеши), поэтому выбирая в качестве компонента своей системы ehcache вы можете быть уверены, что интеграция будет достаточно простая, гибкая и прозрачная.

Одной из уникальных функций ehcache является "персистентный кеш", который позволяет хранить состояние обьектов даже после перезагрузки виртуальной java-машины. Кроме этого, система кеширования поддерживает консоль управления JMX, что позволяет прозрачно интегрировать ее в систему управления любым приложением, используя только стандартные протоколы и возможности. Именно такие, на первый взгляд как бы не самые существенные функции или стандарты и отличают просто приложения, разработки, нацеленные на удовлетворение, пусть и качественное, но конкретной задачи, зачастую конкретного разработчика или приложения, от действительно универсальных и готовых для использования в приложениях корпоративного уровня.

Распределенное кеширование может применяться для обеспечения работы на кластере или в других распределенных схемах, используется встроенный (с версии 1.2) механизм RMI на основе протокола TCP (да-да, не UDP, об этом особо сказано в документации). Синхронизация и/или репликация кешей между узлами может быть как общей, так и локальной, для отдельных кешей по своей схеме, асинхронной или синхронной. Кстати, для большинства функциональности от приложения, использующего кеш, совершенно ничего не требуется, все зависит только от одного конфигурационного XML файла.

Да, кеш может быть как самостоятельной единицей в составе приложения, так и взаимодействует с другими популярными фреймворками, в частности, с прослойкой для работы с базами данных Hibernate.

Можно еще много чего рассказать о проекте, уточнить, что он прекрасно документирован, оттестирован и проверен на больших нагрузках и различными тестами, может работать с веб-приложениями на Tomсat или других серверах приложения, а также взаимодействовать (или входит в состав) уже известных и зарекомендовавших себя проектов высокого уровня: Alfresco (корпоративная система управления контентом), веб-фреймворк Cocoon, Spring, Hibernate. Но лучше всего зайти на сайт разработчиков, загрузить дистрибутив, размер которого просто смешной, как на сегодня, почитать документацию или посмотреть исходный код и начать думать - каким образом я могу применить новые возможности и существенно улучшить работу моего приложения? Уверен, у вас это получится!

  1. Ігор
    11 марта 2008 в 19:01 | #1

    Дякую за вибачення. Приймаю — ато я вже хотів писати листа.
    Цілий тиждень нервово заходив на сайт і дивився чи є щось нове. До хорошого звикаєш швидко.

  2. 11 марта 2008 в 19:14 | #2

    спасибо за понимание, исправлюсь! раз в два дня будет стабильно что-то печататся! просто был сложный период, я наполовину теперь безработный так что было много дел (как ни странно)

  3. Ігор
    11 марта 2008 в 19:35 | #3

    Та я ж шуткую. Просто цей ресурс міцно увійшов в моє життя і щоранку, коли набираю стандратні лінки на пошту і решту новин — лінк цього сайту один із перших. Довзволяє відчувати в тонусі сучасних ідей і технологій.

  4. 11 марта 2008 в 19:37 | #4

    🙂 🙂 радий чути 🙂

  5. 26 марта 2008 в 00:37 | #5

    спасибо за хороший пост 🙂 посмотрю и заюзаю 🙂

  6. 4 июня 2008 в 03:04 | #6

    Oh! Perfect job!
    Very interesting and helpful post.
    Thx, your blog in my Google reader now

Комментирование отключено.
Developers.org.ua