Marcel Gnoth, NTeam GmbH Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

45
Marcel Gnoth, NTeam GmbH www.gnoth.net Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Transcript of Marcel Gnoth, NTeam GmbH Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Page 1: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Neues in MSMQ 3.0

Wie geht es weiter in der nachrichtenbasierten Welt?

Page 2: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Zur Person

• Dipl. Inf. Marcel Gnoth, MCSD– www.gnoth.net

• NTeam GmbH, Berlin– www.nteam.de– Leiter Softwareentwicklung– MS Gold Partner Busines Intelligence, Information Worker,

Advanced Infrastructur

• Autor dotnetpro und dotnet-magazin• Trainer (u.a. SPC Berlin, www.spc.de )• Themen

– VB6, COM– Datenbanken, Yukon– Verteilte Informationssysteme mit .Net– Office System 2003 Integration

– Reisen in ferne Länder: www.gnoth.net/reise.htm

Page 3: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Agenda

• Einleitung MSMQ• Neues in Version 3• Trigger• HTTP• Multiple Destination Delivery• …• MSMQ und Indigo – wie geht es weiter …?

– Indigo …? – SQL-Service Broker …?

• Fazit

Page 4: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Einleitung

Page 5: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Message Queueing

• Briefe zwischen Computern versenden

Queue Manager

Queue

Message

Message

Message

Queue

Message

Message

Message

Message

Queue Manager

Queue

Message

Message

Queue

Message

Message

Message

Message

Message

Message

Page 6: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Einführung Konzepte

• Asynchrone Abarbeitung von Aufgaben– Empfänger oder Sender kann Offline sein– Nachrichten werden zwischengepuffert

• Aktiver Austausch von Informationen – zwischen Programmen / Computern– Pushen der Infos

• Workflows

• Offline

Page 7: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Einleitung / Basics

• Bestandteil des Win2k / WinXP Setup– Nicht Standardinstallation

• Active Directory– Ohne AD->

Workgroup Modus, nur Private Queues

• Computerverwaltung– SnapIn

• VS.net Integration– Server Explorer

Page 8: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Öffnen einer Queue

• MessageQueue.Create (Path As String)• New MessageQueue (Path As String)• MessageQueue.Exists (Path As String)

Imports System.MessagingPrivate WithEvents m_JobQueue As MessageQueueSub Test() m_JobQueue = New MessageQueue _ ("Gengar\Private$\Jobs")End Sub

Dim mqs As MessageQueue() = _ MessageQueue.GetPrivateQueuesByMachine("Gengar")

Page 9: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Öffnen mit FormatName

• Offline Mode, ohne MQIS• Schnellste und flexibelste Methode

FormatName:Public=5A5F7535-AE9A-41d4-935C-845C2AFF7112

FormatName:DIRECT=SPX:NetworkNumber;HostNumber\QueueName FormatName:DIRECT=TCP:IPAddress\QueueName

FormatName:DIRECT=HTTP://MSMQComputer/msmq/MyPublicQueueFormatName:DIRECT=HTTPS://MSMQComputer/msmq/MyPublicQueue

FormatName:DIRECT=OS:MachineName\QueueName FormatName:DIRECT=OS:MachineName\Private$\QueueName

Dim myQueue As New MessageQueue _ ("FormatName:DIRECT=OS:Gengar\private$\Jobs")

Page 10: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Senden einer Nachricht

• Queue öffnen• Send Methode mit einem Objekt aufrufen

– Objekt wird serialisiert <Serializable()> Public Class Job

– XML ist Standardformat– z.B. DataSets verschicken

– Eigenes Message – Objekt verwenden• Konfiguration vieler Parameter

msgQ.Send(myObject, "Message Label")

Page 11: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Nachricht empfangen

• Receive

• BeginReceive– Asynchrones Empfangen

Dim msg As Message = mqResults.Receive()

mqResults.BeginReceive()

Private Sub mqResults_ReceiveCompleted(..., _ ByVal e As ...ReceiveCompletedEventArgs) _ Handles mqResults.ReceiveCompleted Dim myMsg As System.Messaging.Message myMsg = e.MessageEnd Sub

