Наша система управления материальными потоками использует следующий основной механизм для обмена сообщениями B2B:
Для каждого интерфейса B2B существует отдельное представление базы данных.Каждая строка объединяет потенциальное сообщение, которое будет отправлено в следующем цикле пакетной обработки.Логика выглядит следующим образом:
- Локальная бизнес-транзакция вставляет новую строку закладок в таблицу закладок
- Наличие строки закладки способствует отображению соответствующего сообщения в представлении
- Запланированное задание выбирает пакет строк из представления и отправляет запросы SOAP
- При успешном возврате удаляются закладки
Это, конечно, упрощенное описание.Реальная реализация включает в себя триггеры базы данных, сложные условия и блокировку интерфейса, но принцип закладки все тот же.Концепцию закладки удобно перехватывать в процессе пакетной обработки при необходимости.Например, можно легко удалить или заново создать закладку, если что-то пойдет не так.Это также общая концепция, применяемая к различным интеграциям.
Интересно, как разработчики оригинальной версии придумали этот дизайн.Это известный шаблон дизайна?Я хотел бы узнать больше об этом решении.