После нашей первой статьи о том, как из Orienteer и docker сделать BaaS, мы обещали рассказать, что такое Orienteer, кому и как он может быть полезен. А тут еще и повод есть хороший: мы зарелизили версию 1.2 нашей платформы.
Версия 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.
Автор: Orienteer