- PVSM.RU - https://www.pvsm.ru -

Orienteer: обзор платформы и обновлений последнего релиза

После нашей первой статьи о том, как из Orienteer и docker сделать BaaS [1], мы обещали рассказать, что такое Orienteer, кому и как он может быть полезен. А тут еще и повод есть хороший: мы зарелизили версию 1.2 нашей платформы [2].

Версия 1.2 полностью поддерживает установку с помощью docker-образов, есть интеграция с процессным движком Camunda BPM, встроен интеграционный фреймворк Apache Camel, с помощью удалённого логирования ошибок стало проще получать диагностическую информацию о состоянии системы и многое другое.

Orienteer: обзор платформы и обновлений последнего релиза - 1

Итак, обо всём этом коротко и по порядку под катом. Но краткость не всегда полезна, так что, дорогой читатель, есть одна просьба. Если мы были излишне кратки, а вы хотите узнать о чем-то более подробно — пишите в комментариях!

Ах, да — в статье вы найдете маленький подарок читателям Хабрахабр.

Краткое введение в Orienteer

Orienteer — это платформа с открытым исходным кодом для быстрого создания бизнес-приложений.

Нужно что-то из списка ниже? Или же задумываетесь насчет чего-то специфичного для вашего бизнеса? Вы основатель стартапа и нуждаетесь в быстром прототипировании? Тогда вам может быть полезен Orienteer.

Orienteer: обзор платформы и обновлений последнего релиза - 2

Расшифровка

AMS — Association Management System
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 [3].
  • Сверху используется Google Guice для управления зависимостями и гибкой настройки. Почему именно был выбран Guice, а не всем известный Spring — тема отдельной статьи.
  • А в качестве Web фреймворка используется Apache Wicket: очень мощная библиотека, которая даёт 100% гибкость при минимальных системных требованиях.

Orienteer: обзор платформы и обновлений последнего релиза - 3

Подробнее читайте в нашей документации [4].

Конфигурирование предметной области

В основе любой информационной системы лежит некая предметная область, а сверху функционал, которых позволяет эффективно работать с объектами этой предметной области: создавать, управлять, анализировать, прогнозировать и т.д.

В большинстве информационных систем предметная область вшита в код, а ее модификация требует навыков кодирования и работы с базами данных. Но для систем претендующих на BaaS или RAD это является неприемлемым. Orienteer имеет встроенные конфигуратор предметной области, который сразу же позволяет менять все аспекты нижележащей базы OrientDB.

Выбор именно OrientDB в качестве базы данных нам очень сильно помог. Путь к выбору этой мультипарадигмной базы данных был тернист и долог: через MySQL, PostgreSQL, Oracle и даже попытки написать собственную БД. Об OrientDB хочется как-нибудь рассказать в отдельной статье.
Функционал конфигуратора схемы предметной области достаточно очевиден:

  1. Создание новых классов с поддержкой множественного наследования.
  2. Создание атрибутов классов нужного типа и задание для них способа визуализации.
  3. Задание взаимосвязей между классами
  4. Задание валидационных правил.
  5. Настройка триггеров и связанной бизнес-логики.
  6. Управление доступом.

Orienteer: обзор платформы и обновлений последнего релиза - 4

Управление бизнес процессами: BPM

Orienteer не был бы платформой для бизнес приложений, если бы умел только удобно хранить, искать и анализировать данные. Мы хотели, чтобы он еще помогал организовывать бизнес-процессы для нужных предметных областей. Именно поэтому главной задачей при разработке версии 1.2 стала интеграция с Camunda [5] — передовым open source решением по управлению бизнес-процессами (на рисунке ниже — интерфейс работы с Cаmunda через Orienteer).

Orienteer: обзор платформы и обновлений последнего релиза - 5

Camunda встроена в Orienteer таким образом, что вся необходимая предметная область, весь пользовательский интерфейс — всё сделано на Orienteer/OrientDB. Достаточно лишь подключить нужный модуль Orienteer-BPM [6].

Управление интеграциями

Уже давно вымирают системы, которые “сами в себе” и не имеют интеграции с внешними системами. Мир усложняется, связи в нем становятся хитрее. Поэтому возможность интеграций — это неотъемлемая часть любой платформы бизнес-приложений.

Orienteer: обзор платформы и обновлений последнего релиза - 6

В качестве основы для управления интеграциями мы взяли хорошо зарекомендовавший себя фреймворк Apache Camel [7]. Orienteer позволяет создавать конфигурации для Camel, запускать и мониторить интеграционные сессии. В будущем мы планируем сконцентрироваться на удобстве конфигурации, чтобы аналитикам не приходилось учить птичий язык XML и его применение для настройки Apache Camel.

Удаленное логирование

Без мониторинга приложений весьма трудно обнаружить, когда что-то где-то идет не так. Модуль orienteer-logger позволяет централизованно следить за возникающими проблемами, находить корреляции и управлять инцидентами. Аналог Google Developer Console или Localytics [8].

Orienteer: обзор платформы и обновлений последнего релиза - 7

Кстати, наш клиентский код для репорта инцидентов [9] написан на чистом Java и может быть использован в любом java-приложении, например, под Android.

