СИСТЕМА АВТОМАТИЗИРОВАННОГО ОПОВЕЩЕНИЯ ПОЛЬЗОВАТЕЛЕЙ В ЛОКАЛЬНОЙ СЕТИ Давыдова Мария, лицей №1580 ЦЕЛЬ РАБОТЫ Разработка программного комплекса для автоматизации отправки текстовых сообщений пользователям локальной сети ТРЕБОВАНИЯ К КОМПЛЕКСУ Работа под управлением MS-DOS и поддержка протокола Novell IPX Работа на маломощных компьютерах и сетях с невысокой пропускной способностью Надежность и простота использования Психологическая ненавязчивость интерфейса 1 AРХИТЕКТУРА КОМПЛЕКСА ПРИНЦИПЫ ПОСТРОЕНИЯ КОМПЛЕКСА Независимость компонентов комплекса Наличие единого протокола взаимодействия между компонентами Максимально возможное разделение функций компонентов Централизованное управление компонентами Сервер (MSGSend) Локальная сеть Протокол VSMP Протокол VSMP Локальная сеть Клиент (MSGShow) Другой компонент Локальная сеть Протокол VSMP 2 КЛИЕНТСКАЯ ЧАСТЬ СТРУКТУРА КОМПОНЕНТА Клиент Загрузочный модуль Модуль работы со знакогенератором Модуль работы с видеоадаптером Протокол ФУНКЦИИ МОДУЛЕЙ Перехват прерываний Менеджмент памяти Контроль копий компонента на отдельной рабочей станции Динамическое перепрограммирование знакогенератора Работа с видеопамятью напрямую Изменение видеорежима Сохранение/восстановление регистров CRT-контроллера Поддержка протокола IPX Поддержка внутреннего протокола комплекса 3 СЕРВЕРНАЯ ЧАСТЬ СТРУКТУРА КОМПОНЕНТА Сервер Модуль контроля состояния комплекса Модуль отправки сообщения Модуль контроля состояния комплекса Протокол ФУНКЦИИ МОДУЛЕЙ Контроль всех копий MSGShow и станций, на которых они запущены Разбор входного файла Менеджмент сообщений между станциями Многоуровневый дамп состояния протокола и статистики пакетов Печать текущего состояния объектов компонента Поддержка протокола IPX Поддержка внутреннего протокола комплекса 4 ПРОТОКОЛ VSMP <00> SAP: Сервисный пакет INITRQ: Запрос на инициализацию <01> <02> ATTACH: ID этой копии MSGShow Сервер MSGRQ: Запрос на новое сообщения <01> <03> Клиент MSG: Новое сообщение..... …..DETACH: Отсоединение от MSGSend <02> ФОРМАТ ПАКЕТА С ДАННЫМИ 1 2 3 4 5 6 7 8 9 . . . . . . 82 83 01 09 H e l l o ! Текст сообщения Дополнительная информация (ID или начало сетевого адреса) Код пакета 5 ИЗМЕНЕНИЕ ВИДЕОРЕЖИМА Регистр начала вертикального гашения луча CRTC Vertical Blanking Start Register + вертикальный размер символа Регистр длительности участка отображения в кадре + вертикальный размер символа Vertical Display End Register Регистр начала вертикального обратного хода луча Vertical Retrace Start Register + вертикальный размер символа / 2 Maximum Scan Lines Register Регистр вертикального размера символа 6 РАБОТА СО ЗНАКОГЕНЕРАТОРОМ 00000000 00000000 00000000 00000000 10000000 10000000 10000000 10000000 10000000 10000000 10000000 10000000 00000000 00000000 00000000 00000000 ASCII код 0ffh 00000000 00000000 10000000 11000000 01100000 01100000 01100000 11100000 01100000 01100000 01100000 01100000 00000000 00000000 00000000 00000000 ASCII код 0ffh 00000000 00000000 11100000 10110000 00011000 00011000 00011000 11111000 00011000 00011000 00011000 00011000 00000000 00000000 00000000 00000000 ASCII код 0ffh 00000000 00000000 00111000 01101100 11000110 11000110 11000110 11111110 11000110 11000110 11000110 11000110 00000000 00000000 00000000 00000000 ASCII код 065h 7 ЗАГРУЗОЧНЫЙ МОДУЛЬ перехват прерываний - сохранение вектора старого ISR - установка нового вектора ISR завершение программы резидентом Инсталляция Вызов прерывания Завершение работы выполнение нового обработчика вызов старого обработчика восстановление векторов ISR освобождение памяти ПЕРЕХВАТЫВАЕМЫЕ ПРЕРЫВАНИЯ Таймер int 08h Манипуляции со знакогенератором, VSMP Клавиатура int 09h Поддержка управляющих клавиш Video BIOS int 10h Контроль внешних попыток изменить видеорежим DOS Safe int 28h Безопасное обращение в функциям DOS DOS MUX int 2Fh Инсталляция, разбор командной строки ДИАГРАММА НАСЛЕДОВАНИЯ КЛАССОВ CЕРВЕРА CObj CList CNode CDump CRecord CNet CInfo CList<CNode> CList<CRecord> РЕАЛИЗАЦИЯ ПРОТОКОЛА VSMP СТРУКТУРА ПРОТОКОЛА Протоколы Надстройка над протоколом IPX Внутренний протокол VSMP Библиотеки поддержки IPX ФУНКЦИИ МОДУЛЕЙ Реализация асинхронной работы с пакетами данных Реализация механизма таймаутов для минимизации потерь данных при передаче Обработка приходящих пакетов согласно внутреннему протоколу Инициализация и вызов функций IPX для языка С++ Инициализация и вызов функций IPX для языка ассемблера ВЫВОДЫ РЕЗУЛЬТАТЫ РАБОТЫ Разработан модульный масштабируемый программный комплекс для автоматизации оповещения пользователей в локальной сети Клиентская программа работает в модифицированном видеорежиме на дополнительной текстовой строке Используется динамическое переопределение знакогенератора Разработан открытый протокол VSMP и библиотека поддержки VSMP-over-IPX Разработаны библиотеки поддержки протокола IPX НАПРАВЛЕНИЯ ДАЛЬНЕЙШИХ РАЗРАБОТОК Разработка и поддержка VSMP API Разработка серверной части под ОС Novell (MsgSend.NLM) Разработка версии протокола и соответствующего компонента для обмена личными сообщениями между пользователями Поддержка других сетевых протоколов, прежде всего TCP/IP Разработка клиентской части под ОС Windows 8