ENG

Перейти в Дзен
Технологии

Всего один мегабайт

Сегодня в мире очень много информации, и ее объем увеличивается буквально с каждым месяцем. Базы данных, в которых она хранится, занимают много места на серверах и от перегруженности могут зависать. Поэтому в последние годы назрела необходимость разработки маленьких баз данных, в которых бы помещалось много информации. В 2017 году англо-немецкая компания ObjectBox представила систему управления базами данных (СУБД) под названием ObjectBox на основе NoSQL, которая весит всего 1 Мб и предназначена для работы с большими объемами информации, подходит для смартфонов, планшетов, гаджетов и мини-компьютеров. Вивьен Доллинджер, глава компании и главный разработчик новой СУБД, рассказала о пути NoSQL-системы в мир.

Самостоятельная работа

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

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

Сейчас в компании работают 9 сотрудников: четверо — в бизнес-сегменте в Лондоне (непосредственный руководитель — Вивьен), пять — в разработке программ (руководит Маркус). Изначально все работали в Берлине, затем многие программисты перешли на удаленную работу.

Мегабайт, опережающая загрузка и централизация

Работая над новой системой, Вивьен и Маркус преследовали цели создать для нее короткий простой код, сделать ее кроссплатформенной (обеспечить возможность переноса СУБД на разные платформы) и позволить запускать в одно и то же время тестирование и работу. Также целью разработчиков было создать встроенную БД для мобильных устройств и обеспечить синхронизацию с ними IoT. Для этого СУБД разрабатывалась на платформе Android, а основным языком был выбран C++, который используется для разработки мобильных приложений, операционных систем.

«Нам больше всего подошел C++, потому что мы собирались создать базу данных специально для мобильных приложений и интернета вещей», — объясняет Вивьен.

При создании ObjectBox Маркус так переработал платформу, чтобы при работе с новой базой данных можно было использовать, помимо C++, Java, Kotlin, Go, Swift, C. Это было сделано для того, чтобы больше разработчиков создавали приложения именно с использованием этой СУБД. Код системы сделали открытым.

Чтобы новая СУБД работала скорее аналогов, в ней сделали опережающую загрузку отношений (взаимосвязей объектов, которые хранятся в СУБД): при запросах отношения загружаются как фон, в результате быстро обрабатываются запросы. Благодаря фоновой загрузке СУБД не нужно часто обращаться к базе данных.

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

Немного истории

Разработки начались в 2011 году. Первой попыткой создать новую СУБД был проект greenDAO на ORM. Это была достаточно быстрая библиотека с открытым исходным кодом, весила меньше 100 КБ, но оказалась не настолько гибкой и быстрой, как надо было Вивьен и Маркусу, поэтому проект закрыли.

В январе 2017 года была создана бета-версия нового проекта ObjectBox, поддерживающая язык Java, о чем было заявлено в блоге на сайте компании, на GitHub и других IT-ресурсах. Весной и летом СУБД дорабатывали до поддержки нескольких языков одновременно. В сентябре вышла версия 1.0, в которой была предварительная загрузка отношений. В октябре был создан браузер данных для просмотра объектов в базах данных ObjectBox. Новый браузер данных фактически работает в браузере, так как является встроенным веб-приложением. Также в этой версии была обеспечена возможность запускать ObjectBox на ОС Windows и Linux на Java.

В январе 2018 года вышел релиз версии 1.4, в котором на 50% был уменьшен размер кода и реализована возможность запрашивать индивидуальные свойства объектов. В июле вышла версия 2.0, в которой встроенные базы данных стали более простыми в использовании и быстрыми. В конце года появились варианты C API, которые позволяли запускать СУБД на IoT-устройствах и мини-компьютерах Rapsberry Pi.

В январе 2019 года была реализована поддержка ObjectBox для Microsoft Azure Sphere, благодаря чему СУБД стала качественнее поддерживать IoT. К апрелю размер ObjectBox уменьшили до 1 Мб. В мае появилась возможность работать с СУБД на Python. В сентябре СУБД ObjectBox была прикреплена к Swift. В ноябре вышла стабильная версия для EdgeX, и СУБД стала стабильно работать с IoT, появилась возможность производить высокоскоростные операции с базами данных. В конце года была анонсирована реализация ObjectBox под язык Dart от Google для разработки под Android и iOS.

Сейчас ObjectBox в 10 раз быстрее аналогов, поддерживает ОС Linux, Windows, Mac/iOS, Android, Raspbian, работает в автономном режиме независимо от интернета. Технология этой СУБД предлагает решения для умных мобильных решений, автомобильной умной электроники, промышленного интернета вещей, умных устройств в энергетике, сервисов ретейла и игровой индустрии.

Выход в свет

«Поначалу мы вкладывали в компанию собственные средства, поэтому она росла медленно, — рассказывает Вивьен Доллинджер. — В результате мы стали искать инвесторов. Летом 2017 года мы решили участвовать в Techstars London — 2017 — крупной программе поддержки стартапов. Нашу заявку одобрили, и мы переехали в Лондон. Через год в нашу компанию вложили $2 млн Vito Ventures и Cavalry Ventures».

Чтобы находить клиентов, создатели ObjectBox ведут блог на сайте, сообщества в Twitter, Facebook, Instagram, участвуют в конференциях: Huawei Eco Connect — 2018, Slush — 2018, Building IoT — 2019, Internet of Things Conference (IoTCon) — 2019, Edge Europe — 2020 и многих других.

Сейчас с новой СУБД работают около 150 тысяч IT-специалистов, на ее основе создано около 20 тысяч приложений. Яркий пример — проект IoT для железных дорог совместно с австрийской компанией Kapsch: новый продукт обеспечивает непрерывную и быструю передачу данных для железнодорожных диспетчеров. Руководство ObjectBox старается продвигать свою СУБД среди компаний, работающих с мобильными устройствами и интернетом вещей.

«Мы стараемся в первую очередь заинтересовать маркеты, продающие умные устройства; компании, создающие умные автомобилей и платформы для умного города, — рассказывает Вивьен Доллинджер. — При этом мы рады любому разработчику, использующему нашу СУБД, чем бы он ни занимался».

Автор: Кристина Фирсова

Следите за нашими новостями в удобном формате
Перейти в Дзен

Предыдущая статьяСледующая статья