WORK IN PROGRESS. this is an intermediate version please do not distribute. Best Practices. Data in processes



Ähnliche Dokumente
Exercise (Part II) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

WAS IST DER KOMPARATIV: = The comparative

Magic Figures. We note that in the example magic square the numbers 1 9 are used. All three rows (columns) have equal sum, called the magic number.

Kurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen

Security Patterns. Benny Clauss. Sicherheit in der Softwareentwicklung WS 07/08

Installation mit Lizenz-Server verbinden

Aufbau eines IT-Servicekataloges am Fallbeispiel einer Schweizer Bank

Listening Comprehension: Talking about language learning

miditech 4merge 4-fach MIDI Merger mit :

ORM & OLAP. Object-oriented Enterprise Application Programming Model for In-Memory Databases. Sebastian Oergel

p^db=`oj===pìééçêíáåñçêã~íáçå=

SanStore: Kurzanleitung / SanStore: Quick reference guide

SharePoint 2010 Mobile Access

KURZANLEITUNG. Firmware-Upgrade: Wie geht das eigentlich?

Softwareupdate-Anleitung // AC Porty L Netzteileinschub

Daten haben wir reichlich! The unbelievable Machine Company 1

Markus BöhmB Account Technology Architect Microsoft Schweiz GmbH

DAT Newsletter Nr. 48 (07/2014)

EEX Kundeninformation

Wenn Russland kein Gas mehr liefert

(Prüfungs-)Aufgaben zum Thema Scheduling

HIR Method & Tools for Fit Gap analysis

1. General information Login Home Current applications... 3

Klausur BWL V Investition und Finanzierung (70172)

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Preisliste für The Unscrambler X

SimPDM Datenmodell im Kontext zu Teamcenter und PLMXML

6KRSSLQJDW&DPGHQ/RFN 1LYHDX$

prorm Budget Planning promx GmbH Nordring Nuremberg

Sepiola Mockups. Overview. Show notes. Primäre Navigation anklicken um zum gewünschten Mockups zu gehen. Backup usage. Overview.

ONLINE LICENCE GENERATOR

Prozessautomatisierung mit BPMN 2.0 und Java.



Smartphone Benutzung. Sprache: Deutsch. Letzte Überarbeitung: 25. April

Fachübersetzen - Ein Lehrbuch für Theorie und Praxis

SemTalk Services. SemTalk UserMeeting

Prozesse als strategischer Treiber einer SOA - Ein Bericht aus der Praxis

Das neue Volume-Flag S (Scannen erforderlich)

Cloud Architektur Workshop

Critical Chain and Scrum

Infrastructure as a Service (IaaS) Solutions for Online Game Service Provision

Alle Informationen zu Windows Server 2003 Übersicht der Produkte

OERA OpenEdge Reference Architecture. Mike Fechner PUG Infotag 19. Mai 05 Frankfurt

Version/Datum: Dezember-2006

Freie Bildung: Web2.0-Tools als Türöffner für die Wirtschaft

RL

Contents. Interaction Flow / Process Flow. Structure Maps. Reference Zone. Wireframes / Mock-Up

ecall sms & fax-portal

Exercise (Part V) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Titelbild1 ANSYS. Customer Portal LogIn

Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support)

Beschreibung. Process Description: Sartorius Bestellnummer / Order No.:

Abschlussarbeiten für StudentInnen

Zum Download von ArcGIS 10, 10.1 oder 10.2 die folgende Webseite aufrufen (Serviceportal der TU):

UM ALLE DATEN ZU KOPIEREN. ZUNÄCHST die Daten des alten Telefons auf einen Computer kopieren

Mul$media im Netz (Online Mul$media) Wintersemester 2014/15. Übung 02 (Nebenfach)

Tuning des Weblogic /Oracle Fusion Middleware 11g. Jan-Peter Timmermann Principal Consultant PITSS

English. Deutsch. niwis consulting gmbh ( manual NSEPEM Version 1.0

Der Wetterbericht für Deutschland. Read the weather reports and draw the correct weather symbols for each town.

Weather forecast in Accra

Cloud for Customer Learning Resources. Customer

Order Ansicht Inhalt

ICON Switzerland 2015 Praxisbeispiel Connections an der Universität Zürich

Prinzipiell können die Adressdaten auf drei verschiedenen Wegen erlangt werden

A-CERT CERTIFICATION SERVICE

Technical Support Information No. 123 Revision 2 June 2008

Der Begriff Cloud. Eine Spurensuche. Patric Hafner geops

p^db=`oj===pìééçêíáåñçêã~íáçå=