Page 12: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Eigenschaften

• Offline fähig• Journal • Timeouts• Acknowledgements• Transaktionen

– Interne und DTC

Page 13: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

MENU Neues in MSMQ 3.0

Messaging entwickelt sich weiter

Page 14: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Neue Feature in MSMQ 3.0

• Nachrichtentransport über HTTP– Ich sage nur Port 80 … – SOAP Extensions for Reliable Messaging – Load Balancing, Webfarms

• Trigger– Jetzt Bestandteil von MSMQ 3.0

• Nachrichten an mehrere Empfänger senden– Publisher / Subscriber– Real-Time Messaging Multicast , Distribution Lists

• Message lookup– Suchen nach Nachrichten ohne Cursur mit einer 64-bit

lookup ID , schnellster Zugriff

• Liste:http://www.microsoft.com/windows2000/technologies/communications/msmq/30features.asp

Page 15: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Verbesserte Features in MSMQ 3.0

• AD Integration– Konfiguration im AD– Clients verwenden LDAP

• MMC Support• Workgroup Mode Support• Cluster Support• CE Support

• MSMQ Nachrichtenspeicher jetzt (theoretisch) 1TB• Schnellerer Neustart, auch wenn große persistente

Nachrichten vorliegen

Page 16: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Programmierschnittstelle für die Verwaltung

• Statistiken über Messages• Überwachen des MSMQ hop-to-hop transactional

messaging Protokols• Überwachen und steuern des MSMQ Dienstes• Pause und Start für Queues• Nachverfolgung von MSMQ Nachrchten

von der Quelle bis zum Ziel

• Viele Funktionen nur als COM- oder C-Schnittstelle– Nicht alles über .Net Framework verfügbar

Page 17: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

HTTP Transport über das Internet

Wer braucht schon Webservices

Page 18: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Einleitung MSMQ + HTTP

• Transport über http, https + SOAP• http Unterstützung muß beim Setup ausgewählt

werden, IIS auf dem Empfänger!• Neues virtuelles Verzeichnis wird angelegt

http://localhost/msmq/

• Nur senden, kein Lesen von remote queues– Gleiche Limitation haben Webservices

• SOAP Header kann ausgelesen werdenDim s As String = String.Format _ ("FormatName:Direct=http://{0}/msmq/Private$/{1}", strCom, strQue)

Dim mq As MessageQueue = New MessageQueue(s)

mq.Send(txtBody.Text, txtLabel.Text)

“FormatName:Direct=http://CHIHIRO/msmq/Private$/httptest”

Dim s As String = String.Format _ ("FormatName:Direct=http://{0}/msmq/Private$/{1}", strCom, strQue)

Dim mq As MessageQueue = New MessageQueue(s)

mq.Send(txtBody.Text, txtLabel.Text)

“FormatName:Direct=http://CHIHIRO/msmq/Private$/httptest”

Page 19: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Hardened MSMQ mode

• MSMQ “lauscht” nicht direkt an irgendwelchen Ports• Akzeptiert nur Nachrichten über IIS• Alle augehenden Queues, die nicht über HTTP gehen

sind gesperrt– Nachrichten können plaziert werden, werden aber nicht

gesendet, bis der hardened Mode aufgehoben ist

Page 20: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Demo

Senden über HTTP

Page 21: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Trigger

Aktionen beim Eintreffen von Nachrichten auslösen

Page 22: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Was sind Trigger?

• Windows Dienst (mqtgsvc.exe)• Verwendet Regeln• Aktion

– COM Komponente– (.net) Exe

• Parameterübergabe

Page 23: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Trigger Objekte

• Trigger– kann mehrere Rules enthalten

• Condition– Eigenschaften der Nachricht werden beim Eintreffen geprüft– Mehrere Kombinationen möglich

• Action– Eine Exe oder eine COM-Komponente– Parameterübergabe kann definiert werden

• Rule– Paar von Condition und Action

Page 24: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Trigger neu anlegen

