Presentation is loading. Please wait.

Presentation is loading. Please wait.

New Features of Message Queuing in Windows.NET Server 2003 Shai Kariv Program Manager MSMQ Microsoft Corporation.

Similar presentations


Presentation on theme: "New Features of Message Queuing in Windows.NET Server 2003 Shai Kariv Program Manager MSMQ Microsoft Corporation."— Presentation transcript:

1

2 New Features of Message Queuing in Windows.NET Server 2003 Shai Kariv Program Manager MSMQ Microsoft Corporation

3 Before We Start… Win06: Tips & Tricks, later today! Win06: Tips & Tricks, later today! MSMQ background: MSMQ background: MSMQ 1.0 in Windows NT 4.0 MSMQ 1.0 in Windows NT 4.0 MSMQ 2.0 in Windows 2000 MSMQ 2.0 in Windows 2000 Platform integration: AD, Clustering, MMC Platform integration: AD, Clustering, MMC Add-on services like Triggers Add-on services like Triggers MSMQ 3.0 in XP and.NET Server 2003 MSMQ 3.0 in XP and.NET Server 2003 Internet messaging Internet messaging 1-to-many messaging 1-to-many messaging Integrating Triggers, extending Admin API Integrating Triggers, extending Admin API System.Messaging System.Messaging

4 Agenda Reliable 1-N Messaging Reliable 1-N Messaging Distribution Lists Distribution Lists Reliable Multicast Reliable Multicast Reliable Internet Messaging Reliable Internet Messaging Messaging Over SOAP/HTTP Messaging Over SOAP/HTTP Firewalls and Load Balancing Firewalls and Load Balancing Admin API Admin API Deployment and Storage Deployment and Storage Triggers Triggers

5 Distribution Lists Overview Software fan-out Software fan-out Pub/Sub primitives Pub/Sub primitives End-to-end semantics for End-to-end semantics for Delivery guarantees Delivery guarantees Security Security Transactions Transactions Implementation: 1-1 internally Implementation: 1-1 internally

6 Distribution Lists Public DLs Registered in Active Directory Registered in Active Directory Leverage AD Group object Leverage AD Group object Programmable via ADSI calls Programmable via ADSI calls Manageable via AD MMC snap-ins Manageable via AD MMC snap-ins New format name: DL= New format name: DL= Elements can be other DLs Elements can be other DLs Dim dest as New MSMQDestination dest.FormatName = DL= dest.FormatName = DL= Message.Send dest

7 Distribution Lists Private DLs Client-managed DL: Client-managed DL: List of format names List of format names Including new format names: DL, HTTP Including new format names: DL, HTTP Non-discoverable Non-discoverable Dim dest as New MSMQDestination dest.FormatName = DIRECT=OS:host1\q,PRIVATE=… Message.Send dest

8 Distribution Lists Transactions Identical to queue transactions Identical to queue transactions Multiple transactions to same DL: In- Order delivery Multiple transactions to same DL: In- Order delivery If sent from the same computer If sent from the same computer No in-order guarantee for messages sent to different DLs No in-order guarantee for messages sent to different DLs Even if DLs contain the same queues Even if DLs contain the same queues

9 Distribution Lists

10 Agenda Reliable 1-N Messaging Reliable 1-N Messaging Distribution Lists Distribution Lists Reliable Multicast Reliable Multicast Reliable Internet Messaging Reliable Internet Messaging Messaging Over SOAP/HTTP Messaging Over SOAP/HTTP Firewalls and Load Balancing Firewalls and Load Balancing Admin API Admin API Deployment and Storage Deployment and Storage Triggers Triggers

11 Reliable Multicast Overview Hardware fan-out: Efficient send to multiple recipients Hardware fan-out: Efficient send to multiple recipients Expose and leverage IP multicast Expose and leverage IP multicast MSMQ provides offline, persistency MSMQ provides offline, persistency Provide building blocks for Pub/Sub Provide building blocks for Pub/Sub Scenario: real-time market data push (financial sector) Scenario: real-time market data push (financial sector) Protocol: Pragmatic General Multicast Protocol: Pragmatic General Multicast

12 Reliable Multicast PGM: Pragmatic General Multicast Joint Microsoft/Cisco effort Joint Microsoft/Cisco effort Public specification Public specification Cisco routers provide optimization Cisco routers provide optimization Reliable multicast transport Reliable multicast transport Receiver either gets all transmission and repair data Receiver either gets all transmission and repair data Or able to detect unrecoverable data loss Or able to detect unrecoverable data loss Members may join/leave at any time Members may join/leave at any time

