Позвольте мне сначала обратиться к предположению, которое вы сделали: " ... что существует определенный шаблон, которому следует каждый инструмент SaaS: агент отправителя ". Я хотел бы, чтобы вы направили меня к источнику этого заявления. По своему опыту работы с SaaS я никогда не слышал о такой схеме.
Честно говоря, «агент отправителя» звучит так же широко и туманно, как «бизнес-компонент» или «ядро сервера».
У меня есть мое веб-приложение, но оно не может общаться со слоем базы данных (ни оно
не должен, конечно)
Вы не сравниваете яблоки с яблоками здесь. Webapp - это уровень , база данных - это уровень. Уровень Webapp должен общаться с уровнем базы данных. Веб-приложение может иметь разные слои , и постоянный слой в веб-приложении будет взаимодействовать с уровнем базы данных.
... так что в моей закрытой сети есть агент, который публикует
в веб-приложение.
Звучит так, будто веб-приложение - безжизненная статуя, а агент - скульптор, который бегает вокруг него и бросает в него куски глины. Webapp получает запрос от клиента, запрашивает уровень постоянства (это может быть кеш) и отправляет ответ. Какие бы агенты у вас ни были, они будут публиковать данные в постоянном хранилище или в очереди, а не в самом веб-приложении.
Читайте о слоях по сравнению с уровнями, это поможет вам лучше понять веб-приложения и модели SaaS: В чем разница между "Слоями" и "Уровнями"?
обновление
Спасибо за разъяснения, это существенно меняет вопрос. То, что вы делаете, звучит очень разумно. Вы работаете в рамках ограничений конкретной системы, и вам необходимо выполнить контракт плагина. Если в контракте указано, что это должен быть HTTP POST, то это то, что вам нужно сделать.
Есть множество способов, как это сделать. Вот только некоторые из них:
- агент (ы) отправляет событие на сервер при наступлении события
- в случае, если агенты могут создать слишком большую нагрузку на сервер, агент (ы) помещает событие в очередь. Затем очередь будет очищена выделенными и регулируемыми процессами, которые будут считывать вашу базу данных и отправлять события на сервер
- запланированный процесс (демон) считывает вашу базу данных через определенные промежутки времени и отправляет обновления на сервер