Бессерверная NoSQL-база данных от компании ObjectBox как новый тренд разработки

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

Вивьен Доллинджер — магистр делового администрирования MBA и PhD в области бизнеса, основатель компании ObjectBox.

ObjectBox — английско-немецкая компания-разработчик одноименной объектно-ориентированной NoSQL-системы управления базами данных для мобильных устройств и IoT.


Создание новой СУБД похоже на прыжок в воду с обрыва

До недавних пор понятие СУБД прочно ассоциировалось с мощными серверами, огромными объемами данных и специалистами, владеющими специальными языками программирования — SQL. Но представьте, что вы разработчик приложений, и вам понадобилась небольшая, но простая, автономная и быстрая СУБД, например, для мобильника? Или же для какого-то иного интеллектуального устройства, которые всё больше входят в нашу повседневную жизнь? Было бы странно устанавливать туда какого-то монстра, который будет весить больше, чем само приложение!

До создания ObjectBox Вивьен Доллинджер и ее компаньон Маркус Юнгингер занимались разработкой мобильных приложений. В процессе работы они столкнулись со сложной задачей: найти СУБД для своих программ — быстродействующую, с высокой степенью надежности и простую в работе. Не найдя ни одной подобной, Маркус и Вивьен решили создать собственную.

Как это ни парадоксально, но основные проблемы, связанные с реляционными базами данных, вытекают из их основных преимуществ. Например, строгое следование правилам ACID неизбежно приводит к падению производительности системы, а в случае попытки масштабирования СУБД на несколько вычислительных систем, как это делается в облачных вычислениях, приводит к тому, что одновременное предоставление доступности и согласованности оказывается невозможным.

С другой стороны, задачи обработки больших данных не требуют столь жесткого подхода и вполне готовы мириться с некоторой прогнозируемой степенью неопределенности. Также чрезвычайно замедляет работу и накладывает ограничения на тип хранимых объектов и сама слишком умная и гибкая модель SQL — современные задачи такие возможности полностью никогда не используют, ограничиваясь более простыми алгоритмами обработки и хранения.

Команда ObjectBox

Образно SQL и NoSQL базы можно сравнить с перекрестками со светофором и с круговым движением. В первом случае движение более упорядочено, риск аварий минимален, но ресурсы используются неэффективно, например, водители будут ожидать разрешения двигаться даже при пустой пересекающей дороге, в другом случае пропускная способность гораздо выше, но требует от водителей повышенного внимания и навыков.

«Где-то до 2009 года мы работали с СУБД, использующими SQL. Рост объемов информации и типов сохраняемых данных потребовал разработки БД с новым подходом к реализации функций. Классические реляционные базы данных стали демонстрировать низкую производительность, зависать от большого количества запросов, и, что в принципе недопустимо, терять часть данных, — рассказывает Вивьен. — Мы проанализировали существующие на рынке продукты и пришли к выводу, что ни один из них не удовлетворяет наших потребностей. Нам требовалась быстрая и безотказная обработка запросов. В итоге мы решили создать свой, соответствующий духу эпохи продукт».


Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

ACID (Atomicity, Consistency, Isolation, Durability) — принципы работы транзакционных систем, таких как СУБД: атомарность (гарантия полноты транзакци), согласованность (гарантия фиксации только допустимых результатов), изолированность (параллельность транзакций не оказывает влияния на результат) и долговечность (все завершенные транзакции должны оставаться неизменными при любых сбоях).

SQL — «язык структурированных запросов» — язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.

Реляционная база данных — СУБД, управляющая реляционными данными, то есть построенными на математическом понятии «отношение». Наиболее простое образное представление отношений записей в реляционной базе — таблица.


«Наша команда изначально состояла из нас двоих — меня и Маркуса. Пришлось прикладывать титанические усилия, чтобы всюду успевать и реализовывать задуманное. Мы пробовали использовать ORM, который располагался поверх SQLite, а затем пошли ва-банк и создали полностью с нуля NoSQL-СУБД ObjectBox. Оглядываясь назад, осознаю — оно того стоило! Создание абсолютно новой СУБД было похоже на прыжок в воду с обрыва — относительное спокойствие до и сумасшедшая по интенсивности работа после, — вспоминает Вивьен. — Спустя 20 дней после принятия решения и множества экспериментов с кодом мы решили привлечь еще людей и создать команду, в которой Маркус занял место технического директора, а я взяла на себя руководство проектом — выбирала и корректировала общий курс, направляла всех членов команды».