• Über Computerverwaltung• Triggers Admin Utility for MSMQ

Page 25: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Demo

Trigger

Page 26: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Multiple Destinations

Senden einer Nachricht an mehrere Empfänger

Page 27: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Multiple Destinations

• Wege– Distribution Lists – Multiple-Element Format Names – Multicast Addresses

• Jede Nachrichtenkopie hat die gleiche ID• Kein Tracing• Keine AcknowledgeMessages• Kein .Net API, COM oder C• Es kann eine Liste von ResponseQueues mitgegeben

werden– MSMQMessage.ResponseDestination , MSMQDestination

Page 28: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Senden über Distribution Lists

• Listen im Active Directory• Public Queues, Queue Aliases,

andere Distribution Lists

Private Sub SendingToDL(ByVal strADsPathDL As String) ' Declare Message Queuing objects. Dim dest As New MSMQDestination Dim msg As New MSMQMessage ' Obtain an MSMQDestination object. dest.ADsPath = strADsPathDL On Error GoTo ErrorHandler msg.Label = "Test Message“ msg.Send(DestinationQueue:=dest) dest.close() Exit SubErrorHandler: MsgBox(Err.Description End Sub

Private Sub SendingToDL(ByVal strADsPathDL As String) ' Declare Message Queuing objects. Dim dest As New MSMQDestination Dim msg As New MSMQMessage ' Obtain an MSMQDestination object. dest.ADsPath = strADsPathDL On Error GoTo ErrorHandler msg.Label = "Test Message“ msg.Send(DestinationQueue:=dest) dest.close() Exit SubErrorHandler: MsgBox(Err.Description End Sub

Page 29: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Senden über Multiple Element Format Names

• Private Listen mit Warteschlangen• Kombination aus beliebigen Direct-Formatnames

– Mehrere FormatNames werden duch Kommata getrennt verknüpft

' Create multiple-element format name.strFormatName1 = "DIRECT=OS:" & "Chihiro" & "\private$\" & "Gengar“strFormatName2 = "Direct=http://Chihiro/msmq/Private$/Enton“strFormatName3 = "Direct=http://192.168.0.5/msmq/Private$/Bisasam“strFormatName4 = "DIRECT=TCP:" & "192.168.0.5" & "\private$\" & "Onix“strMultipleElement = strFormatName1 & "," & strFormatName2 & "," & _ strFormatName3 & "," & strFormatName4

'Set format name of MSMQDestination object.dest.FormatName = strMultipleElement' Set the message label.msg.Label = "Test Message MultElFormNam - " + Now.ToShortTimeString' Send the message and close the MSMQDestination object.msg.Send(DestinationQueue:=dest)dest.Close()

' Create multiple-element format name.strFormatName1 = "DIRECT=OS:" & "Chihiro" & "\private$\" & "Gengar“strFormatName2 = "Direct=http://Chihiro/msmq/Private$/Enton“strFormatName3 = "Direct=http://192.168.0.5/msmq/Private$/Bisasam“strFormatName4 = "DIRECT=TCP:" & "192.168.0.5" & "\private$\" & "Onix“strMultipleElement = strFormatName1 & "," & strFormatName2 & "," & _ strFormatName3 & "," & strFormatName4

'Set format name of MSMQDestination object.dest.FormatName = strMultipleElement' Set the message label.msg.Label = "Test Message MultElFormNam - " + Now.ToShortTimeString' Send the message and close the MSMQDestination object.msg.Send(DestinationQueue:=dest)dest.Close()

Page 30: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Senden über Multicast Adressen

• Eine Multicastausgangsqueue• Multicast Session über TCP Transport • MSMQQueueInfo.MulticastAddress

– class D range (224.0.0.0 to 239.255.255.255 )– Zum Erzeugen einer

Multicastadresse für eine Queue– MSMQQueueInfo.Update aufrufen

um Änderung zu speichern

• Keine transaktionalenNachrichten

• Pragmatic General Multicast(PGM) Protokol

Page 31: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Mulitcast – Code Beispiel

