Разработка структур программного обеспечения

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

Итак, первым шагом будет определение границ ответственности процессов, или, говоря другими словами, определить, сколько работы должен выполнять один процесс.

Если вы на минуту отвлечетесь от системы безопасности, которую мы с вами разрабатываем, и рассмотрите какую-нибудь систему управления базами данных, то увидите схожие черты. СУБД управляет базой данных и ей совершенно безразлично, на каком носителе находятся эти данные, и (в общем-то) все равно как организован этот носитель, во всяком случае, СУБД понятия не имеет о таблице разбиения жесткого диска, и, тем более, какой интерфейс у этого диска — SCSI или IDE. В таких системах СУБД использует набор абстрактных сервисов предоставляемых ей файловой системой. И СУБД не обязана знать ничего, кроме предоставляемых ей абстрактных сервисов, а тем более, как в конкретном случае построена цепочка абстрактных сервисов. Следующий уровень — файловая система — использует набор абстрактных сервисов, предоставляемых ей драйвером диска. И, наконец, драйвер диска управляет аппаратным обеспечением. Очевидное преимущество такой схемы в том, что верхние уровни в этой цепочке ничего не знают о тонкостях реализации нижних уровней. Таким образом, однажды определив интерфейс (набор абстрактных сервисов на каждом уровне) между приложениями в этой цепочке, вы можете использовать ваше программное обеспечение на большом спектре аппаратного обеспечения, только добавляя новые модули поддержки аппаратного обеспечения, и избежать необходимости переписывать все программное обеспечение целиком, «с нуля».

Если теперь перенести все это на нашу систему безопасности, вы сможете незамедлительно начать с низа этой цепочки, а именно с аппаратного обеспечения. Вы знаете, что у вас имеются несколько типов устройств, и вы знаете, что программному обеспечению не требуется знать всех тонкостей реализации того или иного устройства. Таким образом, ваша первая задача «провести линию» на уровне аппаратных интерфейсов, т.е. вы создаете набор драйверов для аппаратного обеспечения, предварительно разработав для них стандартный API (набор абстрактных сервисов), который бы использовали программы более высокого уровня.

РубрикиFAQМетки

Добавить комментарий