Маркус Юнгингер — создатель EventBus (система рассылки оповещений для Android и Java) и greenDAO (компактная и быстрая ORM для Android под SQLite), в настоящее время технический директор и соучредитель ObjectBox. Свыше 20 лет занимается программированием и считается одним из лучших разработчиков GitHub, крупнейшего в мире сообщества разработчиков программного обеспечения.

ORM (Object-Relational Mapping, рус. объектно-реляционное отображение, или преобразование) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».

SQLite — компактная встраиваемая (бессерверная) СУБД.


Сейчас в команде ObjectBox работают девять человек. Четверо из них работают под руководством Вивьен в бизнес-сегменте, преимущественно в Лондоне. А пятеро — в разработке софта с Маркусом. Изначально вся команда базировалась в Берлине. Но ObjectBox — продукт, позволяющий работать с ним удаленно, так что теперь часть группы программистов рассеяна по Европе и работает из дома.

Как это устроено внутри

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

«Перед нами стояла задача выполнять граничные вычисления с использованием СУБД и синхронизировать IoT с мобильными устройствами. ObjectBox должен был представлять собой уникальную комбинацию NoSQL и объектно-ориентированного программирования, предоставляя первое высокопроизводительное NoSQL-решение объектно-ориентированной встроенной базы данных для небольших устройств», — рассказывает Вивьен.

Команда ObjectBox

Для разработки БД Маркус предложил платформу Android, спроектировал всё так, чтобы для работы с ObjectBox можно было использовать любой из пяти языков программирования — Java, Kotlin, Go, Swift или C. Такая политика была выбрана для расширения круга разработчиков, выбирающих БД от компании ObjectBox как основу для своих приложений.

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

«Он полностью отвечал нашим запросам, так что сомнений не возникло. ObjectBox задумывался нами как БД для разработки не только мобильных приложений, но и интернета вещей», — говорит Вивьен.


Граничные вычисления — технология, подразумевающая обработку данных непосредственно на IoT-устройствах.

NoSQL — термин, обозначающий ряд подходов к реализации СУБД, имеющих диаметральные отличия от моделей с доступом к данным средствами языка SQL.

IoT (интернет вещей) — взаимодействие гаджетов и иных электронных устройств с внешним окружением, в том числе и между собой.


Как и в случае человеческого общества, объекты, хранимые в СУБД, также как-либо взаимосвязаны друг с другом. Такие взаимосвязи принято называть отношениями, и их описание зачастую весит больше, чем сам объект. При работе СУБД смотрит (обращается) не только к самим объектам, но также и к тому, как они взаимосвязаны друг с другом, то есть к их отношениям. Представьте, что вы в браузере смотрите не только текущую страницу, но и все страницы, на которые она ссылается — это будет наиболее наглядным, хотя и упрощенным примером отношений в СУБД. Или представьте формулу, в которой цифры и переменные — это объекты, а математические знаки — отношения между ними. Основную задачу, скорость работы, удалось решить за счет использования опережающей загрузки отношений.

Общая проблема с отношениями в том, что обычно они загружаются по стратегии lazy (с англ. «лениво» — «Хайтек»), то есть по факту обращения к ним. Это приводит к задержкам при первом обращении к отношению, поскольку данные должны быть извлечены из хранящейся на относительно медленном по сравнению с оперативной памятью носителе базы данных.

ObjectBox решает эту проблему использованием «нетерпеливого» режима (eager strategy), позволяя запросам предварительно загружать отношения в фоновом режиме. Это делает потоковую обработку запросов очень быстрой. Как только запрос обработан, предварительно загруженные отношения избавляют СУБД от необходимости частого обращения к базе данных. Кроме того, для еще большего ускорения обработки для каждого запроса вы можете указать, какие именно отношения необходимо предварительно загрузить в зависимости от типа объекта или других параметров.