Const MULTI_CAST_ADR As String = "234.1.1.1:4455“Const qiDest1 As String = "Chihiro\private$\Gengar“Const qiDest2 As String = "Chihiro\private$\Enton“

qi = New MSMQ.MSMQQueueInfoqi.PathName = qiDest1qi.Refresh()qi.MulticastAddress = MULTI_CAST_ADRqi.Update()

qi = New MSMQ.MSMQQueueInfoqi.PathName = qiDest2qi.Refresh()qi.MulticastAddress = MULTI_CAST_ADRqi.Update()

Dim dest As New MSMQ.MSMQDestinationDim msg As New MSMQ.MSMQMessage

dest.FormatName = "MULTICAST=" + MULTI_CAST_ADRmsg.Label = "Test Message Multicast Adr - " + Now.ToShortTimeStringmsg.Send(DestinationQueue:=dest)dest.Close()

Const MULTI_CAST_ADR As String = "234.1.1.1:4455“Const qiDest1 As String = "Chihiro\private$\Gengar“Const qiDest2 As String = "Chihiro\private$\Enton“

qi = New MSMQ.MSMQQueueInfoqi.PathName = qiDest1qi.Refresh()qi.MulticastAddress = MULTI_CAST_ADRqi.Update()

qi = New MSMQ.MSMQQueueInfoqi.PathName = qiDest2qi.Refresh()qi.MulticastAddress = MULTI_CAST_ADRqi.Update()

Dim dest As New MSMQ.MSMQDestinationDim msg As New MSMQ.MSMQMessage

dest.FormatName = "MULTICAST=" + MULTI_CAST_ADRmsg.Label = "Test Message Multicast Adr - " + Now.ToShortTimeStringmsg.Send(DestinationQueue:=dest)dest.Close()

Page 32: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Demo

Multiple Destinations

Page 33: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Best Practices

• Lesen von remote Queues vermeiden– MSMQ ist für remote Senden und lokales Lesen designed

• Zugriffe aufs AD vermeiden• Lieber Private als Public Queues• Verwenden Sie Time Outs• Berücksichtigen Sie die Grenzen der asynchronous

notification• Setzen Sie Transaktionen mit Bedacht ein• Verwenden Sie ACKs oder NAKs

Page 34: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Indigo in der Zukunft

• Nächste Windowsversion Longhorn ca. 2007– WinFS– Avalon (GUI)– Indigo (Kommunikation)

• Indigo soll die verschiedenen Kommunikationstechnologien zusammenführen, nicht abschaffen– DCOM, MSMQ, WS, Remoting, Enterprise Services (COM+)

• Dienstorientierte Architektur (SOA) steht im Vordergrund

Page 35: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Base Operating System Services CLR

Transactions Storage

Protocols

Network Services

Kernel M

ode

Base Class LibrariesBase Class Libraries

Memory ManagerMemory Manager

Hosting LayerHosting Layer

Code ExecutionCode Execution LoaderLoader SecuritySecurity SerializationSerialization

LightweightTransactionsLightweightTransactions

TransactionCoordinatorTransactionCoordinator

KernelTransactionManager

KernelTransactionManager

LoggingServiceLoggingService

KernelKernel

Hardware Abstraction LayerHardware Abstraction Layer

ProcessManagerProcessManager

SecurityReference Monitor

SecurityReference Monitor

LPCFacilityLPCFacility

MemoryManagerMemoryManager

PowerManagerPowerManager

ConfigManagerConfigManager

Plug andPlayPlug andPlay

TransactedNTFSTransactedNTFS

Cache ManagerCache

ManagerUniversalData Format

UniversalData Format

FilterEngineFilterEngine

TPC, UDPIPV4, IPV6TPC, UDPIPV4, IPV6 IPSECIPSEC QOSQOS HTTP

ListenerHTTPListener

Internet Connection FirewallInternet Connection Firewall

Demand Activation and Protocol HealthDemand Activation and Protocol Health

PNRPPNRP NativeWiFiNativeWiFi SIPSIP TCP

ListenerTCP Listener

UDP ListenerUDP Listener

