====== Разработка ====== ===== Техническое задание. Черновики. ===== ==== Цели: ==== - Единая инф. база по ПК. Можно будет ее независимо вести и актуализировывать по "зоне отвестственности" / проведенным изменениям, в том числе и мониторить сами факты изменения. По факту изменений появится возможность требовать оперативное документирование сути изменений. - Относительно свежее состояние каналов (дублирует текущую систему мониторинга). Из вариантов развития - мониторинг не только каналов, но и ПК, Серверов, оборудования и самое главное - одновременное предоставление всем сотрудникам отдела общей картины по текущему состоянию. - Собирать дополнительно (в идеале?) можно будет: = кто зашел на какой ПК = сколько сотрудников работает от 1 учетной записи = любую другую информацию, которую возможно собрать программно - Если подключать анализ отчетов ПО типа Everest, то можно будет следить и за изменениями в аппаратном обеспечении - Позволит иметь хоть немного актуальное кол-во активного / рабочего / ремонтируемого аппаратного обеспечения - Благодаря возможности Java-ПО прозрачно работать с различными SQL-БД и благодаря проэкту j1c - напрямую с БД 1С, можно будет в идеале построить "мосты" например с бухгалтерией. - Последнее может помочь организации оперативного обмена информацией между отделами. Например факты перемещений, поломок/получения оборудования ... Организовать оперативную связь со складом(ами). - Старшие медсестры (может не все) ведут учет кто и где их сотрудников работает в EXEL. При помощи уже существующих библиотек можно на первое время "выдергивать" из этих файлов свежую инфо, а в идеале - можно будет после создания "Автоматического Рабочего Места" можно будет иметь полную и оперативную инфо в единой базе. При необходимости - естественно, с разделением прав доступа. Это даст нам оперативную информацию кому из сотрудников звонить при необходимости что-то сделать/узнать/... по ситуации на пункте, а не искать "а кто сегодня работает", перезванивая всем подряд, а звонить "наверняка". ЗЫЖ Благодаря моим ранним наработкам (в универе и ко) их после ближайшего "объединения" можно будет уже использовать в ближайшее время. ==== Threads Controll ==== - Activity Controll Контроль активности - Count controll Контроль кол-ва - Count Managment Учет кол-ва - Task Management Распределение задач/заданий = Servers Monitoring мониторинг серверов отдельный процесс ?по 1 на сеть? = Lan Scaning Сканирование подсетей отдельный процесс ?по 1 на сеть? = IntegNET Exchange Обмен информацией между подсетями. В т.ч. с "сенсоров" Сравнение необходимости в "выделенных сенсорах" - Минимизация сетевого трафика 20 Сенсоров (20 сетей * 100 систем) + ЦУ (Центр управления сенсорами) либо 1 ЦУ * 20 сетей * 100 систем - Единая точка отката - Меньше полноты информации - Проще система - Traffic Limiting - ограничения по трафику - Единый центр либо распредел. - Необходимость в выделенных "сенсорах" ==== Блокировки и ожидания: ==== - Назначение исполнителя - Добавление элемента (ПК) / изменение списка - Обмен информацией ? - Ограничение кол-ва межсетевых соединений - минимизация межсетевого трафика - Ограничение кол-ва одновременных запросов ? Traffic Limiting/Shaping/Очереди/Ограничение кол-ва соединений - Приоритезация (сервера проверяются с мин. задержками) - Сканирование идет в 1-2 потока - Межсетевой обмен идет с ограничениями по кол-ву активных соединений - Межсетевой обмен с управляемой задержкой согласно очереди. Позже - больше задержка. - Задержка - при первом этапе соединения с учетом очереди и приоритетов управляется сервером. - Задержка отправляет клиента в ожидание на как минимум полученное значение от сервера. - Клиент обслуживается сервером ТОЛЬКО при наличии свободных "слотов" - учет ограничений трафика и ко... Вне зависимости от того, что канал и сервер/сенсор сейчас смог-бы обработать и больше/быстрее - главнее не положить канал(ы) и сеть(и). Логирование: - Через отдельный поток ? - Сообщениями ? Сканирование VPN-подсетей - В ней ни кто не обязан присутствовать - Наличие системы в ней - симптом что ПК таки рабочий, но в отъезде. + Атрибут ПК в отъезде ==== Обработка клиента ==== - Появление клиента - Заполнение его сложности - Заполнение его паузы перед стартом (появлением - когда прийдет?) - Генерация приоритета - Включение в некую очередь на выполнение - Фиксация момента его прихода - Фиксация части выполненной его работы - Проверка, вся-ли работа выполненна. - Обновление остатка выполненнолй работы - Вычисление времени в очереди - Обновление приоритета - Установка соседей в очереди - Перемещение по очереди - Переход между очередями - Изменение приоритета - Клиент передумал или задача уже не актуальна по времени ожидания в очереди - Генерация клиентов первоначально для тестирования по рандому - Для увеличения сложности = увеличение сложности заданий (квантов на выполнение) = уменьшение паузы между клиентами = увеличение срочности (ограничение сроков) = увеличение размера кванта времени - Создать очередь(и) - > - Если у клиента осталась работа, то обновить положение клиента в очереди по необходимости - согласно алгоритма планирования ? - < - Сгенерировать клиентов - Выделить квант времени - В очереди с макс. приоритетом выбрать клиента - Предаставить клиенту доступ к работе (отнять от остатка работы квант времени ? ) - Если клиент отработал свое все (остаток работы стал = 0) то просчитать его (клиента) время в очереди. - Сохранить параметры клиента - Если квант времени израсходован не полностью, предоставить его остаток вслед. клиенту - > Генерация клиентов (поиск ПК) Генерация очередей (загрузка списка подсетей) Модификация сложностей Обработка результатов (сохранение) Циклическая обработка клиентов в каждой очереди (по алгоритму/по подсети - сенсору) Эмуляция внешнего таймера? - По его сигналу (вызову) происходит обработка отдельного кванта времени и выделение кванта для работы в очереди - По его сигналу контроллируется "появление" клиентов в очереди готовых к работе клиентов и обработка пауз (ожидания). - проверка приоритетов теущего выполняющегося процесса и ожидающего в очередях. - Изменение актуального (текущего) процесса на выполнении при появлении/наличии более приоритетного Списки клиентов - Глобальный ? - Текущая очередь на каждого исполнителя - При наличии у/по каждого(му) исполнителя(ю) (сенсору) на подсеть. Упростить поиск MAC адресов - По очереди на каждую подсеть ? - Отдельная очередь для ответивших в последнюю проверку при регулярных проверках ? - ? Или это вынести просто в представлении (интерфейсе пользователю) как отдельный фильтр по атрибутам ? - отдельная очередь для непривязанных клиентов (систем) ??? - ? Или и это вынести в отдельное представление как отдельный фильтр аналогично пред. ??? - ? отдельная очередь для серверов ЭО ??? - ? отдельная очередь для видеосерверов ??? - Видео и ЭО можно сделать атрибутами - ? ПК охранника ? (есть 1) Варианты скана сети: - psexec ? - перестал работать уже - Локальные стнации сами складируют ифн. о себе = Не все ПК в домене = Пиковые нагрузки (штормы ?!!) когда все сразу сливают свои отчеты = Можно-ли создавать задания (по времени/логону) с доп. разбросом случаеного времени запуска ?.. - Может запускать от имени чужого отдельного юзера? Завести дополнительного ? - Пытаться логиниться от списка юзверей? - Вызывать сбор инфо через PowerShell? = а везде-ли есть PowerShell ? = Это яко-бы на будущее правильнее ... = Не заблокирован-ли удаленный запуск PowerShell скриптов ??? При запуске локально: - ipconfig/all - даст всю инфо про сеть. - systeminfo - обновления, аптайм, имена ПК, "родного контроллера АД", время работы ... - Теоретически хоть Everest с его отчетами ... - Может еще чего есть действительно полезного? - Атрибуты клиентов: - IP, MAC адреса всех интерфейсов - ДНС - имя - сервер чего-то-там (mail, AD, Silab ... ) - сервер ЭО - сервер Видео - Ноутбук / ПК / Неттоп - активное сетевое оборудование (нет смысла пытаться логиниться через PowerShell :) ) - сетевой принтер / МФУ - на ремонте / в дороге / списан / внесен в базу / только появился ... - Где находится (регион, адрес, место, вплоть до указания угла, розетки, порта ??? - упростит работу с кабелями - скажет точный номер кабеля/порта) - когда проверялся - кто залогинен - когда впервые появился - Когда было изменение статуса, с, на какое - изменение предназначение - Хар-ки ? апгрейды, цена, комплектующие - Инфентарный(ные) номер(а), серийный - Если в ремонте / дороге ... - когда планово должен появиться и где, если это в дороге. - Если списан, то каким актом, когда, почему ... что куплено в замен ??? - Когда и как проходил профилактический ремонт ... кто и что делал - Когда и как введен в бухгалтерии - По каким документам, когда и у кого куплен - Когда закончится гарантия - Версии ПО = Офис = Поста = Для видео: - Плата видеозахвата - какая камера - сколько камер всего ==== Планировщик. Атрибуты. ==== - Накопление "товара" (создание задания) - Время между заданями (пауза между отдельными появлениями заданий) - Полная сложность задания (время на решени) - Элемент перед - Элемент вслед (за) - приоритет - Можно-ли прерывать? - Оставшийся объем работы - № текущего выделенного кванта времени (для подсчета сумм времени выполнения) - время ожидания в очереди полное - врем постановки в очередь