Анализ данных, визуализация и пивотинг

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

Orienteer: обзор платформы и обновлений последнего релиза - 8

Также еще с версии 1.1 у нас есть HTML/JS widget, который, как JSFiddle [10], позволяет задать HTML, внешние библиотеки и JavaScript — для нужной вам визуализации. Доступ к самим данным обеспечивается через Orienteer [11]/OrientDB [12] REST-интерфейс.

Пример визуализации

Orienteer: обзор платформы и обновлений последнего релиза - 9

Поддержка docker

Docker — потрясающая технология для доставки и развертывания практически любого приложения. Docker-образ для развертывания Orienteer можете всегда найти здесь [13].

Чтобы запустить Orienteer локально, достаточно выполнить команду:

docker run -p 8080:8080 orienteer/orienteer

Хотите, не устанавливая у себя docker, получить свою копию Orienteer в облаке за считанные секунды, но всего на 4 часа? :)

  1. Откройте http://play-with-docker.com/ [14] в новом окне.
  2. Подтвердите, что вы не робот.
  3. В панели слева нажмите Add new instance.
  4. Когда новый инстанс поднимется, выполните команду:
    docker run -p 80:8080 orienteer/orienteer

  5. Справа от IP-адреса вы увидите ссылку на запущенный Orienteer.

Orienteer: обзор платформы и обновлений последнего релиза - 10

Хотите свой Orienteer в облаке навсегда? Тогда это обещанный нами подарок: напишите в личку, для чего вы хотели бы задействовать Orienteer. И если вы в числе первых 10, вы получите его бесплатно у нас в облаке.

P.S. Не только сам Ориентир поддерживает контейнеризацию Docker, но и любое производное приложение на основе нашего архетипа maven.

Генерация maven-проекта на основе Orienteer

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 [15]: через него вы получаете доступ к базе фильмов IMDB, которые, кстати, были загружены с помощью нашего модуля Orienteer для Apache Camel.

Скриншот беседы с ботом

Orienteer: обзор платформы и обновлений последнего релиза - 11

Планы на следующие версии

Самое интересное, что появится в версии 1.3 — это возможность подключить новые модули (плагины для Orienteer) без перекомпилирования и вообще без перезагрузки сервера приложений. Это позволит добавлять модули по мере их необходимости “на лету”: от маленьких до весьма весомых (>50Mb).

Также в версии 1.3 делаем [16] интеграцию [17] с Eclipse BIRT (Business Intelligence Reporting Tool). Это позволит создавать в редакторе BIRT красивые отчеты, а потом встраивать их как виджеты на нужные страницы бизнес-приложений.

А с последней идеей для 1.3 нам нужна ваша помощь. Веб-дизайнеры наверняка заметили, что мы используем всем надоевший SP Admin-дизайн. Хотим обрести своё уникальное лицо. Если вы готовы поработать над open source-проектом, то добро пожаловать в личку.

P.S. А если говорить о более отдаленном будущем, то планы еще более амбициозны:

  1. Orienteer SaaS — платформа для развертывания продаж вашего docker-упакованного приложения на вашей инфраструктуре или на инфраструктуре любого cloud provider’а.
  2. Open Source Orienteer CRM — CRM, которая использует широкие возможности конфигурации предметной области, для решения важного для многих вопроса: “Бизнес должен натягиваться на CRM или все-таки CRM на бизнес?”
  3. Интеграция с языком R: для более простого анализа данных и создания визуализаций.
  4. Свои модули для Orienteer можно создавать и сейчас, но мы хотим сделать процесс еще более простым и доступным широкому кругу, вплоть до аналитиков. Также рассматриваем возможность миграции модулей Odoo (и других BAP) на Orienteer.

Автор: Orienteer

Источник [18]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/open-source/250674

Ссылки в тексте:

[1] как из Orienteer и docker сделать BaaS: https://habrahabr.ru/company/orienteer/blog/312844/

[2] версию 1.2 нашей платформы: https://github.com/OrienteerBAP/Orienteer/releases/tag/v1.2

[3] OrientDB: http://orientdb.com/

[4] нашей документации: https://orienteer.gitbooks.io/orienteer/content/architecture.html

[5] Camunda: https://camunda.com/

[6] Orienteer-BPM: https://github.com/OrienteerBAP/Orienteer/tree/master/orienteer-bpm

[7] Apache Camel: http://camel.apache.org/

[8] Localytics: https://www.localytics.com/

[9] клиентский код для репорта инцидентов: https://github.com/OrienteerBAP/orienteer-logger

[10] JSFiddle: https://jsfiddle.net/

[11] Orienteer: https://orienteer.gitbooks.io/orienteer/content/resthttp_api.html

[12] OrientDB: http://orientdb.com/docs/2.1.x/OrientDB-REST.html

[13] здесь: https://hub.docker.com/r/orienteer/orienteer/

[14] http://play-with-docker.com/: http://play-with-docker.com/

[15] @otelebot: https://telegram.me/otelebot

[16] делаем: https://github.com/OrienteerBAP/Orienteer/tree/master/orienteer-birt

[17] интеграцию: https://github.com/OrienteerBAP/orientdb-oda-birt

[18] Источник: https://habrahabr.ru/post/324758/