13 PGM Data Flow PGM host sends a multicast packet Sender Receiver S R = Multicast ODATA R R R R

14 PGM Data Flow A recipient sends (unicast) NAK Unicast NAK Sender Receiver S R R R R R

15 PGM Data Flow Router multicasts NCF in LAN Sender Receiver S R = Multicast ODATA R R R R

16 PGM Data Flow Router unicasts NAK back to sender Sender Receiver S R R R R R

17 PGM Data Flow Sender multicasts repair data Sender Receiver S R = Multicast ODATA R R R R

18 Reliable Multicast Configuration and Security Receiver configuration: Receiver configuration: New queue property: MulticastAddress New queue property: MulticastAddress A queue can join one multicast group A queue can join one multicast group Sender configuration: Sender configuration: Max send rate Max send rate Max time the repair data is available Max time the repair data is available Security: Security: Existing authN/authZ (per queue) Existing authN/authZ (per queue) Encryption only at application level Encryption only at application level

19 Reliable Multicast Programming model Receiver side: Receiver side: New queue property: MulticastAddress can be set programmatically… New queue property: MulticastAddress can be set programmatically… When creating the queue or later on When creating the queue or later on Sender side: Sender side: New format name: MULTICAST= New format name: MULTICAST= No additional end-to-end semantics No additional end-to-end semantics Dim dest as New MSMQDestination dest.FormatName = MULTICAST= dest.FormatName = MULTICAST= Message.Send dest

20 Reliable Multicast

21 Agenda Reliable 1-N Messaging Reliable 1-N Messaging Distribution Lists Distribution Lists Reliable Multicast Reliable Multicast Reliable Internet Messaging Reliable Internet Messaging Messaging Over SOAP/HTTP Messaging Over SOAP/HTTP Firewalls and Load Balancing Firewalls and Load Balancing Admin API Admin API Deployment and Storage Deployment and Storage Triggers Triggers

22 Reliable Web Messaging Goals Same programming model Same programming model Use HTTP as transport Use HTTP as transport SOAP-based protocol SOAP-based protocol Secure messaging across firewalls Secure messaging across firewalls Support Network Load Balancing Support Network Load Balancing

23 Reliable Web Messaging Programming model Open queue, send message Open queue, send message Queue can be HTTP-addressed Queue can be HTTP-addressed New format name: New format name: DIRECT=HTTPS://host/MSMQ/q DIRECT=HTTPS://host/MSMQ/q Open queue, receive message Open queue, receive message New message properties leverage SOAP support New message properties leverage SOAP support SoapHeader, SoapBody SoapHeader, SoapBody SoapEnvelope, CompoundMessage SoapEnvelope, CompoundMessage

24 Reliable Web Messaging SOAP Reliable Messaging Protocol SRMP: Specification for general- purpose reliable messaging SRMP: Specification for general- purpose reliable messaging Published specification Published specification Extension of WS-Routing Extension of WS-Routing Implemented by MSMQ 3.0 Implemented by MSMQ 3.0 SOAP header is used to provide end- to-end information needed for reliable messaging SOAP header is used to provide end- to-end information needed for reliable messaging

25 SRMP Message Elements WS-Routing: path Properties Services Stream Receipts:DeliveryCommitmentStream SOAPBody Security SOAPHeader SOAP Body

26 SRMP Path, Propeties MSMQ:Message MSMQ:Message T T T T

27 SRMP Services

28 SRMP Streams uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6 uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d6 uuid:84b9f5d0-33fb-4a81-b02b-5b760641c1d

29 SRMP Extensibility MSMQ support for extensibility MSMQ creates the SRMP elements MSMQ creates the SRMP elements When destination format name is URL When destination format name is URL Receive-side applications can access the message as XML document Receive-side applications can access the message as XML document SoapEnvelope, CompoundMessage SoapEnvelope, CompoundMessage Send-side applications can extend the SOAP message Send-side applications can extend the SOAP message SoapHeader, SoapBody SoapHeader, SoapBody

30 Internet Messaging / SRMP

31 Reliable Web Messaging Redirecting SRMP messages HTTP requests can be redirected HTTP requests can be redirected SRMP must support redirection SRMP must support redirection Redirecting SRMP messages requires store and forward Redirecting SRMP messages requires store and forward MSMQ 3.0 supports store, redirect and forward MSMQ 3.0 supports store, redirect and forward Using XML files for mapping Using XML files for mapping Message content does not change Message content does not change