IPC ListenerIPC Listener

Network Class LibraryNetwork Class Library

GDI/GDI+GDI/GDI+ WindowManagerWindowManager

GlobalAudio Engine

GlobalAudio Engine

DirectXGraphicsDirectXGraphics

Graphics driversGraphics drivers

DDIDDI InputManagerInputManager

AudioDriversAudioDrivers

DirectX GraphicsMini port

DirectX GraphicsMini port

RedirectorsRedirectors

SCSI/FCSCSI/FC 802.3802.3 802.11802.11 ....

Device Drivers

ManagementManagement

Presentation Data Communication

WinFS Indigo

Make the connection

Windows FormsAvalon ASP.NET

ObjectSpacesObjectSpaces

DataSetDataSet

SQL XMLSQL XML

ProvidersProviders

Fram

ework

Services Schemas

Data Model

ADO.NET

Connectivity

Synchronization(WinFS, Win32..)Synchronization(WinFS, Win32..)

InfoAgent(PreferenceRules..)InfoAgent(PreferenceRules..)

FileSystem Services(MetaDataHandlers..)FileSystem Services(MetaDataHandlers..)

CalendarCalendar MediaMedia

DocumentDocument ……

ItemsItems

RelationshipsRelationships

ExtensionsExtensionsCommunications Manager (Port)Communications Manager (Port)

Messaging Services

Transport Channels(IPC, HTTP, TCP…)Transport Channels(IPC, HTTP, TCP…)

IO ManagerIO Manager

Channels (Datagram, Reliable, Peer, …)

Channels (Datagram, Reliable, Peer, …)

Policy EnginePolicy Engine

MessageEncoderMessageEncoder

ChannelSecurityChannelSecurity

QueuingQueuing

EventingEventing

RoutingRouting

TransactionTransaction

Desktop ServicesDesktop Services

Desktop WindowManagerDesktop WindowManager

Presentation Object ManagerPresentation Object Manager

Desktop Composition EngineDesktop Composition Engine

Animation andCompositionAnimation andComposition

Media Services

Hardware RenderingHardware Rendering

MediaProcessingMediaProcessing

Capture and SourcingCapture and Sourcing

Software Renderingand SinksSoftware Renderingand Sinks

Adaptive UIEngineAdaptive UIEngine

Page/SiteCompositionPage/SiteComposition

Personalization andProfiling ServicesPersonalization andProfiling Services

Membership and Security ServicesMembership and Security Services

Designer ServicesDesigner Services

Controls Interop EngineControls Interop Engine

ControlsControls

Windows Forms

ApplicationServicesApplicationServices

Application DeploymentEngine (Click-Once)

Application DeploymentEngine (Click-Once)

PeoplePeople GroupGroup

Identity &SecuritySystem

Identity &SecuritySystem

Collaboration

People andGroupsPeople andGroups

CollaborationHistoryCollaborationHistory

Real-TimeActivitiesReal-TimeActivities

SignalingSignalingFederationFederation

System Services

FAT 16/32FAT 16/32

FilterManagerFilterManager

DistributedFile SystemDistributedFile System

Backup /RestoreBackup /Restore

File ReplicationServiceFile ReplicationService

Virtual DiskServiceVirtual DiskService

Models

ServiceServiceObjectObject T/SQLT/SQL XMLXMLDocumentDocument UIUI MediaMedia

Page 36: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Connector

Communications Manager (Port)Communications Manager (Port)

Transport Channels(IPC, HTTP, TCP…)Transport Channels(IPC, HTTP, TCP…)

Channels (Datagram, Reliable, Peer, …)Channels (Datagram, Reliable, Peer, …)

Policy EnginePolicy Engine

MessageEncoderMessageEncoder

ChannelSecurityChannelSecurity

Service Model

Hosting Environments

Instance ManagerInstance Manager

Context ManagerContext Manager

TypeIntegrationTypeIntegration

ServiceMethodsServiceMethods

DeclarativeBehaviorsDeclarativeBehaviors

TransactedMethodsTransactedMethods

