Тема оформления для ZEN (CSS)

Published by Boris Egorov @ August 21, 2008
Относится к разделам: ZEN

ZEN Skin Controls

Для того, чтобы сделать компоненты ZEN более симпатичными, я сделал новую CSS, которая меняет внешний вид многих компонент ZEN. Ниже приведены скриншоты компонент после включения “скина”.

Для того, чтобы использовать эту CSS, вам необходимо скачать ее отсюда (файл p6SkinFB1.css), расположить в csp-каталоге вашего приложения, и включить имя CSS-файла в параметр CSSINCLUDES вашего ZEN-приложения (класса).

Проект - open source, вы можете делать с ней все, что угодно. Внесение правок и включение изменений в Google Code’овский проект - всячески приветствуется.

Read more on Тема оформления для ZEN (CSS)

Comments (0)

Сжатие файла БД

Published by Sergey Kudinov @ August 7, 2008
Относится к разделам: Администрирование

При изменении данных в БД происходит фрагментация данных глобалов по файлу БД. При этом данные одного и того же глобала могут быть разбросаны по разным частям файла БД, т.к в разные моменты времени могли были быть свободны блоки в разных частях файла. Это негативно сказывается на производительности, т.к. физическое чтение блоков с диска занимает больше времени. Для решения этой проблемы можно периодически использовать утилиту Caché ^GCOMPACT, которая дефрагментирует глобалы и оптимально заполняет блоки данными. Недостатком этой утилиты является неспособность уменьшить размер файла БД (особенно актуально после процедур архивации данных, когда, например, значительные объемы переносятся из действующей БД в архивную). Для уменьшения размера файла БД можно использовать, утилиту ^%CompactDB (во вложении), в которой указывается путь к сжимаемой БД – переменная bdpath (после работы утилиты в нем будет сжатая БД) и путь к временному каталогу– переменная oldbdpath (после работы утилиты в нем будет файл исходной БД). Утилита также использует ^GCOMPACT для переноса и сжатия блоков глобалов, но в файл сжатой БД попадают только заполненные блоки.

Утилиту необходимо импортировать в область %SYS. Работа утилиты проверялась на версиях Cache от 5.0.20 до 2008.1.

Проект с утилитой ^%CompactDB (.zip)

Comments (1)

Нагрузочное тестирование веб-приложений

Published by Boris Egorov @ August 6, 2008
Относится к разделам: CSP, ZEN, Продукты и технологии

Если в процессе разработки вам требуется проверить, как построенная система выдержит большое количество пользователей, вы можете воспользоваться специальными инструментами для организации нагрузочного тестирования, например, Apache JMeter. Это бесплатное кроссплатформенное приложение, написанное на Java, которое позволяет очень просто создавать тестовые последовательности действий, соответствующие сценариям работы пользователей, и масштабировать создаваемую нагрузку.

Также в JMeter входят средства для анализа полученных результатов - построения сводных отчетов, графиков и прочего.

При использовании JMeter вам могут быть полезными следующие ссылки:

Для поиска точек возможной оптимизации можно использовать стандартный профилировщик ^%SYS.MONLBL:

Если вы проводите тестирование при помощи других средств, и расскажете нам об этом, мы опубликуем эту информацию.

Comments (0)

Используем безопасность на уровне строк таблиц (Row-level Security)

Published by Vadim Fedorov @ July 31, 2008
Относится к разделам: Caché, Uncategorized, Продукты и технологии

В версии Caché 2007.1 появилась возможность управлять в SQL безопасностью на уровне строк таблиц (Row-level Security).

Это реализуется следующим образом: появляется системный столбец, который содержит список ролей и/или пользователей, которые имеют доступ к каждой строке таблицы. Когда выполняется запрос пользователь должен иметь хотя бы одну роль, для того чтобы увидеть строку. Как правило, список ролей вычисляется на основании данных таблицы и при изменениях строки автоматически вычисляется новый список ролей. За счет индексирования системного столбца безопасность на уровне строк таблиц лишь незначительно уменьшает производительность SQL.

Вот небольшой пример:

1. Создайте класс Test.RowLevelSecurity

Class Test.RowLevelSecurity Extends (%Persistent, %Populate)
{
Property Name As %String(POPSPEC = “Name()”);
Property DOB As %Date;

Parameter ROWLEVELSECURITY = 1;

ClassMethod %SecurityPolicy(Name) As %String [ SqlProc ]
{
if $e(Name,1)=”S” quit “Vadim,_SYSTEM”
else quit “Vadim”
}
}

2. Создайте пользователя Vadim с правами работать через SQL.
3. Сгенерируйте тестовые данные: Do ##class(Test.RowLevelSecurity).Populate(1000)
4. Зайдите в портал управления под пользователем Vadim и выполните SQL-запросы:

select * from Test.RowLevelSecurity
select count(*) from Test.RowLevelSecurity

