Некоторое время назад мы разрабатывали информационную систему. В общих чертах суть этой системы следующая.
На сервере содержится тематическая информация (в базе данных). Тематик не слишком много, около пары сотен. Внешний пользователь после регистрации в системе может сделать запрос на сервер для получения любой тематической информации из БД. Запрос делается из клиента, установленного на ПК пользователя.
Клиент формирует запрос к системе по доступным тематикам (он знает о доступности в результате обновление, приходящих с сервера).
На стороне севера запрос обрабатывается обработчиками. Их порядка 10, работают последовательно. Сначала анализ санкционированности запроса, затем проверка регистрации пользователя, затем разбирается что запрашивается и т. д. до последнего. Последний обработчик формирует собственно задание на подготовку архива с запрошенной информацией. Архив пересылается пользователю и клиент расшифровывает архив. Это сама инфосистема.
Если все обработчики отработали корректно, то все нормально. Но если на любом этапе какой-то из обработчиков определил некорректную информацию, то он выставляет код ошибки и завершает весь цикл обработки.
Каждый обработчик пишет свой суточный лог-файл. При большом количестве запросов эти файлы могут достигать несколько десятком Мб.
Задача была в мониторинге работы всех обработчиков с возможностью видеть незавершенные циклы обработки.
Делала это программа на Builder С++ с графическим Flash-ядром. Она считывала файлы логов и передавала для отрисовки во Flash. Хоть файлы логов и большие, но для отрисовки важны только времена событий.
Flash по полученной информации строила гистограммы для каждого обработчика. Поскольку время всего цикла обработки невелико (неск. мс). то гистограммы для всех обработчиков (в масштабе графика) для одного события выстраиваются вдоль одной вертикальной линии. А если цикл не завершен, то линия обрывается и это сразу видно на графике.
Вот пара скринов с гистограммами для 4-х обработчиков. Второй скрин с увеличенным масштабом (раздвинут по времени). Хорошо видны незавершенные группы.
Функциональная схема самой системы приведена на картинке. Картинка снята с Flash-приложения для демонстрации наглядности работы информационной системы. Само Flash-приложение можно посмотреть в Галерее в разделе приложений.
Вот, собственно, такое совместное использование С++ и Flash.
Отредактировано Brunoff (2012-11-26 09:24:50)