Slides to our (Dennis Schulte and me) talk at the German Java conference W-JAX 2013 in Munich. Subject is the batch processing framework Spring Batch, general hints regarding performance in batch applications and scalability options in Spring Batch. Slides are in German.
9 Tipps für die Modernisierung von PHP-AnwendungenRalf Eggert
PHP hat mittlerweile über 20 Jahre auf dem Buckel und die Entwicklung hat in den letzten Jahren gerade mit PHP 7 und den vielen nützlichen Frameworks einen weiteren Schub bekommen. Da ist es nicht verwunderlich, dass viele langjährig gewachsene PHP Anwendungen mittlerweile ein wenig in die Jahre gekommen sind. In dieser Session erhalten Sie 9 Tipps, mit denen Sie Ihre PHP Anwendung Schritt für Schritt modernisieren können, und erfahren auch, warum ein Reworking mit stetigem Refactoring besser als ein Rewrite mit einmaligem Relaunch ist.
Middleware Anwendungen mit dem Zend Framework 3Ralf Eggert
Zend\Expressive ist das neue PSR-7 kompatible Middleware-Framework aus dem Zend Framework 3, mit dem Sie eigene Web- und REST-Anwendungen mit PHP implementieren können. In dieser Session erhalten Sie einen Überblick über die grundlegende Theorie sowie die Möglichkeiten von Zend\Expressive und erfahren auch die Unterschiede zum klassischen MVC-Ansatz.
In „Grüne Wiese“-Projekten besteht in der Phase der Teamfindung am Anfang das Risiko des Perfektionismus. Eine Projektidee ist geboren, das Team gecastet. Jetzt geht es los. Ganz oft werden erstmal Konzept und Architekturen diskutiert und irgendwann natürlich auch implementiert. Alles soll sauber gecodet und möglichst gut getestet sein (Clean Code). So kann die Umsetzung einfacher Funktionalitäten schon mal ein paar mehr Tage in Anspruch nehmen. Wenn sich das ein paar Mal häuft, hat man nach drei Monaten ein wirklich sauber entwickeltes Projekt, das aber leider dann abgeschaltet wird. Im Gegensatz dazu steht der Lean-Ansatz. Lean Programming und Lean Testing meint, dass ein MVP keine perfekte Architektur und keine hohe Testabdeckung braucht, um festzustellen, ob das Projekt funktioniert. Im Verlauf des Projekts ist es dann einfach möglich, die Teile besser zu machen, die oft gebraucht werden, und falls das Projekt gestoppt wird, hat man nicht viel Geld verbrannt.
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...DevDay Dresden
Bereits vor der Einführung von agile Methoden und DevOps war das Ziel von Entwicklungsprojekten die schnelle Bereitstellung von hochwertigen Produkten. Im Vordergrund stehen die Überlegungen zur optimalen Architektur und zum passenden Design. Die Aspekte der Qualitätssicherung kommen meist später, was sich während der Tests bemerkbar macht. In diesem Vortrag werden die Überlegungen und Erfahrungen zum design for testability angesprochen, die sinnvoll sind, um in Softwareprojekten von Beginn an eine optimale Testbarkeit gewährleisten zu können.
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)Roman Kharkovski
This document provides a competitive comparison of WebSphere Application Server (WAS) versus Tomcat, JBoss and WebLogic. It discusses each product's capabilities in areas like runtimes, API management, development tools, cloud support, and more. Gartner research is referenced showing IBM holds the #1 position in the middleware software market for the past 13 years. The document aims to help organizations choose the best application server for their needs.
This document discusses Sicoob's migration from their homegrown Java batch framework to the Java Batch standard (JSR-352) and IBM WebSphere Application Server Liberty profile. Some key points:
- Sicoob developed their own Java batch framework in 2012 but wanted to migrate as JSR-352 was finalized and for improved support.
- They worked with IBM to evaluate WebSphere Developer Tools and the Liberty profile beta for developing Java batch applications.
- A use case was developed to compare performance of their existing framework versus the new JSR-352 implementation on Liberty.
- Sicoob's batch workload included over 500k jobs daily across 16 application servers processing various financial workflows.
[ecspw2013] Session Sales 04: ecspand Eingangsrechnungsverarbeitungd.velop international
ecspand deckt vom Scannen über die Klassifizierung, der Ablage im SharePoint bis hin zur Freigabe der Dokumente und Übergabe der Daten in Ihr ERP System (Dynamics AX/NAV, SAP) den kompletten Prozess der digitalen Eingangsrechnungsverarbeitung ab.
Session im Rahmen der ecspand partnerworld 2013.
9 Tipps für die Modernisierung von PHP-AnwendungenRalf Eggert
PHP hat mittlerweile über 20 Jahre auf dem Buckel und die Entwicklung hat in den letzten Jahren gerade mit PHP 7 und den vielen nützlichen Frameworks einen weiteren Schub bekommen. Da ist es nicht verwunderlich, dass viele langjährig gewachsene PHP Anwendungen mittlerweile ein wenig in die Jahre gekommen sind. In dieser Session erhalten Sie 9 Tipps, mit denen Sie Ihre PHP Anwendung Schritt für Schritt modernisieren können, und erfahren auch, warum ein Reworking mit stetigem Refactoring besser als ein Rewrite mit einmaligem Relaunch ist.
Middleware Anwendungen mit dem Zend Framework 3Ralf Eggert
Zend\Expressive ist das neue PSR-7 kompatible Middleware-Framework aus dem Zend Framework 3, mit dem Sie eigene Web- und REST-Anwendungen mit PHP implementieren können. In dieser Session erhalten Sie einen Überblick über die grundlegende Theorie sowie die Möglichkeiten von Zend\Expressive und erfahren auch die Unterschiede zum klassischen MVC-Ansatz.
In „Grüne Wiese“-Projekten besteht in der Phase der Teamfindung am Anfang das Risiko des Perfektionismus. Eine Projektidee ist geboren, das Team gecastet. Jetzt geht es los. Ganz oft werden erstmal Konzept und Architekturen diskutiert und irgendwann natürlich auch implementiert. Alles soll sauber gecodet und möglichst gut getestet sein (Clean Code). So kann die Umsetzung einfacher Funktionalitäten schon mal ein paar mehr Tage in Anspruch nehmen. Wenn sich das ein paar Mal häuft, hat man nach drei Monaten ein wirklich sauber entwickeltes Projekt, das aber leider dann abgeschaltet wird. Im Gegensatz dazu steht der Lean-Ansatz. Lean Programming und Lean Testing meint, dass ein MVP keine perfekte Architektur und keine hohe Testabdeckung braucht, um festzustellen, ob das Projekt funktioniert. Im Verlauf des Projekts ist es dann einfach möglich, die Teile besser zu machen, die oft gebraucht werden, und falls das Projekt gestoppt wird, hat man nicht viel Geld verbrannt.
Dev Day 2019: Kay Grebenstein – Wie wir müssen das noch testen? - design for ...DevDay Dresden
Bereits vor der Einführung von agile Methoden und DevOps war das Ziel von Entwicklungsprojekten die schnelle Bereitstellung von hochwertigen Produkten. Im Vordergrund stehen die Überlegungen zur optimalen Architektur und zum passenden Design. Die Aspekte der Qualitätssicherung kommen meist später, was sich während der Tests bemerkbar macht. In diesem Vortrag werden die Überlegungen und Erfahrungen zum design for testability angesprochen, die sinnvoll sind, um in Softwareprojekten von Beginn an eine optimale Testbarkeit gewährleisten zu können.
WebSphere App Server vs JBoss vs WebLogic vs Tomcat (InterConnect 2016)Roman Kharkovski
This document provides a competitive comparison of WebSphere Application Server (WAS) versus Tomcat, JBoss and WebLogic. It discusses each product's capabilities in areas like runtimes, API management, development tools, cloud support, and more. Gartner research is referenced showing IBM holds the #1 position in the middleware software market for the past 13 years. The document aims to help organizations choose the best application server for their needs.
This document discusses Sicoob's migration from their homegrown Java batch framework to the Java Batch standard (JSR-352) and IBM WebSphere Application Server Liberty profile. Some key points:
- Sicoob developed their own Java batch framework in 2012 but wanted to migrate as JSR-352 was finalized and for improved support.
- They worked with IBM to evaluate WebSphere Developer Tools and the Liberty profile beta for developing Java batch applications.
- A use case was developed to compare performance of their existing framework versus the new JSR-352 implementation on Liberty.
- Sicoob's batch workload included over 500k jobs daily across 16 application servers processing various financial workflows.
[ecspw2013] Session Sales 04: ecspand Eingangsrechnungsverarbeitungd.velop international
ecspand deckt vom Scannen über die Klassifizierung, der Ablage im SharePoint bis hin zur Freigabe der Dokumente und Übergabe der Daten in Ihr ERP System (Dynamics AX/NAV, SAP) den kompletten Prozess der digitalen Eingangsrechnungsverarbeitung ab.
Session im Rahmen der ecspand partnerworld 2013.
Mit Performance-Modellierung Test- und Betriebskosten senkenDynatrace
In diesem Webinar, zeigt Herr Andreas Brunnert, Performance Consultant bei RETIT, in einer Live-Demo und anhand von vier Kundenszenarien wie Performance Modellierung erfolgreich in der Praxis eingesetzt werden.
Live-Webinar zur Anbindung von Produktions-Equipment mit Live-Daten an das SAP Digital Manufacturing Cloud for Execution (DMCe)
Eine intelligente Fabrik ist effizient und flexibel zugleich. Die Intelligenz einer Industrie-4.0-Produktion basiert auf Sammlung und Nutzung von Daten. Die Anbindung von Produktionsressourcen, die Live-Daten an ein MES und / oder ERP senden, ist somit eine Grundvoraussetzung für eine vernetzte Fertigung.
Viele Produktionsfunktionen bis hin zu ganzen MES wandern mittlerweile in die Cloud, um noch flexibler reagieren zu können und zukunftssicher aufgestellt zu sein. Wie funktioniert in dieser hybriden Architektur die Anbindung und Kommunikation mit Produktionsequipment in der Linie am Produktionsstandort irgendwo auf der Welt?
In dem Webinar zeigt Tim-Julian Seher, Berater und SAP DMC Produktspezialist bei Trebing + Himstedt, wie ein beispielhafter Montageprozess im Cloud MES funktioniert und wie die Anbindung und Kommunikation mit einem elektrischen Schrauber nahtlos in die Cloud integriert wird.
Interessant für Werks-, Fertigungs-, Betriebs-, Produktionsleiter, Leiter Produktions-IT, die wissen wollen, wie die MES-Migration in die Cloud gelingt.
Vortrag bei der JUG CH in Luzern. den größten Teil des Votrages hat allerdings die Live-Demo ausgemacht in der ein Prozessbeispiel von der Pike auf neu entwickelt habe. Wer das verpasst hat am besten den Getting Started Guide durchackern: http://camunda.org/get-started/developing-process-applications.html
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Mayflower GmbH
English speaking readers: please click on http://www.slideshare.net/mayflowergmbh/magento-oxid-xtcommerce-evaluation-guide-for-enterprises
Vortrag auf der E-Commerce Conference 2009 in Düsseldorf und Hamburg. Vergleich dreier populärer commercial OS Shopsysteme auf PHP Basis. Welche Kriterien sind für große Unternehmenskunden wichtig im Rahmen einer Evaluation? Der Vortrag beleuchtet u.a. Hintergründe der Herstellerfirmen, Entwicklungskriterien, Community, Performance und Dokumentation.
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
Das Dokumentieren einer API wird oft als mühsame, aber wesentliche Aufgabe angesehen. Mit OpenAPI / Swagger können wir eine API-Dokumentation angenehm einfach in ASP.NET Core integrieren. Gregor Biswanger zeigt, wie eine API-Dokumentation mit einer Benutzeroberfläche hinzugefügt wird, mit der wir die API testen können.
Als Nächstes erfahren wir, wie wir Attribute und Konventionen verwenden, um die generierte OpenAPI-Spezifikation zu verbessern. Abschließend wird gezeigt, wie wir mit der Authentifizierung, Versionierung und Anpassung der Benutzeroberfläche umgehen.
Developing Oracle Application Express on a high level you have to think about topics like issue tracking, continious delivery, automation, team management. The presentation was hold at the APEX Roadshow on 21.st of january 2014 in german language.
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
The current target architecture of IKB's credit and loan management is based on Oracle ADF and SOA and of course the database. But how can you protect in this time your Oracle Forms & Reports longtime investments, can you support their Development Lifecycle by Automation?
Many supporting technologies from the Java environment, such as branching models, automated build and deploy procedures or code review were established with the Oracle technologies and in the course of the regulatory process.
But there is still a large part of the Oracle Forms & Reports that have grown over 25 years and have not yet been replaced. Actually, we hoped that we would no longer need a version higher than 11g. Forms & Reports had been running very stably for years. A bug brought the migration to 12c back into focus to further run supported versions. The regulatory environment did the rest to revise the current processes and, where possible, to automate them.
So how do supporting technologies and automation fit in here?
I will show you a selection of these processes from IKB's development and operations life cycle:
* Installation of application server
* Regular patching
* Packaging of the local development environment
* Requirements documentation
* Branching
* Development
* Code Review
* Merge
* Deployment
* Traceability for Regulatory Purposes
The following tools are used, among others
* Jenkins
* Scripting with Bash and Powershell
* Git
* Bitbucket
* JIRA
* FormsAPI Master
Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“hpaustria
Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“
Presentation from HEROLD (www.herold.at) at the HP Ideas 2008 in Vienna/Austria.
http://www.herold.at
http://hpideas.wordpress.com
http://www.hp.com/at/ideas
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
Große Entwicklungsabteilungen stehen oft vor dem Problem einheitlicher Entwicklungsprozesse und Werkzeuge. Nach einiger Zeit hat jedes Projekt eigene Prozesse und Werkzeuge etabliert. Dies ist nicht im Sinne der Entwicklungsabteilung. Softwaresysteme müssen i. d. R. über Jahre hinweg gewartet und erweitert werden - oft von einem Team, das sich neu in die Anwendung einarbeiten muss.
Nicht selten stellt die Rekonstruktion der Entwicklungsumgebung einen erheblichen Aufwand dar.
Dieser Vortrag beschreibt - anhand eines Erfahrungsberichts - den Aufbau einer strukturierten Entwicklungsumgebung, die auch für grosse Entwicklungsabteilungen skaliert.
- Zentrale Projekt- und Codeverwaltung (ähnlich wie Sourceforge)
- Buildmanagement mit Maven
- Entwicklungswerkzeuge basierend auf Maven und Eclipse
- Installierbare Teamserver mit Virtualisierungstechnologie für Continuous Integration
Contenu connexe
Similaire à W-JAX 2013 Spring Batch - Performance und Skalierbarkeit
Mit Performance-Modellierung Test- und Betriebskosten senkenDynatrace
In diesem Webinar, zeigt Herr Andreas Brunnert, Performance Consultant bei RETIT, in einer Live-Demo und anhand von vier Kundenszenarien wie Performance Modellierung erfolgreich in der Praxis eingesetzt werden.
Live-Webinar zur Anbindung von Produktions-Equipment mit Live-Daten an das SAP Digital Manufacturing Cloud for Execution (DMCe)
Eine intelligente Fabrik ist effizient und flexibel zugleich. Die Intelligenz einer Industrie-4.0-Produktion basiert auf Sammlung und Nutzung von Daten. Die Anbindung von Produktionsressourcen, die Live-Daten an ein MES und / oder ERP senden, ist somit eine Grundvoraussetzung für eine vernetzte Fertigung.
Viele Produktionsfunktionen bis hin zu ganzen MES wandern mittlerweile in die Cloud, um noch flexibler reagieren zu können und zukunftssicher aufgestellt zu sein. Wie funktioniert in dieser hybriden Architektur die Anbindung und Kommunikation mit Produktionsequipment in der Linie am Produktionsstandort irgendwo auf der Welt?
In dem Webinar zeigt Tim-Julian Seher, Berater und SAP DMC Produktspezialist bei Trebing + Himstedt, wie ein beispielhafter Montageprozess im Cloud MES funktioniert und wie die Anbindung und Kommunikation mit einem elektrischen Schrauber nahtlos in die Cloud integriert wird.
Interessant für Werks-, Fertigungs-, Betriebs-, Produktionsleiter, Leiter Produktions-IT, die wissen wollen, wie die MES-Migration in die Cloud gelingt.
Vortrag bei der JUG CH in Luzern. den größten Teil des Votrages hat allerdings die Live-Demo ausgemacht in der ein Prozessbeispiel von der Pike auf neu entwickelt habe. Wer das verpasst hat am besten den Getting Started Guide durchackern: http://camunda.org/get-started/developing-process-applications.html
Commercial OS Shops - Magento, OXID, xt:commerce. Evaluationskriterien für En...Mayflower GmbH
English speaking readers: please click on http://www.slideshare.net/mayflowergmbh/magento-oxid-xtcommerce-evaluation-guide-for-enterprises
Vortrag auf der E-Commerce Conference 2009 in Düsseldorf und Hamburg. Vergleich dreier populärer commercial OS Shopsysteme auf PHP Basis. Welche Kriterien sind für große Unternehmenskunden wichtig im Rahmen einer Evaluation? Der Vortrag beleuchtet u.a. Hintergründe der Herstellerfirmen, Entwicklungskriterien, Community, Performance und Dokumentation.
Hands-on Workshop: API-Dokumentation mit OpenAPI / Swagger in ASP.NET CoreGregor Biswanger
Das Dokumentieren einer API wird oft als mühsame, aber wesentliche Aufgabe angesehen. Mit OpenAPI / Swagger können wir eine API-Dokumentation angenehm einfach in ASP.NET Core integrieren. Gregor Biswanger zeigt, wie eine API-Dokumentation mit einer Benutzeroberfläche hinzugefügt wird, mit der wir die API testen können.
Als Nächstes erfahren wir, wie wir Attribute und Konventionen verwenden, um die generierte OpenAPI-Spezifikation zu verbessern. Abschließend wird gezeigt, wie wir mit der Authentifizierung, Versionierung und Anpassung der Benutzeroberfläche umgehen.
Developing Oracle Application Express on a high level you have to think about topics like issue tracking, continious delivery, automation, team management. The presentation was hold at the APEX Roadshow on 21.st of january 2014 in german language.
Forms and Reports 12c - Processes and Automation in Development and OperationsTorsten Kleiber
The current target architecture of IKB's credit and loan management is based on Oracle ADF and SOA and of course the database. But how can you protect in this time your Oracle Forms & Reports longtime investments, can you support their Development Lifecycle by Automation?
Many supporting technologies from the Java environment, such as branching models, automated build and deploy procedures or code review were established with the Oracle technologies and in the course of the regulatory process.
But there is still a large part of the Oracle Forms & Reports that have grown over 25 years and have not yet been replaced. Actually, we hoped that we would no longer need a version higher than 11g. Forms & Reports had been running very stably for years. A bug brought the migration to 12c back into focus to further run supported versions. The regulatory environment did the rest to revise the current processes and, where possible, to automate them.
So how do supporting technologies and automation fit in here?
I will show you a selection of these processes from IKB's development and operations life cycle:
* Installation of application server
* Regular patching
* Packaging of the local development environment
* Requirements documentation
* Branching
* Development
* Code Review
* Merge
* Deployment
* Traceability for Regulatory Purposes
The following tools are used, among others
* Jenkins
* Scripting with Bash and Powershell
* Git
* Bitbucket
* JIRA
* FormsAPI Master
Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“hpaustria
Kennst du einUnternehmen, dass erfolgreichdie QS outtasked hat?“
Presentation from HEROLD (www.herold.at) at the HP Ideas 2008 in Vienna/Austria.
http://www.herold.at
http://hpideas.wordpress.com
http://www.hp.com/at/ideas
Vortragsreihe Dortmund: Unified Development EnvironmentsThorsten Kamann
Große Entwicklungsabteilungen stehen oft vor dem Problem einheitlicher Entwicklungsprozesse und Werkzeuge. Nach einiger Zeit hat jedes Projekt eigene Prozesse und Werkzeuge etabliert. Dies ist nicht im Sinne der Entwicklungsabteilung. Softwaresysteme müssen i. d. R. über Jahre hinweg gewartet und erweitert werden - oft von einem Team, das sich neu in die Anwendung einarbeiten muss.
Nicht selten stellt die Rekonstruktion der Entwicklungsumgebung einen erheblichen Aufwand dar.
Dieser Vortrag beschreibt - anhand eines Erfahrungsberichts - den Aufbau einer strukturierten Entwicklungsumgebung, die auch für grosse Entwicklungsabteilungen skaliert.
- Zentrale Projekt- und Codeverwaltung (ähnlich wie Sourceforge)
- Buildmanagement mit Maven
- Entwicklungswerkzeuge basierend auf Maven und Eclipse
- Installierbare Teamserver mit Virtualisierungstechnologie für Continuous Integration
Similaire à W-JAX 2013 Spring Batch - Performance und Skalierbarkeit (20)
9. DOMAIN / KONFIGURATION / ABLAUF
Job wird als Spring-Konfiguration erstellt
Domain Specific Language manifestiert sich in XML-Namespace
Zentrale Elemente
job
step
tasklet
chunk
reader
processor
writer
commit-interval
codecentric AG
<job id="myJob" >
<step id="myStep" >
<tasklet>
<chunk reader="myReader"
processor="myProcessor" writer="myWriter"
commit-interval="1" />
</tasklet>
</step>
</job>
10.11.2013
9
10. DOMAIN / KONFIGURATION / ABLAUF
Reader, Processor und Writer implementieren bestimmte Interfaces
ItemReader<T>
T read()
ItemProcessor<I,O>
O process(I item)
ItemWriter<T>
void write(List<? extends T> items)
Spring Batch bietet für sehr viele Use Cases Implementierungen an
Lesen/Schreiben aus/in eine Datenbank
Lesen/Schreiben aus/in ein Flat-File
Lesen/Schreiben aus/in ein XML-File
Lesen/Schreiben aus/in eine JMS-Queue
Lesen/Schreiben mit JPA
und viele mehr
codecentric AG
10.11.2013
10
11. DOMAIN / KONFIGURATION / ABLAUF
item == null ||
completionPolicy
fulfilled
Begin Step
list of items
true
1
list of items
For each item
false
Open
transaction
ItemReader
Item read()
ItemProcessor
process(Item)
ItemWriter
write(List<Item>)
Commit
transaction
false
2
true
item == null
Finish Step
codecentric AG
10.11.2013
11
12. DOMAIN / KONFIGURATION / ABLAUF
Inkasso
Kraftfahrt
Inkasso
Kraftfahrt am
22.03.13
Inkasso
Kraftfahrt am
22.03.13 erster
Versuch
codecentric AG
Job
*
Step
*
JobInstance
JobParameters
*
JobExecution
*
StepExecution
15. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 1
Kenne EVA
Eingabe Verarbeitung Ausgabe
codecentric AG
16. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 1
<job id=“step-job">
<step id=“xml-einlesen“>...</step>
<step id=“xml-verarbeiten“>...</step>
<step id=“xml-schreiben“>...</step>
</job>
codecentric AG
17. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 1
<job id=“eva-job">
<step id=“xml-step">
<tasklet>
<chunk reader=“xml-einlesen“
processor=“xml-verarbeiten"
writer=“xml-schreiben“ />
</tasklet>
</step>
</job>
codecentric AG
18. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 1
ExecutionContext ist kein Datenspeicher für Nutzdaten, sondern:
Zählerstände
Steuerdaten
Problem: HeapSize
Processor und Writer sollten stateless sein
Parallelisierung
codecentric AG
19. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 2
Kenne Deine nicht-funktionalen
Anforderungen
codecentric AG
20. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 2
Mengengerüste
Zu erreichender Durchsatz
Was läuft parallel?
Minimiere den Aufwand!
codecentric AG
21. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 3
Kenne Deine Persistenzschicht
codecentric AG
22. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 3
Datenlokalität
Art des DB-Zugriffs
JDBC
ORM
Transaktionsgröße (commit-interval)
codecentric AG
23. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 4
Zahlen sind besser als
Vermutungen
codecentric AG
24. VIER THESEN ZU PERFORMANCE IM BATCH
Aussage 4
Messen, Messen, Messen!
Wiederholbarkeit
Immer nur einen Parameter ändern
Immer im Blick: CPU, Speicher, Datenquellen
Ergebnisse protokollieren
Testdaten
Stetiger Verbesserungsprozess
Randsysteme abdecken
Tools verwenden
Profiling lokal
Application Performance Management tools
codecentric AG
27. SKALIERUNGSSTRATEGIEN
Woher kommen die Threads?
java.util.concurrent.Executor
ThreadPoolExecutor
<task:executor id="taskExecutor" pool-size="5"/>
ApplicationServer verwalten eigene Threadpools
codecentric AG
34. ASYNCITEMPROCESSOR -> ASYNCITEMWRITER
AsyncItemProcessor and AsyncItemWriter
Java Concurrency API
Future
FutureTask
Sehr einfach zu konfigurieren
Optimal für aufwändige process-Schritte
Anreicherung von Daten über langsame APIs
Komplexe Berechnungen
codecentric AG
44. PARTITIONING
Begin Step
For each item
Open
transaction
ItemReader
Item read()
ItemProcessor
process(Item)
ItemWriter
write(List<Item>)
Commit
transaction
false
For each item
Partitioner
Open
transaction
ItemReader
Item read()
ItemProcessor
process(Item)
ItemWriter
write(List<Item>)
Commit
transaction
false
For each item
Open
transaction
ItemReader
Item read()
ItemProcessor
process(Item)
ItemWriter
write(List<Item>)
Commit
transaction
false
codecentric AG
Finish
Step
50. REMOTE CHUNKING
+ Hoch skalierbar
+ Struktur der Input Daten muss bekannt sein
- Ggf. Bottleneck beim ItemReader
- Transaktionale Middleware
- Alle Items werden serialisiert
codecentric AG
51. FRAGEN?
Dennis Schulte / Tobias Flohre
codecentric AG
Merscheider Straße 1
42699 Solingen
tobias.flohre@codecentric.de
dennis.schulte@codecentric.de
www.codecentric.de
blog.codecentric.de
www.meettheexperts.de
codecentric AG
10.11.2013
51