Как поделиться библиотекой для доступа к данным в Tomcat 7? - PullRequest
1 голос
/ 16 ноября 2010

Я довольно плохо знаком со всем, что связано с веб-программированием, и имею следующую проблему:

У меня есть 2 веб-приложения, одно из которых - веб-сервис оси, а другое - приложение Spring. Оба должны получить набор данных из библиотеки, которая содержит данные в памяти. Эти данные большие, поэтому копирование данных для каждого приложения невозможно.

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

К сожалению, это не работает. Я получаю исключение, что объект, который я хочу использовать, находится в разных загрузчиках классов.

У меня вопрос: как я могу предоставить такого поставщика контейнеров для обеих библиотек в Tomcat 7?

КСТАТИ: База данных не вариант, потому что это медленно.

Редактировать: Я должен был быть ясно о данных. Данные являются Тематической картой, хранящейся в движке тематической карты. (см. http://www.isotopicmaps.org). Механизм используется для доступа к данным и, следовательно, является точкой доступа к данным. У нас есть собственный движок, который хранит память данных, которая работает быстрее, чем серверная часть базы данных.

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

Ответы [ 2 ]

1 голос
/ 16 ноября 2010

Это то, для чего создаются распределенные кэши, хранилища значений ключей, хранилища документов и базы данных noSql. Есть много вариантов и новых каждый день. Бесплатные варианты и варианты с открытым исходным кодом, вероятно, удовлетворят ваши потребности и предоставят вам столько поддержки, сколько вам потребуется. В настоящее время мой любимый - membase .

1 голос
/ 16 ноября 2010

Итак, вам нужен распределенный кэш в памяти для кластера серверов.Для этого вы можете использовать Терракотовую .Вы можете найти здесь хорошее введение в Terracotta.


Обновление : Я действительно не согласен с аргументом, что база данных "слишком медленная".Если он медленный, то модель данных и / или код доступа к данным просто плохо спроектированы.

...