ASP.NETASP.NET .container.container .exe.exe NT ServiceNT Service DllHostDllHost

Messaging Services

System Services

QueuingQueuing

RoutingRouting

EventingEventing

……

Transaction Transaction

Federation Federation

……

Indigo ArchitectureIndigo Architecture

Page 37: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Indigo Connector

• Von außen sichtbar– Services– Messages

• SOAP Nachrichten

• Intern– Ports

• URI Bezeichner

– Channels• Transportiert zwischen Ports• TCP, HTTP, ICP, MSMQ

Page 38: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

MSMQ Server Wire Interop

Client

API

MSMQ MSMQ / SRMP

API

MSMQ

Server

Web Services

MSMQ

Expose as a Web Service

MSMQ

Upgraded Upgraded

Existing Upgraded

Soap Reliable Messaging Protocol

Page 39: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

MSMQ Binary Migration Details

• Requirements– Upgrade the platform

• Avoid– Nothing: The full set of MSMQ features

will interop

• Will not be supported– Nothing: The full set of MSMQ features

will interop

Page 40: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

FAQ: What is the future of MSMQ and messaging technologies at Microsoft?

• A. The next version of MSMQ will be delivered as a component of the next version of Windows (code-named "Longhorn") and will interoperate with Indigo, the name for a collection of new programming frameworks. Indigo will be the framework of choice for building connected systems and will include powerful, reliable messaging capabilities.

• Other messaging technologies include Message Queuing (code named "MSMQ-T"), a feature in Microsoft BizTalk® Server 2004. In addition, the next version of Microsoft SQL Server™ (code-named Yukon) includes a feature called Service Broker.

Page 41: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

FAQ: What is Indigo?

• A. Windows "Longhorn" will include a new communications infrastructure built around the Web services architecture, Indigo. Indigo provides a simple, powerful framework for transacted messaging with the best possible interoperability on the Windows server platform. The Indigo framework provides a rich, extensible feature set for reliable messaging, including tight and loose coupling models, durable or volatile storage, configurable delivery guarantees, and deployment flexibility.

• For more information, see the Indigo page on the MSDN Windows "Longhorn" Developer Center Web site.

Page 42: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

FAQ: What is BizTalk Server 2004 Message Queuing?

• A. BizTalk Server 2004 includes Message Queuing, an adapter for MSMQ that enables high-performance interoperability between MSMQ applications and BizTalk Server. "Message Queuing" refers to this adapter, not a general-purpose reliable messaging technology.

• Message Queuing is used to integrate an MSMQ application with BizTalk Server 2004. For example, if an integration application uses BizTalk Server to orchestrate incoming Web services requests with an existing MSMQ application, BizTalk Server is leveraged for format and transport modification.

• For more information, see the BizTalk Server Web site.

Page 43: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

FAQ: What is the SQL Server Service Broker?

• A. SQL Server "Yukon" includes Service Broker, a feature for database developers that facilitates building queuing semantics into SQL Server "Yukon" applications. For example, Service Broker could be used for a system which coordinates data processing among multiple SQL Server "Yukon" servers such that entries in a master customer database result in queued record transfer to a branch office. Or Service Broker could be used for a database application that stores and forwards records to another "Yukon" server for processing.

• For more information about the SQL Server "Yukon" release, see the SQL Server 2005 Web site. For information about specific features, including Service Broker, see An Overview of SQL Server "Yukon" for the Database Developer.

Page 44: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Links

• Artikel auf www.gnoth.nethttp://www.gnoth.net/Job/Publikationen.htm

• Send MSMQ Messages Securely Across the Internet with HTTP and SOAP

http://msdn.microsoft.com/msdnmag/issues/03/12/MSMQandNET/default.aspx

• Newsgroups auf nntp://msnews.microsoft.com

Page 45: Marcel Gnoth, NTeam GmbH  Neues in MSMQ 3.0 Wie geht es weiter in der nachrichtenbasierten Welt?

Marcel Gnoth, NTeam GmbH www.gnoth.net

Alles wird gut

Uff...Uff...