gototop
Без флеша

КУРС: Celesta

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

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

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

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

Celesta. Wikipedia. Public domain image.

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

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

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

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

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

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