Message Queuing (MSMQ)

20
Message Queuing (MSMQ) Cezary Nolewajka Getin Sp. z o.o. [email protected] om

description

Message Queuing (MSMQ). Cezary Nolewajka Getin Sp. z o.o. [email protected]. MSMQ – co to jest?. Co to jest MSMQ? infrastruktura najnowsza wersja: MSMQ 3.0 (.Net Server, XP) Cechy MSMQ gwarantowane dostarczenie wiadomości, transakcje, bezpieczeństwo (autentykacja, szyfrowanie), - PowerPoint PPT Presentation

Transcript of Message Queuing (MSMQ)

Page 1: Message Queuing (MSMQ)

Message Queuing(MSMQ)

Cezary Nolewajka

Getin Sp. z o.o.

[email protected]

Page 2: Message Queuing (MSMQ)

MSMQ – co to jest?

Co to jest MSMQ? infrastruktura najnowsza wersja: MSMQ 3.0 (.Net Server, XP)

Cechy MSMQ gwarantowane dostarczenie wiadomości, transakcje, bezpieczeństwo (autentykacja, szyfrowanie), wydajne kierowanie ruchem, priorytety, inne: HTTP, triggers, multicast, message lookup, AD

integration, cross-platform, active/active cluster support, Windows CE Client, backup and restore

Page 3: Message Queuing (MSMQ)

MSMQ – serwery, klienci

MSMQ Server dostęp do AD, także dla klientów wcześniejszych

wersji: MSMQ 1.0/2.0 (wymagany MSMQ Downlevel Client Support)

obsługa kierowania ruchem wiadomości (routing) wsparcie dla klientów zależnych

MSMQ Client (Independent) mogą pracować bez połączenia (mobility) rozłożenie ruchu (in/out-routing servers) nie można zainstalować „Routing Component” oraz

wsparcia dla klientów MSMQ 1.0/2.0 („Downlevel Client Support”)

Page 4: Message Queuing (MSMQ)

MSMQ – serwery, klienci (c.d.)

MSMQ Client (Dependent) wymaga komputera wspierającego: MSMQ Server lub

MSMQ Independent Client nie może wysyłać wiadomości bez połączenia (offline) zalety: mniej do administrowania wady: osłabione szyfrowanie, gorsza wydajność

(RPC, wiele klientów/serwer), kolejki klienta na serwerze, nie może korzystać z transportu HTTP, list dystrybucyjnych, czy wieloczęściowych nazw „Format Names”

Page 5: Message Queuing (MSMQ)

MSMQ – kolejki

Kolejki (Queues)publiczne / prywatne (Public/Private Queues)

ComputerName\QueueNameComputerName\Private$\QueueName

transakcyjne / nietransakcyjneadministracyjne (Administration Queues, tylko

nietransakcyjne)kolejki odpowiedzi (Response Queues)kolejki raportowania (Report Queues, tracing)

Label: MQReport QueueGUID: {55EE8F32-CCE9-11CF-B108-0020AFD61CE9}

Page 6: Message Queuing (MSMQ)

MSMQ – kolejki (c.d.)

Kolejki (Queues)kolejki systemowe (System Queues):

kolejki kopii (Journal Queues)MACHINE=ComputerGUID;JOURNAL

systemowe kolejki prywatne (Internal Private Queues) i kolejki wysyłające (Outgoing Queues)

kolejki wiadomości niedostarczonych (Dead-letter Queues)

kolejki połączeń (Connector Queues)

Page 7: Message Queuing (MSMQ)

MSMQ – nazwy kolejek

Path Names ComputerName\QueueName ComuterName\QueueName\Journal$ ComputerName\Private$\QueueName MachineName\Journal$ MachineName\Deatletter$ MachineName\XactDeatletter$

Page 8: Message Queuing (MSMQ)

MSMQ – nazwy kolejek (c.d.)

Format Names Direct Format Names:

DIRECT=ComputerAddress\PublicQueueNameDIRECT=ComputerAddress\PRIVATE$\PrivateQueueNameDIRECT=ComputerAddress\SYSTEM$;SystemQueueNameDIRECT=HTTP://URL_Address/msmq/PublicQueueNameDIRECT=HTTPS://URL_Address/msmq/PublicQueueNameDIRECT=HTTPS://URL_Address/msmq/private$\PrivateQueue

DIRECT=TCP:157.18.3.1\MyPublicQueueDIRECT=OS:elvisp.ms.com\MyPublicQueue

Page 9: Message Queuing (MSMQ)

