惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
博客园 - 叶小钗
量子位
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
博客园 - Franky
有赞技术团队
有赞技术团队
博客园 - 聂微东
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Jina AI
Jina AI
Last Week in AI
Last Week in AI
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cloudbric
Cloudbric
WordPress大学
WordPress大学
W
WeLiveSecurity
V2EX - 技术
V2EX - 技术
博客园_首页
S
Security @ Cisco Blogs
The Last Watchdog
The Last Watchdog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Security Latest
Security Latest
L
Lohrmann on Cybersecurity
T
Threat Research - Cisco Blogs
Forbes - Security
Forbes - Security
宝玉的分享
宝玉的分享
The Register - Security
The Register - Security
The Hacker News
The Hacker News
B
Blog RSS Feed
C
CXSECURITY Database RSS Feed - CXSecurity.com
Schneier on Security
Schneier on Security
T
Troy Hunt's Blog
The GitHub Blog
The GitHub Blog
Hacker News: Ask HN
Hacker News: Ask HN
Spread Privacy
Spread Privacy
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
GbyAI
GbyAI
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
罗磊的独立博客
Blog — PlanetScale
Blog — PlanetScale
M
MIT News - Artificial intelligence
T
Tor Project blog
S
Security Affairs
Security Archives - TechRepublic
Security Archives - TechRepublic
NISL@THU
NISL@THU
P
Proofpoint News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Поиск решений управляемый данными. Клиент-серверная архитектура и WEB
SKaminskij · 2026-04-27 · via Все публикации подряд на Хабре

Поиск решений управляемый данными предполагает постоянное взаимодействие с пользователем. База знаний должна позволять одновременно обслуживать несколько клиентских мест. В статье рассматриваются принципиальные вопросы различных вариантов организации взаимодействия пользователей с экспертной системой (локально, в локальной сети, через интернет).

В статье не рассматриваются вопросы технической реализации типа: REST/SPA‑подход или long polling / WebSocket / server‑side session / event sourcing.

Сценарии использования поиска решений управляемого данными и масштабируемость

Вот типичные варианты архитектур, которые могут быть использованы для доступа к системе поиска решений:

1.      Локально. База знаний клонируется (реплицируется) и каждый пользователь работает обособленно со своей копией.

2.      В локальной сети. Толстый клиент. База знаний находится на сервере, а на рабочих станциях установлены клиенты, которые постоянно взаимодействуют с базой знаний для  получения доступа к информационным блокам и словарю. Механизм поиска решений работает на локальных рабочих местах.

3.      На локальных рабочих местах работают тонкие клиенты. Вся обработка данных выполняется на сервере.

Преимуществом варианта 1 является автономность. Но возникает необходимость постоянно поддерживать базу знаний в актуальном состоянии. Если вносятся изменения, они должны оперативно распространяться на все копии базы знаний, что неизбежно приведёт к разного рода коллизиям. Этот вариант удобен для разработки и отладки. Или для приложения созданного исключительно для себя и тогда необходимость делиться базой знаний не возникает.

Вариант 2 снимает необходимость актуализировать базу знаний между клиентами. К проблемам может приводить, как и в варианте 1, необходимость разрешать коллизии при внесении изменений в информационное наполнение от разных клиентов.

Вариант 3 не требователен к ресурсам локальных рабочих мест. С возможным возникновением коллизий аналогичная ситуация, как и в вариантах 1 и 2.

Взаимодействие с базой знаний в интернете возможно через браузер или через WEB-клиента. И чисто браузер и WEB-клиент теоретически могут эмулировать все три варианта, но с существенными оговорками.

Наиболее целесообразным для работы через интернет представляется чисто браузерное взаимодействие с поддержкой только эксплуатационного режима работы пользователей - поиск и документирование решений. Трудность заключается в том, что WEB-технологии не поддерживают постоянное соединение с обратной связью. Запрос-ответ подходит для задач, когда цикл обработки запроса каждый раз полностью завершается. Даже если это диалог с вводом уточнений – данные на стороне сервера сохраняют (накапливаются), но, как правило, не сохраняется само состояние процесса обработки данных на стороне сервера. При поиске решений управляемом данными необходимо сохранять всю накопленную информацию поиска между запросами (получением данных от браузера). Данных достаточно много и формат их различен. В свою очередь браузер должен ждать, когда очередная порция данных для взаимодействия с серверной задачей будет готова.

Возможна следующая схема взаимодействия браузерного интерфейса и серверного процесса поиска решений. Удобно то, что поиск решений выполняется однотипными циклами, и дополнительные данные могут потребоваться только по завершении очередного цикла. Это сильно облегчает асинхронное взаимодействие.

1.      Браузер передаёт данные и запускает серверный процесс.

2.      Браузер периодически проверяет готовность ответа от сервера.

3.      Серверный процесс выполняется до момента, когда потребуются дополнительные данные или решение будет найдено.

