Vorteile der Verarbeitung in Warteschlangen
Beim Entwerfen neuer Anwendungen müssen Entwickler die Auswirkungen der Codierung von Komponenten auf die (synchrone) Verarbeitung in Echtzeit im Vergleich zur (asynchronen) Verarbeitung in der Warteschlange berücksichtigen. Die Auswahl hängt von den Anforderungen der jeweiligen Anwendung ab, die von der zugrunde liegenden Geschäftslogik bestimmt werden. Als Richtlinie bietet die Verarbeitung in der Warteschlange die folgenden Vorteile gegenüber der Echtzeitverarbeitung:
- Geringere Abhängigkeit von der Komponentenverfügbarkeit
- Kürzere Komponentenlebensdauern
- Unterbrechungsfreie Produktivität bei verwendung getrennter Anwendungen
- Zuverlässigkeit von Nachrichten
- Effiziente Serverplanung
Komponentenverfügbarkeit
Wenn in einer Echtzeitverarbeitungsanwendung nur eine Komponente der Transaktion nicht verfügbar ist – möglicherweise aufgrund von Serverüberlastung oder Netzwerkproblemen –, wird der gesamte Prozess blockiert und kann nicht abgeschlossen werden. Im Gegensatz dazu unterteilt eine Anwendung, die den COM+-Komponentendienst in der Warteschlange verwendet, die Transaktion in Aktivitäten, die jetzt abgeschlossen werden müssen, und aktivitäten, die zu einem späteren Zeitpunkt abgeschlossen werden können. Beispielsweise können Nachrichten für die spätere Verarbeitung in die Warteschlange eingereiht werden, sodass die anfordernde Komponente für andere Aufgaben frei ist.
Komponentenlebensdauern
Eine Anwendung, die den Komponentendienst in der Warteschlange verwendet, ermöglicht es der Serverkomponente, unabhängig vom Client zu arbeiten. Dadurch können Serverkomponenten schneller abgeschlossen werden. In einem Echtzeitsystem ist die Serverkomponente von der Erstellung bis zur endgültigen Freigabe des Objekts vorhanden. Der Server wartet darauf, dass der Client Methodenaufrufe durchführt und Ergebnisse zurückgegeben werden, was die schnelle Zyklen von Serverobjekten negiert und die Serverskalierbarkeit einschränkt.
Getrennte Anwendungen
Die zunehmende Verwendung von Laptops, Notebooks und Palmcomputern hat einen Bedarf für Anwendungen geschaffen, die gelegentlich nicht verbundene Clients oder mobile Benutzer bedienen. In einem System in der Warteschlange können diese Benutzer in einem nicht verbundenen Szenario oder bei nicht verbundener Verbindung mit dem Server weiterhin arbeiten und später eine Verbindung mit den Datenbanken oder Servern herstellen, um ihre Anforderungen zu verarbeiten. Beispielsweise kann ein Vertriebsmitarbeiter Bestellungen von Kunden entgegennehmen und später eine Verbindung mit der Versandabteilung herstellen, um diese Bestellungen zu verarbeiten.
Wenn Sie über eine Komponente verfügen, die entweder verbunden oder getrennt ausgeführt werden kann, werden Nachrichten in eine Richtung verschoben, und es ist selten erforderlich, hin und her zu wechseln. Beispielsweise empfängt die Versandkomponente im Auftragsaufnahmeszenario die Nachricht und verarbeitet sie. Es kann eine andere Komponente für die Abrechnung oder Überwachung generieren. Der Client führt einen Commit aus, bevor der Server überhaupt gestartet wird. Die Nachricht wird erst gesendet, wenn die Anwendung einen Commit ausgeführt hat.
Die folgende Abbildung zeigt den Informationsfluss in einem nicht verbundenen Szenario.
Zuverlässigkeit von Nachrichten
Message Queuing ist ein leistungsstarkes Tool, das Datenbanktechniken verwendet, um Daten auf robuste Weise zu schützen. Im Falle eines Serverausfalls stellt Message Queuing sicher, dass Transaktionen zurückgesetzt werden, damit Nachrichten nicht verloren gehen und Daten nicht beschädigt werden.
Serverplanung
Eine Anwendung, die Komponenten in der Warteschlange verwendet, eignet sich gut für die zeitversetzte Komponentenausführung, die unkritische Arbeit auf einen Zeitraum außerhalb der Spitzenzeiten verschiebt. Dies ist das gleiche nützliche Konzept, das auf die verarbeitung im herkömmlichen Batchmodus angewendet wurde. Ähnliche Anforderungen können für die zusammenhängende Ausführung durch den Server zurückgestellt werden, anstatt dass der Server sofort auf eine Vielzahl von Anforderungen reagieren muss.