Вы должны увидеть все 1000 строк, которые Вы сгенерировали.
5. Зайдите в портал управления под пользователем _System и выполните SQL-запросы:

select * from Test.RowLevelSecurity
select count(*) from Test.RowLevelSecurity

Вы должны увидеть только строки, которые начинаются на “S” и получить количество таких строк.

Есть возможность использовать безопасность на уровне строк таблиц и для существующих таблиц.
Подробности в документации.

Обратите внимание, что безопасность на уровне строк таблиц работает только на уровне SQL и не работает при прямом или объектном доступе.

Comments (0)

Обращение к веб-сервисам с поддержкой SSL

Published by Boris Egorov @ July 29, 2008
Относится к разделам: Uncategorized

Если веб-сервис, к которому вы хотите обратиться, работает через SSL (адрес сервиса начинается с “https://” ), то для того, чтобы им воспользоваться, вам потребуется:

  • описать SSL-конфигурацию в Портале управления системой
  • указать имя созданной конфигурации в свойстве SSLConfiguration класса-клиента веб-сервиса.

Comments (0)

Веб-каст “Подходы к проектированию веб-интерфейсов”

Published by Boris Egorov @ July 21, 2008
Относится к разделам: ZEN, Мероприятия

24 июля, в 21:00 по Мск на сайте InterSystems e-Learning в июле проводит веб-каст, посвященный созданию пользовательских веб-интерфейсов.

Сравнение ZEN и CSP, отличия и сходные черты, необходимые навыки для ведения разработки с использованием той, или иной, технологии.

Вебкаст будет проводиться на английском языке. После проведения семинара, его запись будет доступна на InterSystems e-Learning.

Записаться, и принять участие в вебкасте, вы можете здесь.

Участие во всех семинарах InterSystems e-Learning бесплатное.

Comments (0)

Некоторые новые возможности в Ensemble 2008.1

Published by Boris Egorov @ July 16, 2008
Относится к разделам: Ensemble

(данный пост представляет собой пересказ некоторых разделов из Release Notes для Ensemble 2008.1)

Новый элемент языка преобразований данных (DTL) - <subtransform>

Элемент <substransform> используется для вызова другого преобразования данных. Выгода от его использования - такая же, как появление вызовов процедур в обычных языках программирования (только здесь мы “вызываем” преобразование данных) - прежде монолитные, преобразования теперь могут быть объявлены как наборы обращений к множеству уже готовых небольших преобразований-фрагментов, за счет чего становится намного легче создавать преобразования, в которых много общих черт, и становится возможным повторное использование уже готовых преобразований.

Обращение из элемента <subtransform> может идти как к DTL-преобразованию, описанному при помощи XML-языка, или графической нотации, так и к преобразованию, заданному произвольным кодом (классы-наследники Ens.DataTransform).

Публикация и подписка на сообщения

В Ensemble введены механизмы публикации и подписки на сообщения для элементов продукции. Подписчик определяется парой значений - Name и Target. Name - строковое обозначение подписчика, Target - имя элемента внутри продукции, которому будут адресованы все сообщения, предназначенные для данного подписчика.

Сами подписки связывают подписчиков с темами (topics). Темы задаются в виде набора тем и подтем, разделенных точками (так же, как указывается иерархия пакетов). Тема может содержать произвольное количество подтем, каждая из которых должна быть не длиннее 50 символов. Ссылаясь на темы, можно использовать шаблоны (wildcards), в виде знака звездочки:

  • books
  • books.fiction
  • books.fiction.latin
  • books.*
  • *.fiction.*

Все это - допустимые имена тем. Какого-то жестко определенного списка тем нет - вы можете определять их какими угодно.

Для того, чтобы использовать механизм подписки, в продукцию нужно добавить соответствующую бизнес-операцию, которая, получая тему, возвращает список подписчиков. Бизнес-процесс - маршрутизатор использует эту операцию для быстрого получения списка адресатов, и рассылает сообщения заинтересованным подписчикам.

Архивирование сообщений

Появилась возможность для архивирования устаревших сообщений - она доступна как из портала управления Ensemble (раздел Обслуживание - Maintenance), либо может быть вызвана программно.

А также

  • мониторинг событй Ensemble, отправленных Ens.Alert через интерфейс WMI
  • переработанная страница Ensemble System Monitor (старая теперь называется Ensemble Host Monitor)
  • отдельная страница для настройки работы служебной функции LookUp (используется в преобразованиях данных, позволяет устанавливать соответствия одних значений другим), доступна в разделе Обслуживание - Maintenance.

Comments (0)

Релиз Ensemble 2008.1.1

Published by Vadim Fedorov @ July 15, 2008
Относится к разделам: Ensemble, Продукты и технологии

Ensemble 2008.1.1 доступен на следующих платформах:

  • Apple Mac OS X 10.4, 10.5 for x86
  • HP HP-UX 11i v2, v3 for Itanium
  • HP HP-UX 11i v2, v3 for PA-RISC-64
  • HP OpenVMS 7.3-2, 8.2, 8.3 for Alpha
  • HP OpenVMS 8.2-1, 8.3 for Itanium
  • HP Tru64 UNIX 5.1B for Alpha
  • IBM AIX 5L V5.2, V5.3, 6.1 for System P-32
  • IBM AIX 5L V5.2, V5.3, 6.1 for System P-64
  • Microsoft Windows 2000, XP Pro, Windows Server 2003, Vista , Windows Server 2008 for x86-32
  • Microsoft Windows Server 2003, Vista, Windows Server 2008 for x86-64
  • Microsoft Windows Server 2003, Windows Server 2008 for Itanium
  • Red Hat Enterprise Linux AS v4, 5 for x86-32
  • Red Hat Enterprise Linux AS v.4, 5 for x86-64
  • Red Hat Enterprise Linux AS v.4, 5 for Itanium
  • Sun Solaris 10 for SPARC-64
  • Sun Solaris 10 for x86-64
  • SUSE Linux Enterprise Server 9, 10 for x86-32
  • SUSE Linux Enterprise Server 9, 10 for x86-64
  • SUSE Linux Enterprise Server 10 for Itanium

Релиз основан на Caché 2008.1.1.Номер билда Ensemble 2008.1.1 - 579. (Все изменения по сравнению с Caché 2008.1.1относятся к Ensemble).

Новые возможности:

  • MultiValue
  • Поддержка маршрутизации и трансформации сообщений ASTM E 1394–97
  • Возможности Caché 2008.1

Усовершенствования:

  • HL7 Segment Architecture Changes
  • DTL <subtransform> Element
  • Publish and Subscribe Messaging
  • HL7 Sequence Manager
  • Ensemble Archive Manager
  • Ensemble Lookup Settings
  • Ensemble System Monitor
  • HL7 Version 2 Message Routing
  • X12 Message Routing
  • Ensemble Monitoring Using WMI
  • Ensemble Diagnostic Report
  • Ensemble Management Portal Style
  • Time Stamp Specifiers

Подробности в Release Notes: http://www.intersystems.com/ensemble/docs/200811/pdfs/EGRN.pdf

Comments (0)

Вышла версия 2007.4

Published by Boris Egorov @ June 6, 2008
Относится к разделам: Uncategorized

С сегодняшнего дня доступна версия Caché 2007.4.

Release Notes - http://www.intersystems.com/cache/technology/product-tables/releasenotes/200714

Поддерживаемые платформы:

  • Apple Mac OS X 10.4 for PowerPC
  • Apple Mac OS X 10.4 for x86-32
  • HP HP-UX 11.0 for PA-RISC-32
  • HP HP-UX 11i v2, v3 for Itanium
  • HP HP-UX 11i v2, v3 for PA-RISC-64
  • HP OpenVMS 7.3-2, 8.2, 8.3 for Alpha
  • HP OpenVMS 8.2-1, 8.3 for Itanium
  • HP Tru64 UNIX 5.1B for Alpha
  • IBM AIX 5L V5.2, V5.3, 6.1 for System P-32*
  • IBM AIX 5L V5.2, V5.3, 6.1 for System P-64*
  • Microsoft Windows 2000, XP Pro, Windows Server 2003, Vista for x86-32
  • Microsoft Windows Server 2003, Vista for x86-64
  • Microsoft Windows Server 2003 for Itanium
  • Red Hat Enterprise Linux AS v4 for x86-32
  • Red Hat Enterprise Linux AS v.4 for x86-64
  • Red Hat Enterprise Linux AS v.4 for Itanium
  • Sun Solaris 10 for SPARC-64
  • Sun Solaris 10 for x86-64
  • SUSE Linux Enterprise Server 9, 10 for x86-32
  • SUSE Linux Enterprise Server 9 , 10 for x86-64

Comments (0)

Шаблоны времени в именах файлов (Ensemble)

Published by Boris Egorov @
Относится к разделам: Ensemble, Uncategorized, Продукты и технологии

При работе с файловым адаптером Ensemble возможность указать текущее время в настройке маски обрабатываемого файла может быть весьма полезной.
Документация Ensemble 2008.1, доступного для скачивания на Field Test - портале, содержит полную информацию о возможных значениях таких шаблонов.

Например, для того, чтобы обрабатывать только файлы с сегодняшней датой в названии, шаблон имени может быть задан в формате: “filename_%D.txt”, где %D будет во время работы заменено на текущее значение даты.

В целом возможностей для указания даты довольно много, о чем вы можете судить по приведенной таблице (скопирована из документации).
Read more on Шаблоны времени в именах файлов (Ensemble)

Comments (0)