AI Lab

Open Artificial Intelligence Laboratory

Назначение библиотеки RDK

Скачать: RDK.Purposes.Ru.doc

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

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

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

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

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

Обсудить на форуме (комментариев 0).
Разработки RDK Назначение библиотеки RDK