4.      Если решение найдено, формируется итоговый отчёт для браузера.

5.      Если поиск продолжается. Состояние процесса замораживается: сохраняется состояние репозиториев информационных блоков, очереди параметров, текущие флаги событий, состояние отчётов и тому подобная информация, накопившаяся в процессе поиска решений.

6.      Серверный процесс завершается и устанавливается флаг ожидания ответа от браузера.

7.      Браузер обнаруживает готовность данных и забирает информацию с сервера.

8.      Браузер анализирует информацию, поступившую от сервера. В том числе управляющие сигналы. Возможны варианты: 1 - процесс завершен; 2 - требуется дополнительная информация.

9.      Если запрашивается дополнительная информация, браузер передаёт данные и перезапускает серверный процесс.

10.   Серверный процесс анализирует информацию, поступившую от браузера. В том числе управляющие сигналы (например, требование прекращения поиска). Данные размораживаются (восстанавливаются). Серверный процесс возобновляется с точки остановки.

11.   Если ожидается продолжение процесса, всё повторяется с пункта 3.

12.   Если  от браузера поступило требование прекращения поиска, процесс завершается с формированием итоговой информации для браузера.

13.   Браузер завершает сеанс работы с сервером.

ПРИМЕЧАНИЕ. Во время прерывания процесса на сессию браузера пользователь может запросить дополнительную справочную информацию. Тогда взаимодействие через область обмена данными продолжится, но цикл поиска запущен не будет.

Предотвращение и разрешение коллизий

Предотвращение изменения одних и тех же данных проблема распространённая. В системе, построенной на информационных блоках и терминологическом словаре всё гораздо сложнее. Просто сравнить одинаково расположенные данные не получится. Пожалуй, только изменения в словаре могут легко отслеживаться, поскольку терминологическая часть словаря это обычная таблица записей с определённым набором атрибутов.

Что значит терминологическая часть словаря. Словарь это не только перечень параметров с их атрибутами, но ещё разного рода сопроводительная информация, как то: оригиналы документов, изображения для диалогового ввода, другая информация, связывающая словарные статьи с компонентами системы. Подробному описанию состава словаря посвящена отдельная статья "Поиск решений управляемый данными. Терминологический словарь".

Влияние изменений в информационных блоках требуют специальных техник.

Самым очевидным будет запрет внесения изменений в информационное наполнение. Полный запрет возможен только для идеального по составу и количеству информационного наполнения. В реальных предметных областях постоянно происходят изменения и информационное наполнение должно как-то корректироваться и успевать за этими изменениями.

Коль скоро избежать изменения информационного наполнения невозможно надо установить такие правила внесения изменений, которые не будут дестабилизировать систему.

Правило 1. Не вносить изменения в один и тот же информационный блок с разных мест доступа. На время внесения изменений возможность внесения изменений со всех возможных мест доступа кроме одной блокируется. Или изменения не сохраняются (с соответствующим уведомлением). Или изменения удаляются (с соответствующим уведомлением). Или создаются конфликтные документы для последующего анализа и разрешения конфликтов. Ситуация с не сохранением, удалением, порождение конфликтных документов, как правило, имеет место, когда информационное наполнение находится в распределённой сети и используется механизм синхронизации (реплицирования).

Правило 2. Внесение любых изменений в одном информационном блоке должно запускать механизм проверки других информационных блоков и становиться сигналом к восстановлению целостности информационного наполнения. До полной синхронизации информационного наполнения внесение, каких бы то ни было других изменений, будет только усугублять ситуацию неопределённости. Что имеется ввиду. Например, в блоке А изменён диапазон допустимых значений входного параметра необходима проверка на пересечение диапазонов для этого параметра во всех других блоках, где этот параметр так же используется для получения аналогичных результатов (определения одного и того же параметра). Другими словами, во избежание неопределённости, всегда необходимо проверять пересечение диапазонов допустимых значений для информационных блоков использующихся для определения одного и того же параметра.

Правило 3. После внесения изменений в автоматическом режиме запускать базовые тесты. Если изменения затронули сохранённые последовательности обработки информационных блоков, эти последовательности урезать до места расположения изменённого блока.

Наверно, можно предложить и более изощрённые методы обеспечения целостности информационного наполнения и сохранения работоспособности системы. Но в любом случае фрагментированная информация в виде информационных блоков делает процессы обеспечения целостности системы очевидными и сравнительно легко реализуемыми.

Заключение

Автономная работа с экспертной системой удобна при создании информационного наполнения, отладки и тестирования приложений.

Так же автономное использование экспертной системы удобно, если не требуется коллективная работа.

Во всех остальных случаях предпочтение следует отдавать клиент-серверным архитектурам. Будь то доступ через интернет или коллективная работа в локальной сети.

В следующей (заключительной) статье серии будут рассмотрены возможные перспективы применения (реализации) предлагаемой технологии накопления и сохранения правильных логических решений.