#Макеты EnergyControl имеет встроенный механизм генерации макетов 80020. В теории всё радужно и прекрасно, на практике мы столкнулись с серией проблем:
- EnergyControl создавал макет для всех объектов, которые содержатся в его БД. По нашей просьбе разработчики EnergyControl добавили возможность генерировать макет для списка предприятий
- Механизм макетов неоперативен и позволяет получить данные только за прошлые сутки
- Принятие макетов в EMCOS приводило к высокой нагрузке, обработка одного макета происходила более часа. Проблема нерешаема
- Механизм макетов не позволяет гибко контролировать заполнение дыр. Нет возможности контролировать, какие данные были высланы и какие ещё нет. Решается отправкой макетов за несколько дней, из-за чего время обработки возрастает кратно (умножаем на число дней, по которым генерируются макеты)
- При принятии макета в EMCOS было обнаружено ограничение на число точек учёта. Ограничение отсутсвует в документации EMCOS и по всей видимости является низкоуровневым: происходило переполнение какого-то счётчика. Проблема решается увеличением числа макетов. В результате время обработки макетов возрастает кратно (умножаем на число макетов)
- При добавлении в макет некоторых объектов макет мог по необъяснимым причинам быть не принят. Решалось переносом таких "сбойных" объектов в новый макет, из-за чего время обработки увеличивалось ещё больше. Причины невозможно локализовать (EMCOS -- чёрный ящик), нерешаемо
- Макет содержал статус данных "данные корректны" в том числе и для данных отсутствующих или неполных. EMCOS же, всецело полагался на статус и видя, что статус данных "ОК", их не обновлял. Как следствие, данные в БД EMCOS были преимущественно некорректные. Проблема нерешаема
#Web-сервисы Ввиду вышеописанных проблем было принято решение импортировать данные из БД EnergyControl через механизм Web-сервисов. Это решило следующие проблемы:
- Web-сервисы не приводят к росту нагрузки, данные обрабатываются быстро
- Web-сервисы позволяют EMCOS контролировать заполнение дыр
- Статусы данных теперь адекватные. Неполные и некорректные данные EMCOS пересобирает. Как следствие данные в БД EMCOS совпадают с данными в БД EnergyControl
По пути сквозь терни к звездам также выполнено:
- Обнаружены ошибки в драйвере ECOM-3000:
- [Исправлено] Не обнулялись переменные, содержащие данные авторизации для устройств. Следствия:
- EMCOS флудил данными авторизации в сети (фактически передавал их в третьи руки)
- Часть устройств опрашивалась случайно с чужими данными авторизации, что приводило к необъяснимым глюкам опроса и появлению дыр
- [Исправлено] HTTP-заголовок содержал сразу 2 ошибки, для обхода которых в реализации Web-сервисов пришлось пойти на разные ухищрения
- [Исправлено] Не обнулялись переменные, содержащие данные авторизации для устройств. Следствия:
- Было написано ПО для контроля полноты данных и анализа точек учёта ПО EnergyControl