Московская государственная академия приборостроения и информатики

Методы разработки систем, основанных
на плагинных технологиях

В статье представлены и проанализированы различные методы разработки систем основанных на плагинных технологиях.

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

Самый простой способ написания системы это объединить всю систему в один большой блок – так называемое приложение. Приложение – это программа, обладающая необходимой функциональностью для решения поставленной перед разработчиком задачи [1].

Данная система привлекает своей простотой, но при ближайшем рассмотрении становится понятным, чтобы произвести какие-либо изменения надо полностью перерабатывать приложение. Поэтому, в большинстве случаев, когда необходимо создать приложение с варьируемым количеством функций, прибегают к плагинной технологии.[1] Плагинная технология – это способ создания приложения, при котором запускаемый модуль (ядро системы) управляет загружаемыми библиотеками (плагинами). Подход повсеместно используется при создании программ, в виду возможного неограниченного расширения функциональности приложения. Однако, простая плагинная технология накладывает ряд ограниченней на разработчика. В частности, проекты, разработанные с учетом этой технологии, имеют строго фиксированную структуру плагинов.

НЕ нашли? Не то? Что вы ищете?

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

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

Следует заметить, что во всех предложенных раннее системах, основанных на плагинах, все управление приложениями осуществляется через ядро системы. Это приводит к замедлению работы системы и накоплению системных ошибок в момент передачи (приема) данных от плагинов и, наоборот, к ним. И самое неудобное в этой системе, что все вызовы должны проходить последовательно во избежание наслоения данных друг на друга.

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

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

Список литературы

1.  Рихтер Дж. Программирование на платформе Framework. М.: Русская редакция, 20с.