Разработка распределенных приложений в Microsoft.NET Framework


Применение службы сообщений MSMQ в распределенных системах - часть 3


Службы очередей сообщений находят наилучшее применение в случаях, когда какая либо компонента распределенной системы посылает заявки, не требующие ответа (модель "запрос"). Если же компонента получает некоторые ответы в асинхронном режиме (модель "запрос-ответ"), то она должна, вероятно, поддерживать собственный список ожидающих ответов заявок. Это означает наличие у компоненты некоторого внутреннего состояния, которое должно сохраняться в течение длительного времени. Наличие такого состояния является недостатком с точки зрения концепции распределенной системы как набора сервисов, не сохраняющих историю своих вызовов. С точки зрения этой концепции использующая MSMQ компонента либо дожидается ответа сервера в течение одного своего вызова другими компонентами, либо не нуждается в ответе вообще. В первом случае MSMQ предпочтительнее технологий удаленного вызова в одном из в следующих случаев:

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

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




Начало  Назад  Вперед