High-End Output Management - Trivadis
High-End Output Management - Trivadis
High-End Output Management - Trivadis
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>High</strong>-<strong>End</strong> <strong>High</strong> <strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme<br />
mit Oracle und Java<br />
Markus Heinisch<br />
Software Architekt<br />
markus.heinisch@trivadis.com<br />
DOAG Konferenz, 2008<br />
Basel · Baden · Bern · Lausanne · Zürich · Düsseldorf · Frankfurt/M. · Freiburg i. Br. · Hamburg · München · Stuttgart · Wien
Agenda<br />
Daten sind<br />
immer im Spiel.<br />
<strong>Output</strong> <strong>Management</strong><br />
Architecture Blueprint<br />
TOMAS<br />
Fazit<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 2<br />
© 2008
Business Communication<br />
Business Communication<br />
Informationen aus jedem System und jeder Applikation übernehmen<br />
Auf den Adressaten zugeschnittenen Form durch beliebigen Kanal<br />
weitergeben<br />
Trends im Bereich Business Communication<br />
IInformationen f ti müssen ü personalisiert li i t werden d<br />
Papier wird digital<br />
Transaktionskosten sollen sinken<br />
Vorschriften nehmen zu<br />
Print-Industrie wird zusehends moderner und flexibler<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 3<br />
© 2008
<strong>Output</strong> <strong>Management</strong> System (OMS)<br />
<strong>Output</strong> <strong>Management</strong> bedeutet das Ausdrucken großer<br />
Mengen unterschiedlicher Druckerzeugnisse mit<br />
individualisiertem oder personalisiertem p<br />
Inhalt<br />
Erlaubt eine Kombination von Massendruck mit den<br />
PProzessen der d bbetrieblichen t i bli h IInformatik f tik<br />
Standardisierung der Produktionsprozesse vereinfacht diese<br />
Kombination<br />
Steuert Druckstraßen und Verpackungsstraßen an, um<br />
die erforderlichen Mengen zu verarbeiten<br />
Wichtige Basistechnologie ist der Digitaldruck<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 4<br />
© 2008
Hochleistungsdrucker<br />
Canon Imagepress C7000vp<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 5<br />
HP Indigo Press W7200<br />
Xerox 660/1300<br />
Continuous Feed Printer<br />
© 2008
<strong>Output</strong> <strong>Management</strong> System<br />
OMS stellt auf der Ebene der betrieblichen<br />
Informationssysteme eine Kommunikationsschicht dar<br />
Verbindet alle relevanten Kernapplikationen und<br />
Kommunikationskanäle<br />
Fl Flexible ibl ZZwischenschicht i h hi ht bbelässt lä t<br />
die betriebswirtschaftliche Logik<br />
weiterhin e te in de den Kernsystemen<br />
e syste e<br />
Änderungen der Kommunikation<br />
Keine Anpassung der Kernsysteme<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 6<br />
Kernapplikationen<br />
<strong>Output</strong> <strong>Management</strong><br />
System y<br />
Kommunikationskkanäle<br />
äl<br />
© 2008
Grundlegende Kategorien<br />
Batch Processing OMS<br />
Das OMS-System läuft immer und arbeitet alle angelieferten Daten ab,<br />
respektive erzeugt Produktionsaufträge, die beispielsweise eine Druckstraße<br />
abarbeiten kann<br />
Ab Abarbeitung b it dder eingehenden i h d DDaten t hä hängt t vom KKontext t t ab, b<br />
wie Anlieferungsabfolge, zeit- oder mengengesteuert<br />
On-Demand Processing OMS<br />
Ein Dokument wird auf Anfrage produziert und gleich ausgeliefert<br />
Klassische Beispiel ist der Kontoauszugs-Drucker der Bankfiliale<br />
Interactive Processing OMS<br />
Die Zusammenstellung des Dokuments erfolgt interaktiv. Dies bedeutet, dass<br />
ein Dokument während der Produktion durch das OMS durch den User<br />
zusammengestellt respektive dessen Aufbau abgeändert werden kann. Ein<br />
Beispiel für den Einsatz eines Interactive Processing OMS ist die interaktiv<br />
erzeugte Korrespondenz in einem Kunden Call Center<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 7<br />
© 2008
Agenda<br />
Daten sind<br />
immer im Spiel.<br />
<strong>Output</strong> <strong>Management</strong><br />
Architecture Blueprint<br />
TOMAS<br />
Fazit<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 8<br />
© 2008
<strong>Trivadis</strong> BC Architecture Blueprint<br />
Batch atc und u d OOn-Demand e a d Processing ocess g<br />
Zuverlässig<br />
KKein i DDokument k t geht ht verloren l<br />
Transaktionssicherheit<br />
Erweiterbar<br />
Anpassbar<br />
Standardbasiert<br />
Performance<br />
ERP<br />
CRM<br />
Host<br />
others<br />
Operational<br />
Systems<br />
Preprocessing<br />
Resource<br />
Managment<br />
<strong>End</strong>-To-<strong>End</strong>-Tracking<br />
SScale-out l t<br />
Processing<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 9<br />
Backend Systems<br />
<strong>Output</strong> <strong>Management</strong> System<br />
Administration<br />
Print<br />
System<br />
E-Mail<br />
Rendering<br />
Rendering<br />
Archiv<br />
Postprocessing<br />
Queuing<br />
System Database<br />
others<br />
© 2008<br />
Target<br />
Systems<br />
Input <strong>Output</strong>
Pipes&Filters<br />
Architektur ist nach dem Pipes&Filters-Prinzip aufgebaut<br />
Kommunikation via Messages-Queues<br />
Problemlose Verteilung der Teilprozesse auf einzelne Maschinen<br />
Teilprozesse in sich parallelisiert und können leicht verteilt werden<br />
NNotwendig, t di um di die hhohen h AAnforderungen f d an PPerformance f und d Sk Skalierbarkeit li b k it<br />
erfüllen zu können<br />
Preprocessing<br />
Table<br />
Payload<br />
New Set<br />
<br />
<br />
„Langzeit“-Persistenz<br />
Beliebige Abfragen<br />
Unrendered Set<br />
Unrendered<br />
Document<br />
Unrendered<br />
Documents<br />
Rendering<br />
Queues<br />
Nachricht<br />
Dokumentiert Statusübergänge<br />
Parallele Verarbeitung<br />
Workflow-bezogen<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 10<br />
Rendered Set<br />
Extracted Set<br />
Rendered<br />
Documents<br />
Point-To-Point<br />
Queue<br />
Legende<br />
Table<br />
© 2008<br />
Postprocessing
Workflow<br />
Raw Document Set<br />
Daten aus Liefersystemen<br />
Pre- und Postprocessing p g<br />
Kundenspezifisch<br />
Dokumenttypspezifisch<br />
Integration in IT-Systeme<br />
IT Systeme<br />
Rendering<br />
Vorgefertigte Komponente<br />
Anpassbar<br />
Parallelisierbar<br />
Rendered Document Set<br />
Druckbare Dokumente<br />
(Druckauftrag)<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 11<br />
© 2008
Delivery<br />
Erweiterte Ausprägung p g g des Postprocessings<br />
p g<br />
Preprocessing und Rendering sind automatisierte Prozesse<br />
Aufgaben des Deliverys werden manuell gesteuert und überwacht<br />
Typische Aufgaben<br />
Druckauftrag erstellen<br />
Ansteuerung Printsystem<br />
Aufgeschobener Druck<br />
Beilagendefinition<br />
Versandoptimierung<br />
Tracing-Markierungen<br />
DDruckfehlerlisten kf hl li t<br />
Reprint<br />
<strong>Output</strong>-Unterdrückung<br />
p g<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 12<br />
© 2008
Agenda<br />
Daten sind<br />
immer im Spiel.<br />
<strong>Output</strong> <strong>Management</strong><br />
Architecture Blueprint<br />
TOMAS<br />
Fazit<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 13<br />
© 2008
Backend-Systeme<br />
Backend Systeme<br />
Oracle Database (10g ( g & 11g) g)<br />
Oracle Advanced Queueing<br />
RDBMS und Queueing System können über die gleiche<br />
Datenbank-Connection angesprochen werden<br />
RDBMS + Queueing System in gemeinsamer Transaktion<br />
Keine verteilte Transaktionen notwendig<br />
Verwendung der Advanced Queueing API, JMS API reicht nicht<br />
Vorsicht:<br />
Lokale Transaktionen können nicht über mehrere Threads verteilt werden<br />
Asynchrone Verarbeitung bedeutet eigener Thread für die Bearbeitung der<br />
Message<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 14<br />
© 2008
Java<br />
Spring p g Framework 2.5<br />
Spring Core mit dem IOC Container<br />
Spring AOP<br />
Spring DAO mit Spring JDBC und Transaktionsmanagement<br />
JEE mit JMX, JMS und E-Mail<br />
Performance Aspekt<br />
Springs Klasse JMSTemplate nicht performant in diesem Umfeld<br />
JDBC: Kein signifikantes Domain Modell kein O/R Framework<br />
Gilt fürs Rendering<br />
Pre Pre- und Postprocessing denkbar<br />
Container: OSGi<br />
SpringSouce Application Platform<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 15<br />
© 2008
TOMAS CORE<br />
Core <strong>Output</strong> p Rendering g Engine g<br />
XML, XSL-FO und Java JAXP<br />
Ressourcen wie Templates und<br />
Bilder liegen bereit<br />
(Resouce <strong>Management</strong>)<br />
Third Party Renderer<br />
XEP von RenderX, Inc.<br />
Apache FOP<br />
Bevorzugtes g Format: PDF<br />
Alternativ: XSL-FO<br />
Transaktionsgrenzen<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 16<br />
TX Synchronizer TX Renderer<br />
© 2008
Setup Messungen<br />
Ziel:<br />
Wieviel Overhead erzeugt das Messaging System?<br />
Wo liegt die obere Verarbeitungsgrenze?<br />
Lasttests der Queue „Unrendered Document“<br />
5 Mio Dokumente<br />
Payload 100 Byte<br />
5 Mio Enqueues, 5 Mio Dequeues<br />
Database Server<br />
IBM PowerPC_POWER5<br />
4 Dual-Core CPU at 1.5 GHz<br />
27 GB RAM<br />
AIX 5.3 64-bit<br />
Oracle RDBMS 10.2.0.3<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 17<br />
New Set<br />
Unrendered Set<br />
Rendered Set<br />
Extracted Set<br />
Unrendered<br />
Document<br />
Rendered<br />
Documents<br />
Point-To-Point<br />
Queue<br />
Legende<br />
Table<br />
Unrendered<br />
Documents<br />
© 2008<br />
Preprocessing<br />
Rendering<br />
Postprocessing
Messergenisse<br />
5 Mio Enqueues<br />
Shared Queue, 3349 Mgs/sec, 1493 sec<br />
Private Queue, 3425 Mgs/sec, 1460 sec<br />
5 Mio Dequeues<br />
Shared Queue,1239 Mgs/sec, 4035 sec<br />
Private Queue, , 2833 Mgs/sec, g , 1765 sec<br />
Messaging Overhead<br />
Serialisiert ca. 53 min<br />
Wartezeit ca. 30 min<br />
Weniger g Messages, g ,<br />
weniger Overhead<br />
Bulking g von Messages g<br />
Messagee/Sekunde<br />
3500<br />
3000<br />
2500<br />
2000<br />
1500<br />
1000<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 18<br />
500<br />
0<br />
3349 3425<br />
1239<br />
2833<br />
© 2008<br />
Enqueue, shared Queue<br />
Enqueue, private Queue<br />
Dequeue Dequeue, shared Queue<br />
Dequeue, private Queue
Multi Document Message<br />
Bulking von Messages<br />
Statt<br />
1 Message == 1 Dokument<br />
1 Message == N Dokumente<br />
BBeispiel: i i l BBulking-Größe lki Göß von 10<br />
5 min 20 sec, bzw. 3 min<br />
Preprocessing<br />
Engine<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 19<br />
DB Writer<br />
Multi Document<br />
Message Creator<br />
UNRENDERED<br />
DOCUMENT<br />
Multi Document<br />
Message Splitter<br />
Unrendered<br />
DDocument t<br />
DOCUMENTS<br />
DB Reader<br />
Renderer<br />
© 2008<br />
Preprocessing<br />
Core <strong>Output</strong><br />
Rendering<br />
Engine<br />
DB Writer<br />
Rendered<br />
Document<br />
DOCUMENTS
TOMAS Performance Ziel<br />
Benchmark mindestens 70 Seiten pro Sekunde<br />
Aktuelle Drucker erreichen ca. 70 Seiten/sec, DIN A4, SW, Duplex<br />
Drucker kontinuierlich unter Last setzen<br />
page/sec<br />
90,0<br />
80,0<br />
70,0<br />
60,0 ,<br />
50,0<br />
40,0<br />
30,0<br />
20,0<br />
10,0<br />
0,0<br />
2 4 8 10 12 14 16 18 20 22 24<br />
Parallelität<br />
Test-Hardware<br />
Server: 2 Cores, 2 GB Memory, Oracle 11g<br />
Cli Clients: t 2 * (2*4 CCores, 16 GB M Memory)<br />
)<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 20<br />
© 2008
Fazit<br />
„Best practice“ p für <strong>High</strong> g Volume <strong>Output</strong> p <strong>Management</strong> g Systeme y<br />
Unterstützung für Batch und On-Demand Processing<br />
Skalierbar Skalierbar, zuverlässig zuverlässig, standardbasiert<br />
Einfache Integration in die IT Systemlandschaft des Kunden<br />
Gemessene Performance von ca. 80 Seiten/sec.<br />
Weitere Informationen<br />
Buch „Business Communication Architecture Blueprint“,<br />
Liebhart, Schmutz, Lattmann, Heinisch, Könings, Kölliker, Pakull, Welkenbach,<br />
Hanser Verlag, ISBN-10: 3-446-41703-6<br />
Vortrag „AQ Design für beste Performance“ Philipp Salvisberg<br />
Raum St. Petersburg, g<br />
16:00-16:45<br />
<strong>High</strong>-<strong>End</strong> <strong>Output</strong> <strong>Management</strong> Systeme mit Oracle und Java 21<br />
© 2008
Vielen Dank!<br />
?<br />
www.trivadis.com<br />
Basel · Baden · Bern · Lausanne · Zürich · Düsseldorf · Frankfurt/M. · Freiburg i. Br. · Hamburg · München · Stuttgart · Wien