Mit Legacy-Systemen in die Zukunft. adviion. in die Zukunft. Dr. Roland Schätzle

Anwendungsbeispiele Sign Live! Secure Mail Gateway

ISO Reference Model

ISO Reference Model

«Zukunft Bildung Schweiz»

Next generation open source BPM JBoss jbpm 4. Java Forum Stuttgart

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL - USER GUIDE June 2016

Anleitung über den Umgang mit Schildern

EU nimmt neues Programm Mehr Sicherheit im Internet in Höhe von 55 Millionen für mehr Sicherheit für Kinder im Internet an

QS solutions GmbH. präsentiert das Zusammenspiel von. Ihr Partner im Relationship Management

Der SAS DataStep und die Prozedur SQL Cellent Finance Solutions GmbH Seite: 1

Fussball.de JavaScript

FEBE Die Frontend-Backend-Lösung für Excel

VGM. VGM information. HAMBURG SÜD VGM WEB PORTAL USER GUIDE June 2016

VERLÄNGERUNGSANTRAG für ein Erasmus+ Praktikum für Studierende/Graduierte im Studienjahr 2014/2015 1

Die agile Prozesswerkstatt

Handbuch. Artologik EZ-Equip. Plug-in für EZbooking version 3.2. Artisan Global Software

Readme-USB DIGSI V 4.82

NVR Mobile Viewer for iphone/ipad/ipod Touch

(BABOK-v3-Technik 10.41)

Survival Analysis (Modul: Lebensdaueranalyse)

All Motorola Europe, Middle East & Africa Approved Channel Partners

Therefore the respective option of the password-protected menu ("UPDATE TUBE DATA BASE") has to be selected:

Wittgenstein s Nachlass : Structures and Access

SAP NetWeaver Gateway. 2013

Backup and Recovery. Der Abschnitt beschreibt Vorgehensweisen zur Sicherung und Wiederherstellung der Daten mit Applikationsmitteln.

Exercise (Part XI) Anastasia Mochalova, Lehrstuhl für ABWL und Wirtschaftsinformatik, Kath. Universität Eichstätt-Ingolstadt 1

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

Transkript:

WORK IN PROGRESS this is an intermediate version please do not distribute. Best Practices Data in processes

Online Arbeitsgruppe Best Practices Erarbeitung von Best Practices Thema für Thema Ziele Beschreibung der Alternativen Entscheidungskriterien & Empfehlungen Namesfindung / Einigung auf Wording Heute: Daten in Prozessen (2. Termin) Aufruf: Eigenes Material & Beispiele mitbringen! Hat jemand etwas dabei? Keine Frontbeschallung! Sorry für deutsch/englisch.

Was uns interessiert Feedback und Anregungen Vollständigkeit der Use Cases & Empirie Was ist hilfreich für euch? Welche Form der Aufbereitung könnt ihr euch vorstellen? Patterns und Ideen

Intro Order - id - customer - items -

Processes and Data Classification What kind of data could you store in the process? Reference (e.g. id of customer, order, document, ) Payload (e.g. data flow centric processes or message correlation scenarios, SOA?; user task input for later service call -> delete after use) Decision (e.g. approved) if they are not part of the domain model and only necessary for the process flow. Are decisions Payload? Temporary Copy (e.g. you want to save a service result to be independent of changes in that system during some phase in the process; e.g. data from an expensive/slow external service might be cached in the process context) Documents (e.g. documents as binary data linked to a process instance) Merker: + SomeData - attribute 1 - attribute 2 - - Abgrenzung transiente Prozessvariablen - Wie kann Decision entfernt werden nach Gateway (beim verlassen des Gateway per Listener)

Processes and Data Storage How to store data in camunda BPM: Business Key: The business key is one string per process instance used to link it to exactly one domain entity/key. Process Variables (built-in capability of process engine; provided via HashMap like interface; key/values pairs). Value is stored: primitive types in own column complex types, will be serialized (see Serialization) External Data: Data can be stored outside of the process engine scope and retrieved when necessary via API or Service Call; the link is maintained via reference as process variable. Note that declared BPMN data objects according to the specification are not supported, because the HashMap approach is sufficient for real-life use cases. Everything missing can be implemented easily using Patterns. + SomeData - attribute 1 - attribute 2 -