Децентрализация и доступность частных данных

Вторая задача, которая стояла перед командой ObjectBox, напрямую свяазана с областью применения СУБД — в IoT, IIoT, мобильных устройствах и гаджетах. Так как все их отличают достаточно небольшая мощность и ограниченный объем памяти, то и размер самой СУБД, и ее ресурсные аппетиты должны быть как можно меньше. Жесткая оптимизация кода позволила сделать размер приложения с СУБД менее 1 МБ.

«При презентации своих разработок потенциальным клиентам мы всегда учитываем их требования и задачи, которые должны быть реализованы с помощью наших продуктов. Изначально мы работали только над решением собственных задач в создании приложений, позже поняли — похожие проблемы волнуют многих в нашей сфере», — констатирует Вивьен.

СУБД ObjectBox придерживается принципа разумной децентрализации, когда часть обработки данных смещается из облака в периферию, в IoT, освобождая тем самым ресурсы облака, но само хранение остается централизованным. Команда ObjectBox считает, что сохранение данных в облачных хранилищах и синхронизация устройств между собой позволяют максимально отойти от граничных вычислений. Это позволит не загонять разработки ИТ в глухой угол, а дальше совершенствовать их.

Надежность, простота и скорость

Несмотря на различные подходы к реализации, производительность СУБД можно сравнить в одинаковых условиях на одинаковых типах данных. На приведенных графиках, полученных при помощи теста с открытым исходным кодом, показана сравнительная скорость в миллисекундах СУБД ObjectBox, Realm и Room на стандартных операциях — доступ, обновление, вставка и удаление.

Отдельное приложение ObjectBox Sync выполняет сразу несколько функций:

  • через интернет обеспечивает синхронизацию имеющихся на устройстве данных c другими устройствами или облаком;
  • в зависимости от заданных настроек определяет объем передаваемых данных и периодичность синхронизации, тем самым снижая затраты на облачные вычисления;
  • позволяет гибко настраивать устройство в ручном или автоматическом режиме через интерфейс с настройками, командную строку, файлы с настройками или API;
  • обеспечивает безопасность собранных и передаваемых устройством данных, так как без подключения к сети никакая информация не передается.

Таким образом, разработчики могут:

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

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

Rеalm, Room — СУБД.


Участие в конкурсах — дорога к инвестициям

«Долгие годы компания была частной. Нас, владельцев, не устраивали ее темпы роста, и вполне логичным шагом стал поиск внешнего финансирования. В 2017 году мы подали заявку и успешно приняли участие в Techstars London 2017 — одной из крупнейших программ-акселераторов для стартапов. Весной 2018 года известные всему миру инвестиционные компании Vito Ventures и Cavalry Ventures предоставили ObjectBox $2 млн в качестве первых вложений, — делится Вивьен. — Я и сейчас бесконечно благодарна им за веру в наш проект».


Techstars — бизнес-акселератор, основанный в США в 2006 году. По состоянию на 2019 год фонд Techstars оказал поддержку более 1 600 компаний с общей рыночной капитализацией в $18,2 млрд. Критерии отбора очень жесткие — менее 1% заявителей принимаются в программу. Имеет разветвленную международную сеть, поддерживаемую государствами. Например, Techstars London предлагает участнику программы получение предпринимательской визы Tier 1 (Entrepreneur) Visa и право официально работать в Великобритании на протяжении трех лет. В случае, если компания после трех лет существования создает десять и больше рабочих мест, то участники стартапа и их семьи имеют право претендовать на получение постоянного жительства в Великобритании.


«Весной 2018 года известные всему миру инвестиционные компании Vito Ventures и Cavalry Ventures предоставили ObjectBox $2 млн в качестве первых вложений, — рассказывает Вивьен. — Я и сейчас бесконечно благодарна им за веру в наш проект.

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

Крупный пилотный проект для железных дорог