32 Reliable Web Messaging Mapping file External (known) name of the destination External (known) name of the destination Local resolution for the destination Local resolution for the destination https://z.com/msmq/orders https://z.com/msmq/orders https://server1/msmq/q1 https://server1/msmq/q1

33 Reliable Web Messaging Routing SRMP messages Enterprise: MSMQ uses Active Directory for dynamic routing Enterprise: MSMQ uses Active Directory for dynamic routing MSMQ does not use Active Directory to resolve DIRECT format name MSMQ does not use Active Directory to resolve DIRECT format name Redirect mapping allows connectionless SRMP messaging Redirect mapping allows connectionless SRMP messaging Useful for workgroup mode as well Useful for workgroup mode as well Receiver Sender MSMQ host Mapping table

34 Internet Messaging / Mapping

35 Agenda Reliable 1-N Messaging Reliable 1-N Messaging Distribution Lists Distribution Lists Reliable Multicast Reliable Multicast Reliable Internet Messaging Reliable Internet Messaging Messaging Over SOAP/HTTP Messaging Over SOAP/HTTP Firewalls and Load Balancing Firewalls and Load Balancing Admin API Admin API Deployment and Storage Deployment and Storage Triggers Triggers

36 Secure Web Messaging Requirements Do not allow direct TCP sessions from Internet to Intranet Do not allow direct TCP sessions from Internet to Intranet Do not expose names of internal resources: computers, queues Do not expose names of internal resources: computers, queues Do not store sensitive data on computers in the DMZ Do not store sensitive data on computers in the DMZ Do not forward unauthenticated messages from DMZ to Intranet Do not forward unauthenticated messages from DMZ to Intranet

37 Secure Web Messaging Topology Internet DMZ Firewall Firewall HTTP Proxy MSMQ Server https://my_company.com/orders Authenticate Map Store Forward https://ic/msmq/InQueue https://your_company.com/acks Intranet MSMQ Client

38 Reliable Web Messaging NLB Overview Network load balancing solutions: Network load balancing solutions: Hardware (e.g. Cisco LocalDirector) Hardware (e.g. Cisco LocalDirector) DNS round-robin DNS round-robin Windows Network Load Balancing Windows Network Load Balancing NLB assumes state-less services NLB assumes state-less services Seamless for low QoS messaging apps Seamless for low QoS messaging apps Special solution required for high QoS messaging apps Special solution required for high QoS messaging apps

39 Reliable Web Messaging NLB: Low QoS messaging NLB Node1My_MSMQ_App Node2My_MSMQ_App Node3My_MSMQ_App NLB Cluster DIRECT=HTTP://NLB_URL/MSMQ/q1 or or DIRECT=TCP: \q1 (works also on Windows 2000)

40 Reliable Web Messaging NLB: High QoS messaging NLB NLB Cluster MSMQ Client1 App_inqueue MSMQ Client2 App_orders Node1Q1->client1\q1Q2->client2\q9 Node2Q1->client1\q1Q2->client2\q9 Node3Q1->client1\q1Q2->client2\q9

41 Agenda Reliable 1-N Messaging Reliable 1-N Messaging Distribution Lists Distribution Lists Reliable Multicast Reliable Multicast Reliable Internet Messaging Reliable Internet Messaging Messaging Over SOAP/HTTP Messaging Over SOAP/HTTP Firewalls and Load Balancing Firewalls and Load Balancing Admin API Admin API Deployment and Storage Deployment and Storage Triggers Triggers

42 Admin API Overview Programmable control of MSMQ objects: Programmable control of MSMQ objects: MSMQ service MSMQ service Application queues Application queues Internal transmission queues Internal transmission queues Local and remote Local and remote COM object model COM object model Add-on available for MSMQ 2.0 Add-on available for MSMQ 2.0

43 Admin API Extension to existing objects MSMQApplication extensions includes: MSMQApplication extensions includes: ActiveQueues ActiveQueues PrivateQueues PrivateQueues DirectoryServiceServer DirectoryServiceServer IsConnected IsConnected UsedQuota UsedQuota Connect Connect Disconnect Disconnect Machine (can manage remote hosts) Machine (can manage remote hosts) MSMQQueue extension: MSMQQueue extension: Purge Purge