Processes and Data Serialization Serialization of Process Variables can be influenced: Built-In byte code serialization or String (XML/JSON) serialization (planned) JPA Entities can be used to store data. They can be put in the same database schema as the process engine. The link can be maintained automatically. Currently not JPA2 and very limited not recommended. Better maintain yourself with Pattern. Client Serialization: Serialize data yourself into a String before adding as process variable (primitive type String), see Pattern. client serialization Engine Serialization: Hook in own VariableType to influence Serialization in the Process Engine (gets called whenever a process variable is loaded or stored) ENGINE Engine serialization

BPMN Data Objects camunda BPM does not support of BPMN data objects! We use the Map approach instead (more flexible, less boiler plate code) However: You can still draw them for documentation purposes Discussion on it postponed to later

Storage Wie korreliert das zu Data Types? Process Variable JPA Entity External Data (Reference and Service Call) VARIABLE orderid 19 VARIABLE VARIABLE ORDER var1 Var2 value1 18 orderid 19 19 20 Scope Process ORDER 19 20 Scope Process Scope Process Scope Data Process Engine Tables Process Engine Tables Entity Tables Process Engine Tables Entity Tables

Empfehlungen und Gedanken Referenzen bevorzugen Ob Entity oder Extern hängt an der Architektur Payload OK wenn nachrichtenbasiert Entscheidungen OK als Prozessvariablen Achtung: Sind nicht im Domänenmodell vorhanden Möglichst wenig Daten im Prozess!

Processes and Data Pattern Proposal: Problem Solution Zugriff auf EINE Variable ProcessVariableAc cessor

Processes and Data Pattern Proposal: ProcessDataAccessor @Named ProcessData Problem Process Variables are not declared and referenced simply by name (String). This gives no security against typos. Type conversion (casting) has to be done all over the application. Solution Introduce a ProcessDataBean as central accessor to all process variables. It knows the name and type of all process variables. The ProcessDataBean can do any necessary type conversions. When using CDI this can be implemented very elegant. + getvar1() + setvar1(value) +

Processes and Data Example using CDI Pattern Proposal: ProcessDataAccesor @Named ProcessData + getvar1() + setvar1(value) + Problem Lokale Variablen in CDI Beispiele für Plain Java Zweiter Construct mit Map/Mock/VariableScope Evtl. Komposite von ProcessVariableAccessor

Processes and Data Pattern Proposal: ProcessDataBean Use when? Big project (many process variables, many usages, many developers, ) Client Serialization is used to do data mapping Usage examples TODO: Should be contained in an example or quickstart @Named ProcessData + getvar1() + setvar1(value) +

Processes and Data Pattern Proposal: ProcessVariableProduc er ProcessVariableRefere nceresolver Problem External Data has to be queried within the process (e.g. in Gateway, ServiceTask, ). This results in bloated code to load the data and in requirements to cache this. Solution Use a CDI Producer to load the data transparently. CDI scopes take care of caching. Works with JPA but also with external services. Evtl. ProcessVariableAccessor um die Referenz zu holen Getrenntes Pattern da sonst zu viel in einem. Spezialisierung von ProcessVariableAccessor Implementierung in Spring?

Offene Punkte Validierung von Daten, Validierungsfehler, TX Transiente Prozessvariablen Audit Log für Variablenänderungen Global and local variables Classloading with SharedProcessEngine Examples Gateway mit Entscheidungslogik über Daten aus Serviceaufruf davor - Transiente Variablen? Transaktionsgrenzen beachten! - Temporäre Decision als Process Variables / wann löschen? - Default Flow verwenden? Liste für MI laden wie serialisieren? Custom Queries in Tasklist

Feedback: I like Gut gewisse Dinge festzuzurren um es im Projekt nicht immer anders zu machen; Namensdiskussion lange aber hilfreich. Viele Teilnehmer + aktive Diskussion

Feedback: I whish Sprechen Spring Best Practices als Ergebnis aus den Webinaren auf camunda.org fände ich auch toll Besser Zielgruppe-Beschreibung (Java, technisch, camunda BPM wenig BPMN) Regelmäßig alle 4 Wochen Diskussion über Forum Thema: Braucht man Data Objects in camunda BPM?