ТТХ программы
- По сути - сетевая база данных, работающая по системе
клиент-сервер
- Графический интерфейс
- Предназначение: сбор с периферийных устройств показаний
электросчетчиков и внесение этих показаний в базу. Показания снимаются
спец устройствами в цифровом виде и разными путями (радиоканал, телефонная
линия, Интернет и т.д., но важно, что по сети, протокол ИП) доставляются к
серверу, который через коммутатор (марщрутизатор) подключен к этим разным
источникам данным.
- Возможность демонстрации работы: клиент, располагающийся
на соседнем компьютере (например, база на компе с адресом 192.168.10.1 а
клиент на компе с адресом 192.168.10.1-адрес должен иметь возможность
меняться); окно клиента может иметь такой вид: 4 поля (строки) и кнопка,
1 поле остается пустым (зарезервировано на будущее :)
2 поле –вносится код улицы (число в диапазоне от 1 до 256 –
итого 1 байт);
3 поле –вносится код дома (число в диапазоне от 1 до 256 –
итого 1 байт);
4 поле – вносятся группы цифр по 6 знакомест, например
936737, в диапазоне от 000000 до 999999 (снятые показания со счетчиков). При
демонстрации можно внести 1 группу цифр или несколько для пущего эффекту ;);
группы вносятся без всяких знаков разделения, важно, чтобы демонстрант вносил
числа кратные 6-ти знакоместам.
При нажатии на кнопку OK данные
отправляются на серверную часть программы.
на рисунке показан пример заполнения полей (пробелы показаны
условно, внутри пакета под каждое показание счетчика отводится 20 бит и эти
группы по 20 бит идут сплошным потоком, разделяет их сама серверная часть
программы, которая знает, что под 1 показание отведено 20 бит).
- База данных содержит соответствующие поля, ячейки: код
улицы, код дома, номер квартиры (квартира высчитывается следующим образом:
1 группа шестизначных цифр-1-я квартира, вторая группа-2-я квартира и
т.д.), показания счетчиков, время получения последнего показания. Можно
для красочности еще и ИП адрес источника данных вносить - но не для каждой
квартиры, а например, для группы домов. Можно запустить клиента на 2-х
машинах и с обоих отправить данные – и база внесет эти данные.
Первоначально база естественно разбивается – заносятся все эти коды,
количество квартир – и база автоматов выделила нужное кол-во ячеек. Вы уж
там сами придайте граф. интерфейс базе-так чтоб было правильно )). Доспу к
базе разграничьте – чтобы просматривать можно было по паролю (в настройках
базы чтоб можно было задать эти группы пользователей), а менять показания
в базе можно было бы только после введения 2-х паролей (разделение
привилегии, например, ОПЕРАТОР и АДМИНИСТРИТОР). Желательно заиспользовать
протоклы какие-нибудь защищенные для обмена клиент-сервер (SSL), ну типа злоумышленник между ними располагаяь не
мог бы вмешиваться (или там Ipsec или что-нибудь с
проверкой целостности).
- Чтобы студент мог при демонстрации увеличить базу
данных-типа создать улицу, дом или 2 дома с разным количеством квартир в
каждим.
- Реакция на события: при демонстрации внести 1 раз
какое-нибудь показание счетчика 111111, а следующее – 000000 (типа
отмотал)-программа должна как-то отреагировать-засветить, скажем, красным,
мигать или еще как-то для привлечения внимания и записать событие в
журнал. Ну и чтоб потом можно было это событие ликвидировать (например,
введение 2-х паролей, как описано в п.5-например, счетчик меняли, не
обязательно это отмотка).
- Ну и последнее - поля должны содержать не только код
улицы, но чтобы можно было просмотреть, что это, скажем улица Скороходова,
а там где показания счетчика-фамилию квартиросъемщика. Пусть студент
введет название и фамилию при демонстрации.