«Наш последний проект в области IoT стал пилотным проектом совместно с Kapsch в железнодорожной отрасли», — говорит Вивьен. Kapsch является давним партнером железнодорожных операторов и помогает отрасли переходить в цифровую эпоху. Проблема заключалась в том, что железнодорожным операторам постоянно не хватает данных о происходящем на путях, в тоннелях и в поездах.


Kapsch — австрийская корпоративная группа с 5 000 сотрудников по всему миру, работающая в области телематики, ИТ и телекоммуникаций. Основана в 1892 году.


Интегрируя СУБД ObjectBox в продукт Kapsch для железных дорог, он смог обеспечить превосходную скорость и непрерывность передачи данных для своих клиентов. Это означает, что критические данные доступны по мере необходимости и обрабатываются в СУБД в режиме реального времени. В кроссплатформенном решении Kapsch используются критически важные данные, позволяющие избежать дорогостоящих простоев и ремонтов, а также сократить время и задержки обслуживания.

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

Ближайшие перспективы

По разным экспертным оценкам ожидается, что уже к 2020 году в мире будет от 21 (Gartner) до 200 (Intel) млрд умных сенсоров и других IoT-устройств, которые будут генерировать по меньшей мере 507,5 ЗБ (зеттабайт) данных. С точки зрения аналитиков, также ожидается многократный рост компаний, специализирующихся на хранении и обработке данных для IoT. Но рынок IoT также нельзя назвать однородным. Уже сейчас эксперты выделяют на нем отдельное направление — IIoT, или промышленный интернет вещей, когда любая производственная единица является обладателем собственного «интеллекта».

Ключевыми рынками для ObjectBox являются IoT и Mobile. На рынке IoT основное внимание компания уделяет Industry 4.0 (IIoT), умным автомобилям и городам.

«Мы планируем заинтересовать таких крупных клиентов, как IoT-маркеты, производителей умных автомобилей и платформы умных городов. Наши основные конкурентные преимущества — высокая скорость, небольшой размер и разумная ценовая политика. Но это не значит, что мы невнимательны к нуждам каждого индивидуального клиента. Мы рады каждому новому разработчику, присоединившемуся к нам», — говорит Вивьен.

Хотя проект был запущен всего несколько лет назад, ObjectBox уже сейчас пользуется доверием более 150 тыс. разработчиков, которые создали более 20 тыс. уникальных приложений. Это число включает в себя только приложения с количеством установок свыше 20 млн.

Подписывайтесь
на наши каналы в Telegram

«Хайтек»новостионлайн

«Хайтек»Dailyновости 3 раза в день

Первая полоса
Физики придумали, как раскрыть тайну темной материи
Космос
Ученые рассказали, как экстремальный холод влияет на сон
Наука
Марсианский метеорит раскрыл тайны воды на Красной планете
Космос
Хакеры удаленно взломали компьютер, используя соседний Wi-Fi
Новости
«Уэбб» заснял три огромные «невозможные» галактики
Космос
Телескоп запечатлел столкновение галактик на скорости 3,2 млн км/ч
Космос
Укус вместо укола: создана вакцина от малярии, распространяемая комарами
Наука
Физики определили форму отдельного фотона
Наука
Создатели ChatGPT планируют выпустить собственный браузер
Новости
Плотность промышленных роботов в мире удвоилась за семь лет
Новости
В Гибралтаре нашли «фабрику», на которой неандертальцы варили клей
Наука
Nvidia раскрыла, какие товары компании будут в дефиците и когда
Новости
Посмотрите на первое в истории фото звезды из другой галактики
Космос
Чрезвычайно молодую планету нашли у звезды с «кривым» диском
Космос
Предложен способ навигации дронов без GPS: по «отпечаткам рельефа»
Новости
Ученые раскрыли тайну гигантских черных дыр ранней Вселенной
Космос
Microsoft и Atom Computing выпустят коммерческий квантовый компьютер в 2025 году
Новости
Создан робот-голубь, который летает как настоящая птица
Наука
На страницах тысячелетнего Голубого Корана нашли скрытый текст
Наука
Уязвимость ИИ: типы атак LLM-injection и способы защиты от них
Технологии