Celesta

Материал из Course Orchestra
Перейти к: навигация, поиск

1. Справочник Celesta

1.1 Введение и основные понятия
1.2 Запуск и авто-обновление
1.3 Базовая настройка
1.4 Системные таблицы
1.5 CelestaSQL
1.6 CelestaDoc
1.7 Контексты сессии и вызова
1.8 Курсоры
1.9 BLOB-поля
1.10 Option-поля
1.11 Защита от потерянных обновлений
1.12 Метаданные Celesta
1.13 CelestaUnit

2. Celesta и базы данных

2.1 Особенности работы Celesta с поддерживаемыми типами СУБД
2.2 Проектирование базы данных Celesta в DBSchema

3. Создание решений с использованием Celesta для ShowCase

3.1 Программа обучения Celesta
3.2 Подготовка рабочего места для работы с Celesta
3.2.1 Для разработчиков платформы
3.2.2 Для разработчиков решений
3.3 Системные гранулы Celesta
3.3.1 common
3.3.1.1 Экспорт/импорт данных
3.3.1.2 Навигатор
3.3.1.3 Серии номеров
3.3.1.4 Иерархия Дьюи
3.3.1.5 Системные функции
3.3.1.6 Реестр настроек
3.3.1.7 Mailsender
3.3.1.8 Common.filter
3.3.2 common.api
3.3.4 security
3.3.3 lyra
3.4 Стандартные гранулы Celesta
3.4.1 dirusing
3.4.2 workflow
3.4.3 File repository
3.5 Отрисовка элементов Showcase при помощи Celesta
3.5.1 Конвертер XML-JSON
3.5.2 Навигатор (Navigator)
3.5.3 Информационная панель (Datapanel)
3.5.4 Серверное действие (Server activity)
3.5.5 Вебтекст (WebText)
3.5.6 Грид (Grid)
3.5.6.1 Панель инструментов (ToolBar)
3.5.7 XForms
3.5.7.1 Селекторы
3.5.7.2 Submission
3.5.7.3 Загрузка/Выгрузка файлов (Upload/Download)

5. Решение проблем

5.1 Проблемы с кодировкой jython-файлов


Celesta (Челе́ста) — это платформа для быстрой разработки бизнес-приложений на языке Python, работающих на реляционных базах данных. Совместно с Showcase она позволяет разрабатывать приложения в веб-среде. Ускорение разработки достигается за счёт стандартного решения целого ряда рутинных задач, с которыми обычно сталкиваются разработчики бизнес-решений.

Какие технологии использует Celesta?

Само приложение написано на языке Java и, как следствие, может запускаться в любой операционной системе, поддерживающей версию Java 8 и выше. В Celesta встроен интерпретатор языка Jython (Java-реализации языка Python), на котором и осуществляется разработка бизнес-решений. Для описания структуры базы данных используется специальный язык CelestaSQL, который транслируется системой Celesta в нужный диалект SQL-языка. В настоящий момент Celesta поддерживает SQL Server, Oracle, PostgreSQL и H2.

Duke2-2.png

Каковы главные функциональные особенности Celesta?

  1. Независимость решений от операционной системы. Решение на Celesta будет работать под любой операционной системой, где есть Java 8.
  2. Независимость решений от типа СУБД. Практика показывает, что выбор типа СУБД, используемого в организации — зачастую не технологическое, а политическое решение. Например, заказчик может наотрез отказываться от использования других СУБД, требуя, чтобы решение работало, допустим, на Oracle, несмотря на то, что никаких технологических преимуществ использование именно Oracle заказчику не даёт. Celesta решает эту проблему кардинальным образом: за счёт использования универсального API доступа к данным (промежуточного слоя доступа к таблицам для написания бизнес-логики) решение, изначально созданное на одном типе СУБД (например, на MS SQL Server) свободно переносится на другой тип СУБД (например, Oracle) без переписывания кода.
  3. Облегчённая процедура апгрейда структуры СУБД при наличии рабочих данных. Практика разработки бизнес-решений такова, что постоянно приходится вносить изменения в структуру базы данных уже работающего решения, база которого наполнена рабочими данными. Платформа Celesta обладает продуманным механизмом переноса изменений из среды разработки и тестирования в рабочую среду, в большинстве случаев выполняя обновление структуры базы данных полностью автоматически.
  4. Модульность проектирования решений. В методику разработки решений для Celesta заложено деление решения на относительно независимые гранулы, комбинируемые относительно произвольным образом.
  5. Распределение прав доступа к таблицам средствами платформы. Настройка распределения прав доступа по пользовательским ролям — важнейшая первооснова любого бизнес-решения. В Celesta данная функциональность встроена в платформу.
  6. Запись всех изменений, производимых в таблицах, средствами платформы. Необходимость отслеживать полную историю изменения данных в той или иной таблице — задача, актуальная почти для всех бизнес-решений. Celesta избавляет от необходимости всякий раз реализовывать эту функциональность заново и позволяет решать эту задачу простой настройкой встроенного в платформу механизма логирования изменений.
  7. Аудит входов, выходов и неудачных входов в систему средствами платформы является частым обязательным требованием службы безопасности предприятий. Пользователи Celesta получают эту функциональность в готовом виде.

Чем Celesta отличается, например, от Django?

ORM-фреймворки типа Django, Hibernate и т. п. являются системами общего назначения, при помощи которых удобно создавать приложения в некотором завершённом виде по заранее спроектированному замыслу.

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

Поэтому в целом сравнивать Celesta с ORM-фрейворками не вполне корректно. Продукты, «вдохновившие» разработку Celesta — это платформа разработки ERP-системы Navision и продукт Rational ClearQuest. По сравнению с ними Celesta является более простым и «легковесным» продуктом, но сравнивать её функциональность следует именно с продуктами в этой категории.