Ereignisgetriebene Automatisierung

Aufgabenstellung

Der Kunde betreibt eine zentrale auf Oracle und anderen proprietären Technologien basierende 2-Tier-Datenbankanwendung. Die Analyse der Geschäftsprozesse ergab, dass es immer wieder zu Verzögerungen im Arbeitsablauf kam. Ursächlich verantwortlich war dafür, dass aufeinander aufbauende Arbeitsaufgaben zu spät von der Fertigstellung der vorangegangenen Aufgabe Kenntniss erlangten, weil diese in unterschiedlichen Programmteilen des Clients von unterschiedlichen Anwendern im “Pull-Prinzip” bearbeitet wurden.

Lösungsansatz

Nach der Identifikation von Schlüsselereignissen auf der Datenbank - etwa Änderungen in Statusfeldern von Datensätzen - wurde ein Microservice zum Empfangen und Weitergeben dieser Ereignisse entwickelt. Die Weitergabe erfolgt über einen Message Bus zu anderen Microservices, die bei Bedarf auf diese Ereignisse reagieren können.

Auf dieser Grundlage ist eine Benachrichtigung der Anwender per “Push-Prinzip” möglich - so wäre es durch Implementierung eines Microservice zum Versand von E-Mails naheliegend, bei Abschluss einer zeitkritischen Aufgabe in einem Programmteil des Clients eine E-Mail an den nächsten Anwender zu senden. Noch effektiver war es jedoch, mit Hilfe weiterer spezialisierter Microservices die nächste Aufgabe bereits zu beginnen, d.h. Datensätze anzulegen und mit allen bekannten Informationen auszufüllen - was sonst mühevoll manuell erfolgen musste.

Steckbrief

  • Branche: Pharmazeutische Industrie
  • Zeitraum: 2021
  • Architektur: Microservices
  • Technologien
    • Python
    • RabbitMQ
    • Nameko
    • Oracle CQN

Durch Einsatz von Microservices konnte ein höherer Automatisierungsgrad erreicht und die Durchlaufzeit massiv gesenkt werden. Die gewählte Architektur bietet zudem Ausfallsicherheit und skaliert bei Bedarf. Der Einsatz von Python erlaubt schnelle und unkomplizierte Änderung und Tests der Geschäftslogik.

Sie haben ein ähnliches Vorhaben?

Gern bringe ich meine Erfahrungen ein und helfe Ihnen bei der Umsetzung.

Kontaktieren Sie mich