Performance
Server und Client
Die Performance ist abhängig von der Komplexität der Vorlage und der Hardware des jeweiligen Systems, auf welchem die Ausführung stattfindet.
Ein gewichtiger Unterschied bei der Performance ist die Parallelisierbarkeit mehrerer Dokumenterstellungen. Connect als Protokoll unterstützt keine Parallelisierung, d.h. ein Batch aus mehreren Dokumenten wird sequentiell abgearbeitet. Der Document Creation Server kann aber mit mehreren Connect-Aufrufen gleichzeitig umgehen.
Nachfolgend wurden die beiden Varianten – Batch und Parallelisierung bei Einzelverarbeitung – auf ihr Verhalten bei Variation der Anzahl Dokumente und Anzahl paralleler Requests untersucht. Ziel dieser Messungen ist es zu veranschaulichen wie genannte Parameter in die mittlere Verarbeitungsdauer pro Dokument einfliessen.
Für die Messungen wurde der OneOffixx Connect Client (Windows) verwendet um die Aufrufe zu simulieren. Für die Hardware wurden folgende Komponenten eingesetzt: 4x virtual XEON 5120 @ 2.20GHz, 8.0GB RAM
Die verwendeten Vorlagen enthielten den am meisten anzutreffenden Fall einer Vorlagenkonfiguration um ein möglichst alltagsnahes Beispiel nachzustellen: Dokument-Parameter, Empfängerdialog und Skripte.
Vorgehensweise
Bei wenigen Dokumenten im Batch oder wenigen parallelen Anfragen wurde die Messung aufgrund der niedrigen Werte (Gesamtverarbeitungszeit von unter zehn Sekunden) und der daraus resultierenden, starken prozentualen Abweichung mehrmals wiederholt und der ungefähre Mittelwert verwendet. Für grössere Testreihen wurde die Messung einmal durchgeführt. Die prozentuale Abweichung fällt aufgrund des erhöhten Wertebereiches (Gesamtverarbeitungszeit von mehr als fünf Minuten) weniger ins Gewicht. Konkret gemessen wurde die Zeitdifferenz zwischen dem ersten Aufruf und der letzten Antwort – Verbindungsaufbau, Übertragungsdauer etc. sind miteinbezogen.
Für die Berechnung der Zeit pro Dokument wurde die Gesamtverarbeitungszeit durch die Anzahl der generierten Dokumente dividiert. Für die Anzahl der Dokumente wurde jedes Dokument einzeln gezählt. Ein Batch-Aufruf mit 20 Dokumenten wurde also als 20 Dokumente gezählt.
Messung
Die Messungen können kleinere Abweichungen enthalten, die aufgrund des Verbindungsaufbaus mit dem Server, Zugriffen auf die Datenbank und ähnlicher netzwerkbezogener Abläufe im Verarbeitungsprozess entstanden sind. Mit der Verwendung des Mittelwertes bei kleineren Testreihen wurden diese Abweichungen weitgehend kompensiert. Bei grösseren Testreihen wurde diese Abweichung ignoriert.
Was nicht explizit gemessen wurde, ist eine Kombination aus beiden Varianten – Parallele Anfragen bei der Batch-Verabeitung. Aufgrund der beiden durchgeführten Messreihen kann aber eine Annahme über das Verhalten bei genannter Situation getätigt werden: Wird zusätzlich zu einer Batch-Verarbeitung noch eine Parallelisierung angewendet, so wird die Gesamtverarbeitungszeit sinken.
Auswertung
Performance bei Einzeldokumentverarbeitung mit parallelen Anfragen
Bei der Einzelverarbeitung wirkt sich eine Parallelisierung der Anfragen stark auf die Verarbeitungszeit aus. Pro Dokument kann fast die Hälfte der Verarbeitungszeit eingespart werden. Allerdings wirkt sich die Anzahl der parallelen Anfragen bei wachsender Anzahl nicht mehr auf die Verarbeitungsgeschwindigkeit aus – bei fünf parallelen Anfragen ist die eingesparte Zeit etwa gleich gross wie bei 100 parallelen Anfragen.
Performance bei Batch-Verarbeitung
Bei der Batch-Verarbeitung hat die Anzahl Elemente im Batch beinahe keinen Einfluss auf die Verarbeitungsgeschwindigkeit. Dies lässt sich aufgrund der sequentiellen Verarbeitung begründen.
Fazit
Es fällt auf, dass bei der Batch-Verarbeitung die mittlere Verarbeitungszeit etwas grösser ist als bei der Einzelverarbeitung. Das liegt daran, dass beim Batch die Dokumente jeweils zu einem Dokument zusammengeführt werden müssen. Das nimmt zusätzliche Zeit in Anspruch.
Wenn eine grosse Anzahl nicht zusammenhängender Dokumente über den Document Creation Server generiert werden soll, empfiehlt es sich, dies über einzelne Dokumente und parallele Anfragen zu erledigen:
- Zeiteinsparung durch Parallelisierung der Anfragen
- Einzelne Dokumente als Resultat jedes Aufrufes. Über den Batch könnte jedes einzelne Dokument mittels des SaveAs Commands an einem spezifischen Ort abgelegt werden, das Resultat der einzelnen Dokumente kann aber nicht individuell ausgewertet werden (siehe Batch-Verarbeitung).
Eine Verringerung der Verarbeitungsgeschwindigkeit über den Document Creation Server ist also genau dann möglich, wenn Anfragen parallel verarbeitet werden. Clientseitig ist die Parallelisierung nicht realisierbar und somit auch keine Performancesteigerung bei der Verarbeitung möglich.