Лучший подход к использованию, обмену сообщениями и сохранению данных аудита из приложения A в приложении B в режиме реального времени - PullRequest
0 голосов
/ 12 августа 2010

Мой первоначальный подход к этому состоял в том, чтобы использовать хранимую процедуру в базе данных приложения A, запущенную на вставке для сбора дополнительных данных и вызова веб-службы, размещенной в приложении B, для выполнения там необходимого отображения и сохранения.Приложение A и приложение B могут находиться не на одном компьютере.Первоначальное требование заключается в поддержке базы данных SQL Server на стороне приложения А.Запомнилась хранимая процедура CLR.Однако считалось, что обращение к веб-службе будет иметь серьезные последствия для производительности ядра SQL Server, а также потребует повышения разрешений для процедуры, которую администраторы базы данных не любят предоставлять.

Сейчас я нахожусьв терминах процедуры создания некоторой формы справочной таблицы для базы данных A и приложения опроса, использующего эти данные и очищающего после обработки в Приложении B. Однако я не могу не думать, что существует лучший способ сделать это, помимо опроса дляdata.

Приложение A предназначено только для Windows.Приложение B может быть Windows, UNIX или LINUX, поэтому Java будет очевидным выбором с этой стороны.

1 Ответ

0 голосов
/ 12 августа 2010

Вы дали нам список подходов, которые вы рассматривали, но вы на самом деле не обрисовали в общих чертах, что именно вы пытаетесь достичь, каковы ваши цели и т. Д., Кроме названия этого предложения, состоящего из одного предложения.вопрос.Можете ли вы уточнить, каковы ваши требования?

Стандартный ответ для асинхронного обмена сообщениями между приложениями заключается в использовании JMS.Приложение A помещает сообщения в очередь всякий раз, когда в ней происходят события, которые должны быть проверены, и приложение B записывается так, чтобы потреблять сообщения из очереди с определенной скоростью (если вы хотите «в реальном времени», вы можете очень часто опрашивать очередь).Приложение B может затем делать с этими сообщениями все, что нужно, - записывать их в базу данных, отправлять их в другой веб-сервис и т. Д.

Таким образом, действия в приложении A - что вы хотите проверять - иПоведение Приложения B - как вы хотите проверять сообщения - полностью отделено друг от друга.Это позволяет вам что-то менять с обеих сторон - проверять новые типы событий, изменять полезную нагрузку сообщения, выводить сообщения в другое место и т. Д. - без изменения другой стороны.

Это также позволяет ваммасштабируйте оба приложения независимо друг от друга - вы можете добавить больше экземпляров A, не влияя на B, A может создавать сообщения с гораздо более высокой скоростью, чем B потребляет их, и A не ожидает, пока B завершит потребление сообщения, прежде чем сможетотвечать на действия пользователя.

...