MSMQ – nazwy kolejek (c.d.)

Format Names Public Format Names:

PUBLIC=QueueGUIDPUBLIC=QueueGUID;JOURNAL

PUBLIC=308FB580-1EB2-11CA-923B-08002B1075A7

Private Format Names:PRIVATE=ComputerGUID\QueueNumberPRIVATE=ComputerGUID\QueueNumber;JOURNAL

PRIVATE=ae0c5671-f190-12ce-ae10-00dd0114290f\0000000d

Queue Aliases

Page 10: Message Queuing (MSMQ)

MSMQ – Journaling

Target Journalingustawiane dla każdej kolejki niezależnie

Source JournalingPositive Source JournalingNegative Source Journaling (Dead-letter

queues)

Page 11: Message Queuing (MSMQ)

MSMQ – wiadomości

Typy wiadomości wiadomości, potwierdzenia, raporty, odpowiedzi

Właściwości wiadomości dłuuuuga lista.... () TTRQ, TTBR (uwaga na wartości domyślne!)

Dostarczanie express messaging vs. recoverable messaging

Wiadomości transakcyjne ACID, exactly once in-order delivery external transactions (DTC, XA-Compliant) internal transactions (single message implicit)

Page 12: Message Queuing (MSMQ)

MSMQ – wiadomości (c.d.)

Formatowanie wiadomości XMLMessageFormatter

mq.Formatter = new XmlMessageFormatter (new string[] {”Assembly.ClassName,Assembly”});

mq.Formatter = new XmlMessageFormatter (new Type[] {typeof (ClassName)});

BinaryMessageFormattermq.Formatter = new BinaryMessageFormatter ();

ActiveXMessageFormatter

Page 13: Message Queuing (MSMQ)

MSMQ – bezpieczeństwo

Bezpieczeństwoautentykacja (Authentication)

serwerówzapytania do kontrolerów domeny i serwerów MSMQ (Kerberos V5, certyfikaty dla MSMQ 1.0)

wiadomościszyfrowanie (Encryption) 40-bit, 128-bit

(MSMQ 3.0), asymetryczne, symetrycznetylko w czasie transmisji sieciowej

autoryzacja (Access Control)

Page 14: Message Queuing (MSMQ)

MSMQ – Queued Components

Queued ComponentsServiced Component (COM+ Services)

GAC, Server, regsvsc.exeasynchronicznyzdalny transakcyjnycallbacks, exceptions, COM+ events

Page 15: Message Queuing (MSMQ)

MSMQ - Triggers

Triggers reguły (Rules)

reguły wywoływania akcji (Rule Condition)akcje (Rule Action) – wywołania COM lub EXE

pułapki (Triggers)monitorowana kolejkaaktywne reguły

dla MS Windows 2000/NT dostępne jako osobno instalowany pakiet

Page 16: Message Queuing (MSMQ)

MSMQ – aspekty wydajności

express / recoverable mode używaj wielowątkowości bez transakcji / transakcje wewnętrzne /

transakcje zewnętrzne minimalizuj otwieranie i zamykanie kolejek autentykacja i szyfrowanie optymalizuj nagłówek wiadomości (Sender SID

tylko jeśli używasz autentykacji) potwierdzenia (acknowledgment) journalling (recoverable mode!)

Page 17: Message Queuing (MSMQ)

MSMQ – aspekty wydajności (c.d.)

optymalizacja fizycznych dysków (storage) odbieraj wiadomości tylko lokalnie unikaj zapytań do MQIS implementuj TTRQ i TTBR stosuj odpowiednią serializację odpowiednio dobierz kontekst użytkownika

(security context) pamiętaj o wielkości liter testuj aplikację z pełnym restartem i offline

Page 18: Message Queuing (MSMQ)

MSMQ – co jeszcze?

RoutingInternet Messaging (SRMP)Clusters, NLBCross-platform Messaging

Page 19: Message Queuing (MSMQ)

Bibliografia

MS Windows Server 2003 MS Help MSDN: http://msdn.microsoft.com/msmq/

artykuły techniczne, optymalizacja, testy wydajności

Grupy dyskusyjnemicrosoft.public.msmq.programming i inne

MS Visual Studio .Net Documentation MSMQ Administrator’s Guide (MS Windows 2000 online

documentation) http://www.informit.com/

artykuły, „Queued Components”

Visual Basic Programmer’s Guide to the .Net Framework Class Library, SAMS

Page 20: Message Queuing (MSMQ)

Miłych kolejek!