Perst
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Разработчик(и) | МакОбъект |
---|---|
Первоначальный выпуск | 2003 год |
Операционная система | Кросс-платформенный |
Тип | СУБД |
Лицензия | GPL или проприетарная лицензия |
Веб-сайт | www |
Perst — это ) с открытым исходным кодом и двойной лицензией объектно-ориентированная встроенная система управления базами данных ( ODMS . Как Java язык программирования , так и версии языка программирования C# компактны, и Perst реализован на смартфонах под управлением Android и Windows Phone (WP7) операционных систем .
История
[ редактировать ]Perst выпущен в 2003 году в России. Он был разработан для достижения высокой производительности за счет тесной интеграции базы данных с языком программирования: Perst напрямую хранит данные в объектах языка. В 2006 году компания McObject LLC, расположенная в Иссакуа, штат Вашингтон, взяла на себя разработку Перста. Он по-прежнему предлагает бесплатную загрузку и добавил варианты коммерческой лицензии.
Perst был впервые написан на Java и перенесен на C#. Хотя изначально Perst был разработан для настольного и серверного программного обеспечения, он также нашел применение для обеспечения управления базами данных для мобильных приложений, работающих на таких устройствах, как смартфоны . Эти мобильные устройства обычно имеют аппаратные ограничения: ограниченный объем оперативной памяти и малое количество доступных циклов ЦП, а также нестандартные (для систем баз данных) эксплуатационные требования (например, поддержка Java ME или Silverlight на мобильной платформе Windows Phone 7). [1] [2] [3] [4]
Версии
[ редактировать ]В настоящее время доступны версии Perst: Perst для .NET , Perst для Java и Perst Lite. Perst для Java и Perst Lite включены в один дистрибутив программного обеспечения.
Perst для .NET поддерживает версии C# 1.0 и 2.0 с одним и тем же исходным кодом. Поддержка определенных функций C# 2.0 (например, классов шаблонов) обеспечивается во время компиляции. Он совместим как со стандартными, так и с компактными платформами .NET, а также с Silverlight и может работать как с Microsoft Windows Phone 7 (WP7), так и с Windows Embedded Compact (ранее Windows CE).
Perst для Java поддерживает J2SE / J2EE версий 1.3 и 1.4, а также J2SE/J2EE версии 5. Он совместим со средой смартфона Android.
Perst Lite — это реализация Perst для Java, которая работает на устройствах (таких как смартфоны BlackBerry) на базе платформы мобильных устройств Java ME (J2ME). Его объем памяти примерно на 30 процентов меньше, чем у стандартного Perst. [5]
Подробно
[ редактировать ]Размер
[ редактировать ]Размер движка Perst составляет 5000 строк исходного кода , а объем его (ОЗУ) во время работы оперативной памяти варьируется от 30 до 300 КБ. [6] ]
Транзакции
[ редактировать ]Perst Транзакции поддерживают свойства ACID (атомарность, согласованность, изоляция, долговечность) с автоматическим восстановлением.
Запрос
[ редактировать ]Perst предоставляет подмножество SQL для фильтрации элементов контейнерного класса . Для доступа к хранимым объектам Perst реализует специализированные классы коллекций, в том числе:
- B-дерева Индексы
- R-дерева Индексы
- баз данных в памяти Классы контейнеров на основе T-деревьев.
- k -d индексы дерева
- Индексы радикс-дерева (Patricia trie)
- Класс временных рядов для эффективной работы с небольшими объектами фиксированного размера, такими как котировки акций.
- Специализированные версии коллекций для толстых индексов (индексов с большим количеством дубликатов) и битовых индексов (ключей с ограниченным числом возможных значений). [7]
Эволюция схемы
[ редактировать ]Чтобы облегчить внесение изменений в существующую структуру базы данных ( схему базы данных ), Perst реализует «ленивую» эволюцию схемы базы данных . Когда экземпляр объекта загружается из базы данных, его дескриптор класса сравнивается с форматом класса в приложении. Если они не идентичны и объект необходимо изменить, то объект преобразуется и сохраняется в новом формате. При «энергичном» развитии схемы изменения формата будут распространяться по базе данных одновременно.
Дополнительные возможности
[ редактировать ]- Сбор мусора
- Многопоточный
- Поддержка языковых интегрированных запросов (LINQ) [8]
- XML импорта/экспорта Утилиты
- главный/подчиненный Поддержка репликации с возможностью запуска запросов только для чтения на подчиненных узлах.
- Полнотекстовый поиск [9]
- Интеграция с AspectJ и JAssist. аспектно-ориентированного программирования инструментами [10]
Примеры реализации
[ редактировать ]ProScout — это демонстрационный мидлет для использования Perst Lite в среде Java ME. Демонстрация представляет собой отдельное средство для ведения заметок, предназначенное для спортивного рекрутера. Первоначально реализованная для Blackberry , она также была использована на Nokia S60 . [11]
McObject предоставляет демонстрационное приложение системы CRM, использующее Perst для .NET, включая базу данных контактов с возможностью текстового поиска, которая запускается в браузере настольного компьютера в Silverlight. [12] Энди Вигли из appamundi портировал это демонстрационное приложение на Windows Phone и описал проект в серии публикаций в блоге. [13]
Лицензирование
[ редактировать ]Пользователи могут распространять и/или изменять Perst в соответствии с условиями Стандартной общественной лицензии GNU (версии 2 или более поздней), опубликованной Free Software Foundation . Для частных лиц или организаций, которые не могут или не хотят соблюдать GPL, McObject может предоставить коммерческую лицензию.
Ссылки
[ редактировать ]- ^ См., например, статью «Создание базы данных для Windows Phone 7 можно назвать эпопеей» Брэндона Уотсона, директора Microsoft по опыту разработчиков для Windows Phone 7, в его записи в блоге « Запросы устройств для Windows Phone 7», 17.06.2010 .
- ^ Дуэт баз данных предоставляет хранилище приложений для Windows Phone 7, The Register, 30.06.2010 .
- ^ Встроенный механизм базы данных для приложений Silverlight, блог «Архитектура + стратегия», MSDN .
- ^ Разработка объектно-ориентированной базы данных для встраиваемых устройств на базе J2ME. EE Times, 14.12.2006 . В этой статье обсуждаются технические проблемы, которые пришлось преодолеть в Java ME (J2ME) для поддержки ODBMS в этой среде.
- ^ Базы данных для Java ME, часть 2: Не только JavaDB, но и Perst Lite, блог Терренса Барра на Java.Net. 7 декабря 2007 г. Архивировано 26 февраля 2012 г. в Wayback Machine . Барр, евангелист Sun Microsystems в области Java ME, в этом и предыдущем сообщении блога (Нужна база данных для вашего телефона?, 05.09.20070. Архивировано 18 августа 2011 г. на Wayback Machine ), описывает растущий спрос на данные. управление приложениями, которые работают на смартфонах на базе Java ME, а также несколько доступных систем баз данных для удовлетворения этой потребности.
- ^ McObject выпускает Perst, встроенную базу данных с открытым исходным кодом для Java. Журнал разработчиков Java, 9 февраля 2006 г.
- ^ McObject выпускает тест Perst и SQLite для Android. Журнал доктора Добба, 02.01.2008 г.
- ^ «Встроенная база данных добавляет поддержку LINQ» . Архивировано из оригинала 9 февраля 2013 г. Windows для устройств eWeek, 9 июня 2008 г.
- ^ McObject выпустил Perst 4.0, новый встроенный полнотекстовый поиск и многое другое для Android. Архивировано 20 мая 2011 г. в журнале Wayback Machine Open Handset Magazine, 27 января 2009 г.
- ^ Для дальнейшего обсуждения функций см. спецификацию встроенной базы данных Perst компании McObject ; также Perst для Java: введение и руководство и Perst для .NET: введение и руководство.
- ^ Портирование мидлета Java ME между устройствами Blackberry и Nokia S40 и S60, http://eetimes.com/design/embedded/4007203/Porting-a-Java-ME-Midlet-Between-Blackberry-and-Nokia-S40-and -S60-Устройства
- ^ Демонстрационное приложение встроенной базы данных Perst и Silverlight
- ^ Perst — база данных для Windows Phone 7 Silverlight.
Внешние ссылки
[ редактировать ]- Официальный сайт McObject
- Perst — страницы ProScout на веб-сайте сообщества Java.Net Mobile & Embedded Community.