eao197 on the Web
Сайт Евгения Охотникова
[ Главная | Описания | Проекты | Об авторе | Лицензия ]

ObjESSty - Object Entity Serialization & Stability

Что такое ObjESSty

ObjESSty -- это инструмент для сериализации и долговременного хранения сложных C++ объектов. ObjESSty включает в себя средства для сериализации/ десериализации C++ объектов в двоичное, платформо-независимое представление. Так же в состав ObjESSty входит небольшая, встраиваемая система долговременного хранения. Это не БД в традиционном смысле этого слова. Я называю это восстановочной БД или объектным хранилищем.

Создание ObjESSty стало логическим продолжением моей работы в аспирантуре -- объектно-ориентированной СУБД Dss. Только сейчас я сосредоточился на создании не универсальной СУБД, а на разработке специализированного инструмента.

Основная идея в ObjESSty -- это необходимость описания схемы данных на специальном языке и объявление сериализуемых типов производными от специального класса oess_1::stdsn::serializable_t. Все остальное -- задача ObjESSty. По описанию схемы данных автоматически генерируется вспомогательный код, который и выполняет сериализацию/десериализацию.

Версия 1.0.0 вышла в 2002 году и была широко использована при разработке ряда продуктов компании Intervale. Но я не был доволен версией 1.0.0 и последующими версиями (1.1, 1.2, 1.3). Поэтому не выкладывал ObjESSty в широкий доступ. Но сейчас, с появлением версии 1.4.0 я счел ObjESSty готовым к тому, чтобы представить ObjESSty на суд общественности.

ObjESSty разрабатывается мной, в основном, в свободное от работы время. Хотя компания Intervale с пониманием относится к тому, что часть своего рабочего времени я иногда трачу на ObjESSty.

ObjESSty полностью реализован на C++ и работает на всех платформах, для которых есть адаптация mxx_ru.

Исходные тексты
Версия 1.4.0 beta 2 от 2006.10.13
oess.1.4.0-b2-20061013.tar.bz2 (~3.2Mb).
Документация: oess-html.1.4.0-b2-20061013.tar.bz2 (~800Kb). Версия с несколькими bug-фиксами, добавлена возможность компиляции в статические библитеки, возможность ручной сериализации STL контейнеров, возможность экономичного сохранения размерности контейнеров и др.
Версия 1.4.0 beta 2 от 2006.04.26
oess.1.4.0-b2-20060426.tar.bz2 (~2.3Mb).
Один серьезный bug-fix и пара небольших улучшений.
Версия 1.4.0 beta 2 от 2006.03.01
oess.1.4.0-b2-20060301.tar.bz2 (~2.3Mb).
Это bug-fix версия, исправляющая критически важный баг.
Версия 1.4.0 beta 2 от 2006.01.24
oess.1.4.0-b2-20060124.tar.bz2 (~2.3Mb).
Это bug-fix версия.
Версия 1.4.0 beta 2 от 2005.11.14
oess.1.4.0-b2-20051114.tar.bz2 (~2.3Mb).
Документация: oess-html.1.4.0-b2-20051114.tar.bz2 (~800Kb). Версия в которой добавлена возможность ручной (custom) сериализации пользовательских типов.
Версия 1.4.0 beta 2 от 2005.09.09
oess.1.4.0-b2-20050909.tar.bz2 (~2.3Mb).
Это bug-fix версия. Изменений в документации не было.

Help needed

ObjESSty может быть гораздо лучше. Сообщите мне, что бы вы хотели от ObjESSty -- и это будет очень большая помощь!

Описания

Краткое описание
README.ru.txt
On-line документация
ObjESSty 1.4.0

Новое в 1.4.0 beta 2

Новости
NEWS.ru.txt
Лицензия
ObjESSty распространяется по BSD-лицензии (т.н. модифицированной BSD-лицензии, в которой нет требований об обязательном включении рекламной информации). Текст лицензии.
Список обновлений
ChangeLog.ru.txt
Несколько слов о поддерживаемых платформах

2005.01.27: ObjESSty 1.4.0-b1-20050127 успешно протестирован на платформе HPNonStop (Tandem)

В настоящее время ObjESSty 1.4.0 beta активно тестируется на платформах Win32 с использованием компилятора VC++ 7.1 (компилятор VC++ 6.0 не поддерживается в принципе) и Linux (Slackware 10.0) с использованием GNU C++ 3.3.3, аппаратная платформа Intel x86. Предыдущие версии ObjESSty успешно работали так же на платформах FreeBSD (x86), Solaris 8 (x86) и HPNonStop (MIPS).

ObjESSty разрабатывается с расчетом на максимальную переносимость. Для достижения этого используется библиотека ACE и кросс-платформенный инструмент для компиляции C++ проектов mxx_ru. Поэтому, теоритически, ObjESSty может быть портирован на любую платформу, которую поддерживают ACE и mxx_ru.

К сожалению, я могу протестировать ObjESSty только на ограниченном количестве платформ.

Книга жалоб и предложений

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

Если вы не смогли что-то найти или найденое вами описание оказалось для вас недостаточным -- не стесняйтесь, напишите об этом мне.

© 2003-2006 Е.А. Охотников
$LastChangedDate: 2006-10-16 15:19:37 +0400 (РџРЅ, 16 РѕРєС‚ 2006) $
e-mail

Hosted by uCoz