44 Admin API New objects MSMQManagement: base class for outgoing and target queues MSMQManagement: base class for outgoing and target queues Machine Machine FormatName FormatName MessageCount MessageCount QueueType (private, public, …) QueueType (private, public, …) MSMQOutgoingQueueManagement MSMQOutgoingQueueManagement NextHops (routing info) NextHops (routing info) EodGetSendInfo (transaction info) EodGetSendInfo (transaction info) EodResend (transactional protocol) EodResend (transactional protocol) Pause Pause Resume Resume MSMQQueueManagement MSMQQueueManagement UsedQuota UsedQuota EodGetReceiveInfo (transaction info) EodGetReceiveInfo (transaction info)

45 Admin API Code example Pause an outgoing queue on RemoteMachine, inspect its content and resume it. Pause an outgoing queue on RemoteMachine, inspect its content and resume it. Dim qmgmt as New MSMQManagement qmgmt.Init Machine:=RemoteMachine, PathName:=TargetMachine\q PathName:=TargetMachine\q Dim outqmgmt as MSMQOutgoingQueueManagement Set outqmgmt = qmgmt outqmgmt.Pause MsgBox messages in q: & outqmgmt.MessageCount outqmgmt.Resume

46 Agenda Reliable 1-N Messaging Reliable 1-N Messaging Distribution Lists Distribution Lists Reliable Multicast Reliable Multicast Reliable Internet Messaging Reliable Internet Messaging Messaging Over SOAP/HTTP Messaging Over SOAP/HTTP Firewalls and Load Balancing Firewalls and Load Balancing Admin API Admin API Deployment and Storage Deployment and Storage Triggers Triggers

47 Storage & Deployment Enterprise deployment Simplify MSMQ requirements in Active Directory environment: Simplify MSMQ requirements in Active Directory environment: No MSMQ servers on domain controllers No MSMQ servers on domain controllers MSMQ clients access Active Directory directly via LDAP MSMQ clients access Active Directory directly via LDAP Old requirements still apply for NT 4.0 and Windows 2000 clients Old requirements still apply for NT 4.0 and Windows 2000 clients

48 Storage & Deployment No deployment on DC Sender Recipient MSMQ AnyDomainController Existence & AuthenticationOpen queue on recipient for send

49 Storage & Deployment Unlimited storage Problem: MSMQ 1.0/2.0 message store: 2 GB limitation Problem: MSMQ 1.0/2.0 message store: 2 GB limitation Win64 doesnt solve Win64 doesnt solve Goal: lift the 2 GB limit Goal: lift the 2 GB limit Implementation: Extend the current MSMQ proprietary message store Implementation: Extend the current MSMQ proprietary message store Non-goal: Solve the 4 MB message size limit Non-goal: Solve the 4 MB message size limit

50 Agenda Reliable 1-N Messaging Reliable 1-N Messaging Distribution Lists Distribution Lists Reliable Multicast Reliable Multicast Reliable Internet Messaging Reliable Internet Messaging Messaging Over SOAP/HTTP Messaging Over SOAP/HTTP Firewalls and Load Balancing Firewalls and Load Balancing Admin API Admin API Deployment and Storage Deployment and Storage Triggers Triggers

51 Triggers Overview Problem: Generic queue listener code is frequently rewritten Problem: Generic queue listener code is frequently rewritten Solution: Solution: High performance, built-in, 24x7 listener service to invoke components on message arrival High performance, built-in, 24x7 listener service to invoke components on message arrival Invokes EXEs or COM components Invokes EXEs or COM components.NET components need to be wrapped as COM components.NET components need to be wrapped as COM components No need to call MSMQ API No need to call MSMQ API

52 Triggers New features Integrated setup Integrated setup Integrated administration Integrated administration Integrated clustering model (active/active) Integrated clustering model (active/active) Message retrieval: Message retrieval: Peek Peek Receive Receive Transactional receive Transactional receive

53 Triggers

54 More Information… Win06: Tips & Tricks, later today! Win06: Tips & Tricks, later today! MSMQ web site: MSMQ web site: MSDN MSDN Call-To-Action: Check out System.Messaging in the.NET Framework SDK Call-To-Action: Check out System.Messaging in the.NET Framework SDK

55 © 2002 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.


Download ppt "New Features of Message Queuing in Windows.NET Server 2003 Shai Kariv Program Manager MSMQ Microsoft Corporation."

Similar presentations


Ads by Google