суббота, 29 января 2011 г.

Zeta3 - продвинутый загрузчик расширений

В Zeta2 процесс загрузки расширений был достаточно длительным и не кэшировался, при этом приложение "съедало" весьма немало ресурсов.

В Zeta3 будет использоваться автономный компилятор расширений, подготавливающий заранее библиотеку, полностью откомпилированных классов. Приложение будет запускать компилятор, который будет выполняться только в случае реальной необходимости.

Ожидается серьезное ускорение загрузки и одновременная экономия ресурсов.

Инфраструктура в целом готова , инструкция ВОТ

воскресенье, 23 января 2011 г.

Zeta3 - более полное применение XML/BXL

В Zeta2 для конфигурации тем был анонсирован язык BXL, явлюящися BOO-заместителем с определенным функционалом для обобщения кода (глобальные переменные, подстановки, генераторы и т.д.)

В Zeta3 данный подход обобщен для общего использования (не только в темах):
  • любой файл XML в конфигурации может быть заменен аналогичным файлом BXL
  • как и BXL так и XML и любой файл может использовать расширения - глобальные переменные, подстановки и др.

Zeta 3 - локальные учетные записи

Серьезной проблемой Zeta 2 при развертывании на нескольких серверах являлась синхронизация безопасности по локальным учетным записям.
Для ее устранения использовался специальный элемент rewrite, переписывающий имена пользователей.
Тем не менее задача прописывания переписывания на каждом сервере никуда не девалась.
В Zeta3 принято кардинальное решение - если учетная запись не является доменной, то есть является локальной - ей дается специальный псевдодомен local, то есть в системе все такие учетки всегда называются local\name.
Это будет удобно и при построении единого сервера аутентификации.



суббота, 22 января 2011 г.

Zeta 3 - новая конфигурация ролей

В Zeta2 маппинг ролей описывался в файле usr/security.map.config
Возникавшие проблемы:
  1. Файл в принципе не раскладывался по уровням - нельзя было создать системный уровеньи пользовательский и совместить их
  2. Формат XML тяжел для сопровождения
  3. Множественный маппинг ролей вида FIN_OPERATOR == OPERATOR и т.п. требовал множества операций.
Вместо этого Zeta3 поддерживает BXL, который может собираться из usr/security.map.bxl и sys/security.map.bxl с продвинутым синтаксисом:

1. Простое описание роли:
role X вместо <role name="X"/>
2. Маппинг роли (используются большие буквы)
map X,Y вместо <map role="X" as="Y"/>
3. Маппинг пользователя или домена (маленькие буквы или наличие символа "/" - использовать надо кстати именно ЕГО а не "\"
map "org/ivanov",Y вместо <map user="org\ivanov" as="Y"/>
4. Сокращенный мапинг админов

admin "org/petrov" вместо <map user="org\petrov" as="ADMIN"/>
5. Массовая генерация ролей
roles "A,B", "X,Y" вместо:
<role name="A_X"/>
<role name="B_X"/>
<role name="A_Y"/>
<role name="B_Y"/>   
6. Массовое сопоставление ролей (через регулярные выражения), например, c учетом примера выше:
maps '^(.+)_(.+)$', '$2' вместо:
<map role="A_X" as="X"/>
<map role="A_Y" as="Y"/>
<map role="B_X" as="X"/>
<map role="B_Y" as="Y"/>