Заказные программы. Веб сайты и веб приложения. Среда разработки.

Модульная архитектура интеллектуальной ГИС

Архитектура распределенной геоинформационной системы OntoGIS базируется на механизме подключаемых во время выполнения библиотек (пакетов). Пакет - это набор компилированных модулей, концептуально предназначенных для выполнения отдельной задачи и объединенных в один файл. Исходный текст пакета, хранящийся в файлах .dpk содержит только указания на то, какие модули содержит этот пакет и на какие другие пакеты он ссылается.

Основной особенностью пакетов является то, что они не включают в себя код, которым не пользуются. Т.е. если некоторые модули используют большую библиотеку функций и классов, то можно потребовать их наличия, но не включать в пакет.

Пакет является полноправной DLL специального формата (т.е. с оговоренными разработчиками Delphi именами экспортируемых процедур). При загрузке пакета в память автоматически устанавливаются связи с уже загруженными пакетами, а если загружаемый пакет требует наличия еще каких-то пакетов, то загружаются и они. Кроме того, в отличие от обычных модулей, программа, использующая модули из внешнего пакета тоже не обязана включать его код.

Для того, чтобы основная программа могла получить ссылки на объекты или на классы (class references), содержащиеся в подгружаемых пакетах, в интерфейсном модуле хранится диспетчер пакетов, в который каждый модуль заносит ставшие доступными классы. Диспетчер обеспечивает загрузку пакетов, поиск подгруженных классов, являющихся потомками заданного, задает приоритеты при загрузке, и.т.д.

Динамическая настройка архитектуры ГИС OntoGIS основана на том факте, что внешние пакеты могут получить полный доступ ко всем модулям программы, в том числе и к главной форме. Таким образом создаются пакеты, которые самостоятельно, без каких-либо усилий со стороны главной программы, помещают свои пункты в главное меню и кнопки на панель инструментов, по команде которых будет вызываться внешний код. В результате мы добавляем к системе очередную возможность без перекомпиляции основной программы.

ontogis-arc