Программный пакет Gelio (v2.1) представляет собой ядро информационной системы ПО управления предприятием, ориентированной для
работы с базами данных. Gelio предназначен для программистов, которые занимаются разработкой автоматизированных рабочих мест (АРМ-ов)
для автоматизации работы предприятий, использование многих возможностей Gelio, позволит им более быстро и качественно построить
информационную систему (ИС) предприятия.
Открытая структура построения
Gelio является системой с открытой структурой построения. Она основана на целом
ряде технологий, пакет может подключать к себе АРМ-ы из модулей DLL, BPL (Borland
pakage library, их использование уменьшает объем бинарного кода), есть возможность
подключения отдельных приложений и используя СОМ-технологии.
Эти модули могут предназначаться для выполнения различной работы и могут
представлять из себя: законченные АРМ-ы для пользователей, общие блоки нескольких
АРМ-ов, модули невидимые пользователю в его работе: модули-генераторы отчетов,
модули связи, служебные, администрирования и управления, интерпретаторы и др.
Разработчик имея документацию может спокойно дополнять список АРМ-ов, а также
заменять их в случае смены алгоритмов их работы.
В Gelio также встроен механизм для оптимизации памяти при работе с модулями -
загружаются только нужные для работы, модули которые не используются могут
выгружаться сразу или после указанного времени неактивности;
есть возможность сконфигурировать постоянно загруженные модули;
настройки АРМ-ов задаются локально для модулей, работающих без использования базы
данных (БД) или в БД на сервере для остальных.
В Gelio организована
автоматическая подгрузка отсутствующих модулей, если это конечно не противоречит
принципам защиты, заданным для даного пользователя в базе данных Gelio и
отдельно в операционной системе.
Защищенность
Несмотря на свою открытость, Gelio разработан также и с учетом требуемой безопасности: мощные средства разграничения доступа позволяют для
каждого пользователя задавать на выполнение только разрешенные ему операции, Gelio дает разрешение на запуск модулей только если у
пользователя есть на него разрешение. Также есть поддержка разрешений на операции внутри модулей - Gelio возвращает всю нужную информацию о
разрешенных операциях в соответствующие АРМ-ы по текущему пользователю. Вся информация о модулях и о разрешенных операциях находится в
служебных таблицах Gelio (в базе данных предприятия) и настраивается служебным лицом, используя соответствующий редактор. Защита может
распространяться на любые визуальные элементы, которые могут быть запрещены и выполняется автоматически. Для некоторых особо сложных и
специфических случаев программисту дается право использовать эту информацию и управлять визуальными элементами самому в АРМ-е.
Кроме этого, при написании АРМ-а нужно учитывать и тот факт, что некоторые элементы могут быть недоступны и обрабатывать эти ситуации.
В отличии от систем, построенных в архитектуре файл-сервер (например на dBase, FoxPro, Paradox), файлы базы данных не требуется
открывать для общего доступа в сети. Таким образом, злоумышленник не сможет с любого компьютера сети изменить любые данные, поскольку
разграничение доступа и разрешения выполнения операций ограничиваются также штатными средствами SQL-сервера и операционной системы (защита по
логину пользователя, ролям, запретам на объекты БД), что дает хорошую защиту от несанкционированного доступа к базе данных предприятия, в том
числе и с использованием злоумышленником внешних средств. Кроме этого возможно вести журнал подключений и отключений, а также выполняемых
операций пользователями на уровне SQL-сервера, что также повышает защиту от нападений и их анализ.
Диалоговое окно ввода имени и пароля пользователя защищено от получения введенных данных из других программ средствами WinAPI. Пароли
в открытом виде нигде не хранятся и по сети передаются в зашифрованном (хешированном) виде. Есть возможность шифрования трафика сети
(используя внешние средства, например Zebede), что необходимо при работе с удаленных компьютеров, в том числе и по открытым каналам связи
(например Интернет).
Взаимодействие с базами данных
Gelio разработан для работы в архитектуре клиент-сервер. Gelio предоставляет унифицированный доступ к базе данных, в качестве которой
используется SQL-сервер Interbase фирмы Borland или более усовершенствованные его
клоны Firebird или Yaffil. Работа в архитектуре клиент-сервер позволяет исключить
массу проблем при взаимодействии многих операторов в одной сети, это и более
скоростная обработка и проверка правильности данных (их актуальность), защита
от потерь и несанкционированного доступа к данным и много другое.
Для программиста Gelio дает доступ к базе данных через единственное
подключение, что минимизирует накладные расходы при работе с SQL-сервером при
использовании множества АРМ-ов (но разработчик может создавать и использовать
свои подключения, в том числе и другим базам данных и серверам). Таким образом,
пользователю не нужно проходить систему аутентификации при каждом запуске АРМ-а
и вводить свое имя и пароль доступа.
Кроме этого, в служебных таблицах Gelio организовано хранилище SQL-запросов (с
запоминанием изменений), что позволяет изменять логику приложений, не изменяя их
код и иметь возможность откатиться назад, при возникновении ошибок при изменениях.
В Gelio расширена поддержка использования таких SQL-запросов: по запросу из модулей
они будут создаваться и выполняться на лету, Gelio сам следит за их созданием и
удалением из памяти. Таким образом, в модулях не нужно использовать компоненты для создания
и обработки SQL-запросов, хранящихся в базе данных, а можно ограничиться всего лишь
вызовом заданного SQL-запроса по имени, указать в нужное время о запуске и получить
результаты. Все остальное выполнит Gelio.
Интерфейс пользователя и настройки
Gelio разрабатывался с учетом принципов построения удобного пользовательского
интерфейса и современных требований к программам, работающим в среде Windows.
Одним из самых главных принципов "usability" является: "Человек может нормально
воспринимать только семь элементов интерфейса одновременно". Особенно это касается
малоопытных операторов, поскольку большое количество элементов интерфейса часто
отпугивает их. Загруженность пользовательского интерфейса может привести к
некомфортной работе, что в свою очередь увеличивает возможность возникновения
ошибок. Поэтому в Gelio используется более понятную парадигму "Объект-Возможные действия".
Другими словами, сначала пользователь выбирает на экране нужный объект, а
система показывает, какие действия можно выполнить над этим объектом. Именно
поэтому в ИС, построенных на Gelio, нет "многоэтажных" меню и длинных списков
действий: при смене АРМ-а, меню и панели быстрого доступа Gelio изменяют свое
содержимое, подстраиваясь под активный АРМ.
Такой подход позволяет снизить затраты на обучение при развитии системы,
предоставить пользователю интуитивно понятные способы работы, что в целом
увеличивает скорость работы и уменьшает количество ошибок при вводе.
По отзывам большинства пользователей, интерфейс системы очень прост, интуитивно
понятен и требует минимума времени на освоение.
Для обеспечения удобного интерфейса, Gelio поддерживает настраиваемый интерфейс
пользователя в виде перетаскиваемых и настраиваемых панелей, на которых
находятся интерфейсные элементы, главное меню и др. Gelio поддерживает импортируемые
меню из модулей и встраивает их в свое основное меню в режимах постоянного доступа
и доступа только при активности модуля. Gelio предоставляет АРМ-ам возможность
запоминания окон и других интерфейсных элементов, различных параметров приложений.
Следуя общим принципам построения,
эти настройки для каждого пользователя хранятся в базе данных на сервере, что
позволяет "мигрировать" пользователю с компьютера на компьютер по локальной
сети и работать в своей привычной и настроенной им среде Gelio, с теми данными, с
которыми он работал до этого. Если же нагрузка на сеть должна быть минимальной,
то есть возможность запоминания этих данных в реестре ОС (В этом случае некоторые
режимы могут быть недоступны, возможно ухудшение защиты пакета программ)
Отчеты
В ядро Gelio включена поддержка нескольких типов генераторов-отчетов с таким
расчетом, чтобы программисты в своих АРМ-ах имели возможность одновременно
подключать различные генераторы отчетов и работать с тем, который более всего
им подходит для выполнения их задач. (Были протестированы такие отчетники как
FreeReport v2.2.1.8a и его более мощная версия FastReport v2.4, а также PReport.
Технически они помещались в bpl-модули и использовались из любого АРМа,
вызывавшего отчет, который был закреплен за данным отчетником. Исходя из технологии
можно вполне также использовать генератор отчетов XL Report для работы с
программой Microsoft Excel).
Физически отчеты находятся в базе данных на сервере, с указанием модуля
генератора отчетов для его обработки. По запросу любого модуля Gelio загрузит
нужный модуль с генератором отчетов, сам отчет и сформирует результат (сохраняя
для разработчика возможность управлять этим процессом и по необходимости вносить
коррективы в алгоритм работы)
Для генераторов со встроенными дизайнерами Gelio поддерживает вызов дизайнера
для редактирования отчета с возможностью записи отчета в базу данных.
Gelio ведет статистику запуска отчетов пользователем, в ядро встроено диалоговое
окно выбора любого отчета пользователем, поддерживается вызов редактора отчета,
создание нового отчета, и имеет возможности сортировки по частоте использования или имени,
фильтрацию по АРМ-ам и защитные функции. Эта же статистика используется для генерирования
меню быстрого запуска наиболее часто используемых отчетов.
Связь с внешним миром или программные интерфейсы:
На сегодняшний день всегда возникает необходимость обмен данными с другими программными
системами, как внутренними, так и внешними. Информационные системы, построенные
на ядре Gelio имеют возможность интегрироваться с другими программными системами,
поскольку имеют встроенные в Gelio модули експорта данных из табличных документов
и отчетов во многие форматы данных, уже ставшие стандартными в мире персональных
компьютеров - TXT, HTML, RTF, Microsoft Excel (даже без установленного Microsoft Office),
CSV, VCLBDIF, а также импорта данных.
Обработка ошибок
Gelio имеет в своем активе общий для всех модулей обработчик ошибок и поддерживает
журналирование этих ошибок (см. swExceptLogger).
Это позволяет разработчикам и администратору быстро реагировать на проблемы и
устранять их. Получение файлов логов поддерживается с помощью дополнительных
подключаемых модулей, которые обеспечивают передачу сжатых таких файлов различными
доступными способами - по сети, e-mail и др.
Внедрения
На основе Gelio построена информационная система Чортковского комбината хлебопродуктов,
состоящая из нескольких АРМ-ов, ее более подробное описание смотрите
здесь.
|