Нужна универсальная / динамическая сериализация / маршалинг, похожая на терракоту - PullRequest
1 голос
/ 01 мая 2011

Проблема: У программного обеспечения, которое я использую, Lift, есть «пользовательские сессии», в которые можно помещать любые объекты, которые сохраняются между пользовательскими запросами (с таймаутом GC).Несмотря на то, что он прост в использовании и мощный, у него есть один существенный недостаток: объекты не сериализуются, поэтому вы не можете распределить их по другим экземплярам сервера для достижения высокой доступности.

Существует ли какой-либо API / инструмент, которыйможет взять случайный объект, проанализировать его структуру посредством отражения, создать маршаллер / демаршаллер, который может извлечь все данные объекта и вернуть его в формате, который затем может быть использован для распространения объекта в другую JVM.Сам маршаллер / демаршаллер должен быть сериализуемым.Должен быть способ явного определения того, что некоторые данные должны игнорироваться, как, например, использование переходного процесса, и также должно быть возможно распознать, что некоторые ссылочные объекты на самом деле являются системными объектами (синглетами), которые должны обрабатываться особым образом.В идеале, это должен быть итеративный процесс, поэтому вы можете ограничить, насколько «большим» может быть объект для маршала.

Это несколько похоже на то, что делает Терракота, за исключением того, что я хочу реализовать свой собственныйтранспорт и бэк-энд, и я не хочу использовать их «энхансер», потому что было бы очень трудно ограничить пакеты классов для модификации, и поэтому пришлось бы изменять все мои классы только во время выполненияв случае, если это будет очень дорого.

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

1 Ответ

0 голосов
/ 02 мая 2011

Хотя это не совсем то, что я хотел, я обнаружил, что есть по крайней мере одна альтернатива терракоте, которая называется XSTM Они, кажется, имеют похожую концепцию, хотя и являются более "расширяемыми".

...