Шрифт:
? Арр Specific
Это свойство можно использовать для передачи специфичной для приложения информации. Так как отдельные свойства сообщения можно просматривать не извлекая сообщение из очереди, наличие такого поля весьма полезно при программировании сложной бизнес-логики.
? Delivery
Данное свойство определяет, где очередь должна хранить данное сообщение — на диске (значение Express), либо в оперативной памяти (значение Recoverable). В последнем случае сообщение не пропадет если, например, произойдет отключение питания. Но в первом случае минимизируются накладные расходы. Time То Be Received
Это похоже на параметр "время жизни" пакета в IP протоколе. Данный параметр задает число секунд, в течении которых сообщение должно быть получено адресатом. По истечении заданного времени MSMQ автоматически уничтожит сообщение.
? Time То Reach Queue
Отправитель сообщения всегда отправляет его в некоторую очередь (очередь назначения), из которой это сообщение должен забрать уже получатель. Заметим, что в процессе передачи сообщения от отправителя до очереди назначения сообщение может временно храниться в другой очереди (например, на машине отправителя, если в данный момент очередь назначения недоступна). Данный параметр задает число секунд, в течении которых сообщение должно достигнуть очереди назначения. По истечении указанного времени MSMQ уничтожит это сообщение, если оно не успеет дойти до очереди назначения.
? Acknowledge
Задавая подходящее значение для этого параметра, отправитель может потребовать от MSMQ автоматически уведомить его о получении сообщения, о записи сообщения в очередь назначения, об уничтожении сообщения по той или иной причине.
? Admin Queue
Здесь можно задать так называемую административную очередь, в которую MSMQ будет направлять уведомления, тип которых задан в свойстве Acknowledge.
? Arrived Time
В этом свойстве MSMQ сохраняет момент времени, в который сообщение достигло очереди назначения.
? Journal
используя этот параметр отправитель может потребовать сохранение копии сообщения в специальной очереди на своей машине (в любом случае, в случае недостижимости получателя).
? Priority
Приоритет сообщения учитывается при его маршрутизации и при размещении в очереди.
? Response Queue
Здесь можно указать имя очереди на стороне отправителя, в которую он хотел бы получить ответ от получателя сообщения (если, конечно, получатель пожелает отправить ответ).
? Message ID
Данный идентификатор формируется автоматически. Получатель сообщения, желающий послать ответ, может указать этот идентификатор в свойстве Correlation ID, связывая тем самым ответ с полученным сообщением.
? Correlation ID
При отправке ответа на полученное сообщение здесь следует указать значение свойства Message ID полученного сообщения.
Ряд свойств, приписываемых сообщению, связан с аутентификацией и шифрованием сообщений. Эти вопросы излагаются далее без упоминания имен соответствующих свойств. Предварительно стоить заметить, что эти же вопросы решаются системой безопасности СОМ+, но только для случая синхронных вызовов, т. к. вся система аутентификации, основанная на Kerberos или NT LAN Manager, основана на синхронной коммуникации клиента и сервера. Технология асинхронных компонент требует использования новой системы аутентификации.
Аутентификация позволяет получателю сообщения быть уверенным в том, что данное сообщение послано именно данным отправителем и в процессе передачи в сообщение не были внесены никакие искажения (целостность сообщения). Шифрование сообщения (его тела — Body) позволяет защитить передаваемую информацию от несанкционированного просмотра.
Аутентификация выполняется по запросу отправителя. Соответствующее требование задается в свойстве Auth Level, где определяется и тип электронной подписи, которую следует использовать при аутентификации в зависимости от типа сообщения.
Что делает MSMQ на стороне отправителя при запросе:
? Получает сертификат от приложения-отправителя
В простейшем случае, когда сообщение пересылается в рамках одного Windows 2000 домена, используется так называемый внутренний сертификат, включающий SID отправителя и его публичный ключ. Если сообщение пересылается за пределы одного домена, используется так называемый внешний сертификат, содержащий специфичную для конкретного способа аутентификации информацию. В этом случае аутентификация выполняется самим приложением-получателем, а не менеджером очереди назначения, как это происходит при использовании внутреннего сертификата. Далее мы не будем рассматривать этот случай.