Entwurf und Implementierung einer Architektur zur ...

25
Konstantin Bork Fachbereich Mathematik und Informatik Entwurf und Implementierung einer Architektur zur asynchronen Verarbeitung von Batch-Jobs in einem Unternehmen

Transcript of Entwurf und Implementierung einer Architektur zur ...

Page 1: Entwurf und Implementierung einer Architektur zur ...

Konstantin BorkFachbereich Mathematik und Informatik

Entwurf und Implementierung einer Architektur zur asynchronen Verarbeitung von Batch-Jobs in einem Unternehmen

Page 2: Entwurf und Implementierung einer Architektur zur ...

2

Konstantin BorkFachbereich Mathematik und Informatik

Agenda• Problembeschreibung

• Anforderungen

• Anforderungsanalyse

- Theorie

- Architekturentwurf

• Evaluation

• Implementierung

• Fazit & Ausblick

4. Februar 2016

Page 3: Entwurf und Implementierung einer Architektur zur ...

3

Konstantin BorkFachbereich Mathematik und Informatik

Problembeschreibung• Geringe Produktivität des selbstentwickelten CMS

- Lange Verarbeitung hochgeladener Dateien

- Datenexporte benötigen viel Zeit

- Timeouts

• Benutzer erhalten keine Rückmeldung vom System

4. Februar 2016

Page 4: Entwurf und Implementierung einer Architektur zur ...

4

Konstantin BorkFachbereich Mathematik und Informatik

Agenda• Problembeschreibung

• Anforderungen• Anforderungsanalyse

- Theorie

- Architekturentwurf

• Evaluation

• Implementierung

• Fazit & Ausblick

4. Februar 2016

Page 5: Entwurf und Implementierung einer Architektur zur ...

5

Konstantin BorkFachbereich Mathematik und Informatik

Anforderungen• Asynchrone Verarbeitung

• Priorisierung von Aufträgen

• Verteiltes System offen halten

• Nichtfunktional:

- Modularer Aufbau

- Wartungsfreundlich

- Gut dokumentiert

- Fängt Fehler ab

4. Februar 2016

Page 6: Entwurf und Implementierung einer Architektur zur ...

6

Konstantin BorkFachbereich Mathematik und Informatik

Agenda• Problembeschreibung

• Anforderungen

• Anforderungsanalyse

-Theorie- Architekturentwurf

• Evaluation

• Implementierung

• Fazit & Ausblick

4. Februar 2016

Page 7: Entwurf und Implementierung einer Architektur zur ...

7

Konstantin BorkFachbereich Mathematik und Informatik

Theorie: Messaging• Schnelle asynchrone Kommunikation mit verlässlicher Zustellung

• Vorteile:

- Verbindung separater Programme

- Verlässliche Kommunikation

- Nachrichten sind atomare Einheiten

4. Februar 2016

Page 8: Entwurf und Implementierung einer Architektur zur ...

8

Konstantin BorkFachbereich Mathematik und Informatik

Theorie: Middleware• Zusätzliche Schicht in Softwareumgebungen

• Ziel: einfache Zugriffe auf untere Schichten, höhere Produktivität

• Zwei Formen: Kommunikationsorientiert & Anwendungsorientiert

4. Februar 2016

Page 9: Entwurf und Implementierung einer Architektur zur ...

9

Konstantin BorkFachbereich Mathematik und Informatik

Theorie: Batch-Processing• Jobs werden als Ganzes abgearbeitet

• Eigenschaften:

- Große Mengen an Eingabedaten

- Abarbeitung in Batch Window

- Abarbeitung mehrerer Hundert bis Tausend Jobs

• Beispiel: Abbuchungen von Bankkonten

4. Februar 2016

Page 10: Entwurf und Implementierung einer Architektur zur ...

10

Konstantin BorkFachbereich Mathematik und Informatik

Theorie: Architekturmuster

• Master-Worker

4. Februar 2016

Page 11: Entwurf und Implementierung einer Architektur zur ...

11

Konstantin BorkFachbereich Mathematik und Informatik

Theorie: Architekturmuster

• Producer-Consumer

4. Februar 2016

Page 12: Entwurf und Implementierung einer Architektur zur ...

12

Konstantin BorkFachbereich Mathematik und Informatik

Agenda• Problembeschreibung

• Anforderungen

• Anforderungsanalyse

- Theorie

-Architekturentwurf• Evaluation

• Implementierung

• Fazit & Ausblick

4. Februar 2016

Page 13: Entwurf und Implementierung einer Architektur zur ...

13

Konstantin BorkFachbereich Mathematik und Informatik

Architektur: Erster Entwurf

4. Februar 2016

Page 14: Entwurf und Implementierung einer Architektur zur ...

14

Konstantin BorkFachbereich Mathematik und Informatik

Architektur: Überarbeitung

4. Februar 2016

Page 15: Entwurf und Implementierung einer Architektur zur ...

15

Konstantin BorkFachbereich Mathematik und Informatik

Agenda• Problembeschreibung

• Anforderungen

• Anforderungsanalyse

- Theorie

- Architekturentwurf

• Evaluation• Implementierung

• Fazit & Ausblick

4. Februar 2016

Page 16: Entwurf und Implementierung einer Architektur zur ...

16

Konstantin BorkFachbereich Mathematik und Informatik

Evaluation: Messaging-Systeme

4. Februar 2016

Name ApacheActiveMQ

HornetQ ApacheKafka

Apache Qpid RabbitMQ SpreadToolkit

Entwickler Apache Software Foundation

JBoss Apache Software Foundation

Apache Software Foundation

PivotalSoftware

Spread Concepts LLC

Lizenz Apache 2.0 Apache 2.0 Apache 2.0 Apache 2.0 Mozilla PublicLicense 1.0

