Версия 1.2 полностью поддерживает установку с помощью docker-образов, есть интеграция с процессным движком Camunda BPM, встроен интеграционный фреймворк Apache Camel, с помощью удалённого логирования ошибок стало проще получать диагностическую информацию о состоянии системы и многое другое.
Итак, обо всём этом коротко и по порядку под катом. Но краткость не всегда полезна, так что, дорогой читатель, есть одна просьба. Если мы были излишне кратки, а вы хотите узнать о чем-то более подробно — пишите в комментариях!
Ах, да — в статье вы найдете маленький подарок читателям Хабрахабр.
Краткое введение в Orienteer
Orienteer — это платформа с открытым исходным кодом для быстрого создания бизнес-приложений.
Нужно что-то из списка ниже? Или же задумываетесь насчет чего-то специфичного для вашего бизнеса? Вы основатель стартапа и нуждаетесь в быстром прототипировании? Тогда вам может быть полезен Orienteer.
ATS — Applicant Tracking System
BPM — Business Process Management
BaaS — Backend as a Service
CMS — Content Management System
CRM — Customer Relationship Management
DW — Data Warehouse
EAI — Enterprise Application Integration
ERP — Enterprise Resource Planning
IoT — Internet of Things
LMS — Learning Management System
MAP — Marketing Automation Platform
PIM — Product information Management
RAD — Rapid Application Development
TMS — Training Management System
Главная особенность Orienteer — баланс между конфигурируемостью необходимого функционала через UI и через код. В большинстве случаев достаточно пользовательского интерфейса, чтобы сделать желаемое. Но если нужно что-то специфическое, это всегда можно сделать через код: серверный или клиентский (Angular JS, React, JQuery, etc.)
Архитектура
- В основе всего лежит мультипарадигмная NoSQL база данных OrientDB.
- Сверху используется Google Guice для управления зависимостями и гибкой настройки. Почему именно был выбран Guice, а не всем известный Spring — тема отдельной статьи.
- А в качестве Web фреймворка используется Apache Wicket: очень мощная библиотека, которая даёт 100% гибкость при минимальных системных требованиях.
Подробнее читайте в нашей документации.
Конфигурирование предметной области
В основе любой информационной системы лежит некая предметная область, а сверху функционал, которых позволяет эффективно работать с объектами этой предметной области: создавать, управлять, анализировать, прогнозировать и т.д.
В большинстве информационных систем предметная область вшита в код, а ее модификация требует навыков кодирования и работы с базами данных. Но для систем претендующих на BaaS или RAD это является неприемлемым. Orienteer имеет встроенные конфигуратор предметной области, который сразу же позволяет менять все аспекты нижележащей базы OrientDB.
Выбор именно OrientDB в качестве базы данных нам очень сильно помог. Путь к выбору этой мультипарадигмной базы данных был тернист и долог: через MySQL, PostgreSQL, Oracle и даже попытки написать собственную БД. Об OrientDB хочется как-нибудь рассказать в отдельной статье.
Функционал конфигуратора схемы предметной области достаточно очевиден:
- Создание новых классов с поддержкой множественного наследования.
- Создание атрибутов классов нужного типа и задание для них способа визуализации.
- Задание взаимосвязей между классами
- Задание валидационных правил.
- Настройка триггеров и связанной бизнес-логики.
- Управление доступом.
Управление бизнес процессами: BPM
Orienteer не был бы платформой для бизнес приложений, если бы умел только удобно хранить, искать и анализировать данные. Мы хотели, чтобы он еще помогал организовывать бизнес-процессы для нужных предметных областей. Именно поэтому главной задачей при разработке версии 1.2 стала интеграция с Camunda — передовым open source решением по управлению бизнес-процессами (на рисунке ниже — интерфейс работы с Cаmunda через Orienteer).
Camunda встроена в Orienteer таким образом, что вся необходимая предметная область, весь пользовательский интерфейс — всё сделано на Orienteer/OrientDB. Достаточно лишь подключить нужный модуль Orienteer-BPM.
Управление интеграциями
Уже давно вымирают системы, которые “сами в себе” и не имеют интеграции с внешними системами. Мир усложняется, связи в нем становятся хитрее. Поэтому возможность интеграций — это неотъемлемая часть любой платформы бизнес-приложений.
В качестве основы для управления интеграциями мы взяли хорошо зарекомендовавший себя фреймворк Apache Camel. Orienteer позволяет создавать конфигурации для Camel, запускать и мониторить интеграционные сессии. В будущем мы планируем сконцентрироваться на удобстве конфигурации, чтобы аналитикам не приходилось учить птичий язык XML и его применение для настройки Apache Camel.
Удаленное логирование
Без мониторинга приложений весьма трудно обнаружить, когда что-то где-то идет не так. Модуль orienteer-logger позволяет централизованно следить за возникающими проблемами, находить корреляции и управлять инцидентами. Аналог Google Developer Console или Localytics.
Кстати, наш клиентский код для репорта инцидентов написан на чистом Java и может быть использован в любом java-приложении, например, под Android.
Анализ данных, визуализация и пивотинг
В наше время без анализа данных уже никуда, и мы это отлично понимаем. Модуль orienteer-pivot позволяет быстро проанализировать и отобразить данные и, если надо, сохранить созданную визуализацию в виде графика или сводной таблицы.
Также еще с версии 1.1 у нас есть HTML/JS widget, который, как JSFiddle, позволяет задать HTML, внешние библиотеки и JavaScript — для нужной вам визуализации. Доступ к самим данным обеспечивается через Orienteer/OrientDB REST-интерфейс.
Поддержка docker
Docker — потрясающая технология для доставки и развертывания практически любого приложения. Docker-образ для развертывания Orienteer можете всегда найти здесь.
Чтобы запустить Orienteer локально, достаточно выполнить команду:
docker run -p 8080:8080 orienteer/orienteer
Хотите, не устанавливая у себя docker, получить свою копию Orienteer в облаке за считанные секунды, но всего на 4 часа? :)
- Откройте http://play-with-docker.com/ в новом окне.
- Подтвердите, что вы не робот.
- В панели слева нажмите Add new instance.
- Когда новый инстанс поднимется, выполните команду:
docker run -p 80:8080 orienteer/orienteer
- Справа от IP-адреса вы увидите ссылку на запущенный Orienteer.
Хотите свой Orienteer в облаке навсегда? Тогда это обещанный нами подарок: напишите в личку, для чего вы хотели бы задействовать Orienteer. И если вы в числе первых 10, вы получите его бесплатно у нас в облаке.
P.S. Не только сам Ориентир поддерживает контейнеризацию Docker, но и любое производное приложение на основе нашего архетипа maven.
mvn archetype:generate -DarchetypeGroupId=org.orienteer -DarchetypeArtifactId=orienteer-archetype-war -DarchetypeVersion=1.3-SNAPSHOT -DgroupId=com.mycompany -DartifactId=myproject -DarchetypeRepository=https://oss.sonatype.org/content/repositories/snapshots/ -DinteractiveMode=false
Доступ к данным через Телеграмм
Телеграмм вырос из просто мессенджера. Для многих это уже источник новостей, информации и хорошего настроения. В нем есть уйма полезных ботов. Вот и мы создали модуль для Orienteer, который, действуя как фабрика ботов, позволяет организовать доступ пользователей к вашим данным через Телеграмм. Попробуйте пообщаться с @otelebot: через него вы получаете доступ к базе фильмов IMDB, которые, кстати, были загружены с помощью нашего модуля Orienteer для Apache Camel.
Планы на следующие версии
Самое интересное, что появится в версии 1.3 — это возможность подключить новые модули (плагины для Orienteer) без перекомпилирования и вообще без перезагрузки сервера приложений. Это позволит добавлять модули по мере их необходимости “на лету”: от маленьких до весьма весомых (>50Mb).
Также в версии 1.3 делаем интеграцию с Eclipse BIRT (Business Intelligence Reporting Tool). Это позволит создавать в редакторе BIRT красивые отчеты, а потом встраивать их как виджеты на нужные страницы бизнес-приложений.
А с последней идеей для 1.3 нам нужна ваша помощь. Веб-дизайнеры наверняка заметили, что мы используем всем надоевший SP Admin-дизайн. Хотим обрести своё уникальное лицо. Если вы готовы поработать над open source-проектом, то добро пожаловать в личку.
P.S. А если говорить о более отдаленном будущем, то планы еще более амбициозны:
- Orienteer SaaS — платформа для развертывания продаж вашего docker-упакованного приложения на вашей инфраструктуре или на инфраструктуре любого cloud provider’а.
- Open Source Orienteer CRM — CRM, которая использует широкие возможности конфигурации предметной области, для решения важного для многих вопроса: “Бизнес должен натягиваться на CRM или все-таки CRM на бизнес?”
- Интеграция с языком R: для более простого анализа данных и создания визуализаций.
- Свои модули для Orienteer можно создавать и сейчас, но мы хотим сделать процесс еще более простым и доступным широкому кругу, вплоть до аналитиков. Также рассматриваем возможность миграции модулей Odoo (и других BAP) на Orienteer.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (10)
rail-ka
24.03.2017 15:31+2Спасибо, ждем статью про OrientDB. Не рассматривали также базу данных ArangoDB?
OrienteerBAP
24.03.2017 15:35Напишем. Рассматривали и ArangoDB и Titan и Neo4J и некоторые другие, но по нужным фичам подходит только OrientDB. ArangoDB, кстати, если посмотреть в исторической перспективе, слизывает фичи и даже маркетинговое позицонирование с OrientDB. А это как-то не сильно приятно…
bagrintsev
24.03.2017 18:22Интересно, очень интересно. Можно узнать, для чего конкретно можно применить данную систему?
Ну для не самых продвинутых если.OrienteerBAP
24.03.2017 18:31+11) Быстрое прототипирование идей для стартапа. Есть идея? Моделируете предметную форму — задаете бизнес правила, добавляете фронтэнд (если надо) — и все — уже готовы с прототипом идти и тестировать идею.
2) Серверная часть для всяких DIY проектов. Например, вот здесь товарищ использовал Orienteer для хранения данных от погодной станции: https://habrahabr.ru/post/319746/
3) Информационная система для бизнеса: далеко не все можно покрыть существующими CRM и другими решениями. В областях где нужно уметь быстро переконфигурировать (или доконфигурировать) предметную область.
4) Всякие переферийные решения: как например продажа маркетинговых данных через Телеграмм или централизованный логер инцидентов на собственной инфраструктуре для мобильных приложений.
Хочу отдельно подчеркнуть, что Orienteer это одновременно и коробочный продукт и облачный. Пользователь вовсе не привязывается к облаку — он может все хранить у себя, либо наоборот — перенести все в облако.
Diaskhan
24.03.2017 18:48Есть такая платформа как Cuba Platform. Потенциальный конкурент
https://www.cuba-platform.ru/
Есть также Инновационна система которая называется
https://www.comindware.com/ru/platform/
Вот там как раз таки используется Графовые Базы данных.
От себя стоить отметить, Я глубоко разочаровался когда понял что у RDMBS есть потолок производительности
https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=query
Графовые базы намного эффективнее работают, но для ENTERPRISE это пока еще слишком Дико.
SergeyUstinov
24.03.2017 19:35Потолок для реляционных баз НАМНОГО выше необходимой производительности для бизнес задач.
А вот у нереляционных баз есть большая проблема — с их помощью нельзя или тяжело получать разные показатели на основе сохраненных бизнес транзакций (перемещений товаров, платежей, фин проводок и т.п.).
Вот например абсолютно реальная задача:
«Нам надо расчитать среднее количество дней храния товара на складе в ГородХХХ за 2016 год.
Только материала ПоставщикУУУ.»
Сегодня письмо с запросом получил, стилистика автора полностью сохранена (заменил два слова))).
Как такие вещи считать в RDBMS с помощью SQL — понятно. А как в той же OrientDB — лично мне не очень понятно.
Поэтому мучают меня смутные сомнения — а пригодна ли в принципе OrientDB и Orienteer для реальных учетных задач?
OrienteerBAP
27.03.2017 06:07Про Cuba знаем — как и о еще ~20 платформах. А вот об Comindware не слышали пока — спасибо!
Rupper
26.03.2017 10:15А поясните пожалуйста, как из приведенной таблички вообще следует наличие потолка у реляционных баз? Это будет полезно для всех.
Пардон это ответ к предыдущему каменту
SergeyUstinov
А где можно найти пример с уже созданной моделью? Той же CRM, пусть в очень бета виде?
OrienteerBAP
Есть несколько примеров боевого использования. Напишите, пожалуйста, в личку какая модель и для чего необходима: скорее всего сможем помочь сконфигурировать из того, что уже имеем. Тот же CRM есть чуть в разных вариациях.