Основные технические решения КУРС: Showcase

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

Создание решений на КУРС:Showcase

Приложение обеспечивает возможность создания пользовательского интерфейса для работы с данными, хранящимися в базах данных MS SQL Server, PostgreSQL и Oracle. Структура работы приложения показана на следующем рисунке.

Showcasedeployment.jpg

Приложение работает в среде любого контейнера сервлетов (Apache Tomcat, GlassFish и др.). Для аутентификации пользователей используется приложение Mellophone, которое может работать как в рамках того же контейнера сервлетов, так и в рамках любого другого, в том числе расположенного на другом домене. Для проверки пользователей Mellophone, как правило, использует службы каталогов (Active Directory, Apache DS и др.) через протокол LDAP. Однако могут использоваться и другие варианты хранилищ пользовательской информации (база данных, XML-файл и др.).

Краткое описание подходов к созданию решений на платформе

  • Основная логика решения описывается в виде процедур на языке Python с использованием механизма доступа к данным, предоставляемым системой Celesta. Также (преимущественно для поддержки работоспособности проектов, созданных в старых версиях Showcase) логика может задаваться хранимых процедур на сервере СУБД. Процедуры бизнес-логики возвращают как данные для отображения, так и визуальные параметры отображаемых элементов. Возврат данных происходит либо в виде наборов данных, либо в виде выходных xml-переменных.
  • Для поддержки интерактивной работы используется специально разработанная технология передачи контекстов. Данная технология позволяет передать в хранимую процедуру, обеспечивающую работу соответствующего графического элемента, параметры осуществленных пользователем действий.
  • Для преобразования данных в html используются xslt/xquery преобразования.
  • Для описания работы форм используется формат XForms, разрабатываемый консорциумом W3C (см. http://www.w3.org/MarkUp/Forms/). Для поддержки элементов выбора (селекторов) с большим количеством значений используется специальный компонент, обеспечивающий расширение XForms.
  • Платформа поддерживает загрузку и выгрузку файлов. Если файл имеет расширение xml, то при загрузке может производиться контроль на соответствии xsd-схеме.
  • Для задач, требующих обработки данных на сервере приложений, используются Python-скрипты, исполняемые сервисом Flute. Как правило, Flute используется в двух случаях: (1) при необходимости создания сложных распределенных вычислений и (2) при выполнении операций, требующих специальных java-библиотек, например, для разбора файлов электронных таблиц.
  • При создании отчетов используются следующие технологии: создание файлов электронных таблиц при помощи Xml2spreadsheet и работа через библиотеку JasperReports. JasperReports используется для создания отчетов, которые не предъявляют требования к специфическому использованию элементов выходного формата (обычно это pdf, odf и docx). Для создания отчетов в виде электронных таблиц, которые требуют применения конкретных способов представления информации (формулы, форматы ячеек, параметры объединения ячеек, оформление и т.д.) или связаны с экспортом больших объемов данных, используется Xml2spreadsheet. Поддерживается построение отчетов в так называемом «lazy» режиме, когда запрос на построение отчета ставится в очередь Flute для оптимального распределения ресурсов сервера.