Spread Open-Source License 1.0

Sprache Java Java Scala Java Erlang CUnterstützteSprachen

Java, C, C++,...

Java Java Java, C, C++,Python

Java, Scala,Groovy, Erlang,...

C, C++, Java,Python

Priorisierung ja ja nein ja nein neinGrails-Unterstützung

ja ja ja ja ja nein

Persistent ja ja ja ja ja jaQueue-Modus ja ja nein ja ja neinDead-Letter-Queue

ja ja ? ja ja nein

Logs ja ja ja ja ja nein

Name ApacheActiveMQ

HornetQ ApacheKafka

Apache Qpid RabbitMQ SpreadToolkit

Entwickler Apache Software Foundation

JBoss Apache Software Foundation

Apache Software Foundation

PivotalSoftware

Spread Concepts LLC

Lizenz Apache 2.0 Apache 2.0 Apache 2.0 Apache 2.0 Mozilla PublicLicense 1.0

Spread Open-Source License 1.0

Sprache Java Java Scala Java Erlang CUnterstützteSprachen

Java, C, C++,...

Java Java Java, C, C++,Python

Java, Scala,Groovy, Erlang,...

C, C++, Java,Python

Priorisierung ja ja nein ja nein neinGrails-Unterstützung

ja ja ja ja ja nein

Persistent ja ja ja ja ja jaQueue-Modus ja ja nein ja ja neinDead-Letter-Queue

ja ja ? ja ja nein

Logs ja ja ja ja ja nein

Name ApacheActiveMQ

HornetQ ApacheKafka

Apache Qpid RabbitMQ SpreadToolkit

Entwickler Apache Software Foundation

JBoss Apache Software Foundation

Apache Software Foundation

PivotalSoftware

Spread Concepts LLC

Lizenz Apache 2.0 Apache 2.0 Apache 2.0 Apache 2.0 Mozilla PublicLicense 1.0

Spread Open-Source License 1.0

Sprache Java Java Scala Java Erlang CUnterstützteSprachen

Java, C, C++,...

Java Java Java, C, C++,Python

Java, Scala,Groovy, Erlang,...

C, C++, Java,Python

Priorisierung ja ja nein ja nein neinGrails-Unterstützung

ja ja ja ja ja nein

Persistent ja ja ja ja ja jaQueue-Modus ja ja nein ja ja neinDead-Letter-Queue

ja ja ? ja ja nein

Logs ja ja ja ja ja nein

Page 17: Entwurf und Implementierung einer Architektur zur ...

17

Konstantin BorkFachbereich Mathematik und Informatik

Evaluation: Messaging-Systeme• Beide Lösungen sind geeignet

• Allerdings bietet ActiveMQ mehr Vorteile

- Speicherung von Nachrichten innerhalb des Programmspeichers

- Mehr Möglichkeiten zur Erweiterung des Systems

- Kein zusätzlicher Server notwendig

• Schlechte Erfahrungen mit ActiveMQ im Unternehmen

4. Februar 2016

Page 18: Entwurf und Implementierung einer Architektur zur ...

18

Konstantin BorkFachbereich Mathematik und Informatik

Evaluation: Enterprise-Integration-Frameworks• Vergleich zwischen Apache Camel & Spring Integration

• Trotz schwierigeren Umgangs wird Spring Integration verwendet

- Beide Lösungen bieten ähnlichen Funktionsumfang

- Große Erfahrung mit Spring im Unternehmen

4. Februar 2016

Page 19: Entwurf und Implementierung einer Architektur zur ...

19

Konstantin BorkFachbereich Mathematik und Informatik

Evaluation: Batch-Processing

• Schnelle Entscheidung für Spring Batch

4. Februar 2016

Page 20: Entwurf und Implementierung einer Architektur zur ...

20

Konstantin BorkFachbereich Mathematik und Informatik

Agenda• Problembeschreibung

• Anforderungen

• Anforderungsanalyse

- Theorie

- Architekturentwurf

• Evaluation

• Implementierung• Fazit & Ausblick

4. Februar 2016

Page 21: Entwurf und Implementierung einer Architektur zur ...

21

Konstantin BorkFachbereich Mathematik und Informatik

Implementierung: Architektur

4. Februar 2016

Page 22: Entwurf und Implementierung einer Architektur zur ...

22

Konstantin BorkFachbereich Mathematik und Informatik

Agenda• Problembeschreibung

• Anforderungen

• Anforderungsanalyse

- Theorie

- Architekturentwurf

• Evaluation

• Implementierung

• Fazit & Ausblick

4. Februar 2016

Page 23: Entwurf und Implementierung einer Architektur zur ...

23

Konstantin BorkFachbereich Mathematik und Informatik

Fazit & Ausblick• Anforderungen wurden erfüllt

- Implementierung eines agentenbasierten Systems

- Generisch für verschiedene Daten

- Schnittstelle zur Steuerung der Auftragsverarbeitung

- Spätere Verwendung eines Messaging-Systems möglich

• Weitere Optimierungen erforderlich

• Einbau in bestehende Systeme ist geplant

• Open Source Veröffentlichung ist geplant

4. Februar 2016

Page 24: Entwurf und Implementierung einer Architektur zur ...

24

Konstantin BorkFachbereich Mathematik und Informatik

Theorie: Architekturmuster

• Model-View-Controller

4. Februar 2016

Page 25: Entwurf und Implementierung einer Architektur zur ...

25

Konstantin BorkFachbereich Mathematik und Informatik

Implementierung: Vorgehen• Auswahl der verwendeten Technologie

• Verwendung von Git

• Entwicklung wird in Teilprobleme zerlegt

• Unit- und Integration-Tests

• Test der Funktionsfähigkeiten in einem Beispielprojekt

4. Februar 2016