Upgrade to Pro — share decks privately, control downloads, hide ads and more …

arc42 Beispiel MaMa CRM

arc42 Beispiel MaMa CRM

Eine Produktfamilie für die Prozess-Steuerung von CRM-Kampagnen, dargestellt entlang des arc42-Templates.

Dr. Gernot Starke

July 03, 2014
Tweet

More Decks by Dr. Gernot Starke

Other Decks in Programming

Transcript

  1. © 2010-2013 Dr. Gernot Starke Architekturbeispiel MaMa-ProK Ablaufsteuerung für Marketing-,

    Vertriebs- und CRM-Kampagnen im Massenmarkt Dr. Gernot Starke
  2. © 2010-2013 Dr. Gernot Starke Ziele Beispiele sind nicht prüfungsrelevant

    für iSAQB-CPSA-F. ‣  Architektur eines realen Systems vorstellen ‣  Nutzung von arc42 aufzeigen ‣  Top-Down Kommunikation technischer Sachverhalte aufzeigen ‣  Einige Grundkonzepte am Beispiel einführen ‣  Lösungsstrategie ‣  Kontextabgrenzung ‣  Black/Whitebox-Hierarchie ‣  Laufzeitszenarie ‣  Technische Konzepte ‣  Deployment
  3. © 2010-2013 Dr. Gernot Starke Ziel des Systems ‣  Koordination

    von Datenflüssen bei CRM-Kampagnen im Massenmarkt ‣  Inbesondere: TelKo, Logistik, Gesundheit, Energie
  4. © 2010-2013 Dr. Gernot Starke Beispiele für Kampagnen ‣  Bildbeschaffung

    ‣  Versicherungskarten ‣  Kredit- oder Debitkarten ‣  Aktualisierung oder Anreicherung von Datenbeständen ‣  Beispiel: Anreicherung von Versichertendaten um zentrale (neue) KV- Nummer. ‣  Änderung von Vertragsverhältnissen ‣  Beispiel: Tarifänderung Mobilfunk ‣  Zählerselbstablesung (Energie, Wasser) ‣  Target-Group Marketing
  5. © 2010-2013 Dr. Gernot Starke Glossar Partner: Unternehmen oder Organisation,

    das unterstützende Leistungen innerhalb von Kampagnen erbringt. Beispiele: Druck, Scan, CallCenter, Fax. Kampagne: Eine zeitlich beschränkte und inhaltlich vertraglich geregelte Auftragsdatenver- arbeitung mit dem Ziel, Daten von einer bekannten Menge von Clients zu erheben oder aktualisieren. Filter: Eine Operation auf Dateiebene, Beispiele: Verschlüsselung, Komprimierung oder Prüfsummenberechnung. Filter werden mandanten- oder partnerspezifisch konfiguriert. Mandant: Auftraggeber einer →Kampagne, agiert in →Massenmarkt, hat Vertragsverhältnis zu →Client. MaMa führt Auftrags- Datenverarbeitung durch. Client: Verbraucher oder Anwender von Dienstleistung(en) oder Produkt(en) eines Anbieters (Mandant). Activity / Aktion / Action: 1.  Erhalt von Daten (Import) oder 2. Übergabe von Daten (Export), jeweils an Partner oder Mandant. 3. Interne Verwaltungsaufgaben
  6. © 2010-2013 Dr. Gernot Starke Architekturziele (Q-Anforderungen, 1) ‣  Flexibilität

    bezüglich ‣  Kommunikation mit Mandanten und Partnern: ‣  Daten- und Dateiformate ‣  Übertragungskanäle ‣  Prozessen, Abläufen und Regeln innerhalb von Kampagnen ‣  Einrichtung von Kampagnen OHNE Programmierung ‣  Datenformate (Import/Export) konfigurierbar ‣  Prozessablauf konfigurierbar
  7. © 2010-2013 Dr. Gernot Starke Architekturziele (Q-Anforderungen, 2) ‣  Last

    und Performance ‣  < 100 Mandanten (Anbieter im Massenmarkt) ‣  < 25 Partner(unternehmen) ‣  < 10.000.000 Marktteilnehmer ‣  Verarbeitung von Ergebnissen aller Marktteilnehmer einer Kampagne <= 24h ‣  250.000 gelieferte Fotos < 24h ‣  Scan-Resultate von 250.000 Formularen < 24h
  8. © 2010-2013 Dr. Gernot Starke Architekturziele + Arc-Ansätze Prio Q-Ziel

    Bedeutung / Szenarien Architektur-/Lösungsansatz 1 Flexibilität •  Neues csv-Importformat in <4h konfigurierbar •  Neues Fixed-Field-Import/ Exportformat in <4h konfigurierbar •  Konfigurationssprache für CSV- Parser (Import), auf Basis ANTLR •  Generator (Export) auf Basis derselben Konfigurationssprache •  Konfigurationssprache für Fixed- Field Parser/Generator 2 Last / Performance •  250.000 eingelieferte Fotos innerhalb von 24h prozessiert •  Bilder als Dateien speichern, Links in DB •  Lasttests im DailyBuild •  Generator für (Massen-)Testdaten 3 Datensicherheit •  Mandant kann jemals Zugriff auf Daten anderer Mandanten erhalten •  Datenlieferung grundsätzlich einem Mandaten zugeordnet •  Mandantenspezifische Daten grundsätzlich in (eigener) VM •  Datenlieferungen grundsätzlich in mandantenspezifische Verzeichnisse (ftp-Server) •  Unix-Kennungen spezifisch für Mandanten
  9. © 2010-2013 Dr. Gernot Starke Randbedingungen (1) ‣  Implementierung in

    Java ‣  Verwendung von MySQL oder Oracle ‣  Wunsch: Verwendung MDSD-Generator ‣  Betrieb jeder einzelnen Kampagne auf eigenständiger virtuellen Maschine ‣  Beschränkung ‣  Import/Export auf CSV, Fix-field + XML ‣  Übertragung auf (s)ftp, http(s)
  10. © 2010-2013 Dr. Gernot Starke Stakeholder Rolle Beschreibung Ziel /

    Intention Kontakt Prio / Abnahmerelevanz Betreiber Rechenzentrum Auftraggeber, durch Kampagnen Ertrag erzielen - Hoch Mandanten u.a. Versicherung Wenig Aufwand mit Datenexport und –import, flexible Kampagnen - Hoch Partner div. Dienstleister, u.a. für Druck, Scan, Mail, Fax, CallCenter Einfache Teilnahme an Kampagnen, Wiederverwendung bestehender Import-/Export Schnittstellen - Mittel Aufsichts- behörde u.a. BSI, TÜV, RegPT Einhaltung gesetzlicher Vorgaben und Normen - Mittel – hoch Standard- gremium u.a. Gematik Vorgabe von Datenformaten und Prozessen für spez. Kampagnen - Mittel - hoch
  11. Fachliche Kontextabgrenzung (speziell TelCo) MaMa CRM Telefonanbieter MoF OmniPrint UltraScan

    HumbleCall Admin Client Master Data Final Results Printing data Printing results Client master data excerpt Scanned reply letters Client master data excerpt Call results config, status
  12. Externe Schnittstellen Name Fachliche Bedeutung Format / Technik Campaign Master

    Data Vorbereitung und Konfiguration der Kampagne Bisher nicht implementiert Client Master Data Mandant übergibt (neue oder aktualisierte) Stammdaten der Marktteilnehmer („clients“) Dateien (csv, fix, binär, xml) über ftp, http. Teilweise WebService. Client data Auszüge der Marktteilnehmerdaten für spezifische Partner und deren Verarbeitungsaufgaben. Dateien (csv, fix, binär, xml) über ftp, http Preliminary result Client-bezogene Verarbeitungsergebnisse Dateien (csv, fix, binär, xml) über ftp, http Clarification request Anfragen zur Ergänzung client-spezifischer Daten Datei über ftp, http, smtp Final result Endgültige Ergebnisse der Kampagne pro Client Dateien (csv, fix, binär, xml) über ftp, http Processing report Partnerspezifische Verarbeitungsergebnisse Dateien (csv, fix, binär, xml) über ftp, http Status report Reports über Zwischenstände von Kampagnen Pdf- oder Textdatei über ftp, http, smtp
  13. © 2010-2013 Dr. Gernot Starke Lösungsstrategie (1) ‣  Für jede

    Kampagne eigene MaMa-Instanz ‣  Mandanten- und kampagnenspezifisch konfiguriert ‣  Vollständige Generierung der Persistenz aus UML- Domänenmodell ‣  Gemeinsames (Core-) Modell für Kampagne und Mandant spezialisieren ‣  Java, Spring, Hibernate, AndroMDA, Antlr, Groovy (später: openArchitectureWare/Xtext/Xpand) MaMa-Core Domain Mandanten + kampagnenspezifische Erweiterung + + Generator + Hibernate... = Domain Data Management
  14. © 2010-2013 Dr. Gernot Starke Lösungsstrategie (2) „Activity“ als zentraler

    Begriff (im Code!): ‣  Inbound-Activity: ‣  importieren von Partner oder Mandant ‣  Outbound-Action ‣  exportieren an Partner oder Mandant ‣  Internal-Action ‣  Löschen, archivieren, prüfen
  15. © 2010-2013 Dr. Gernot Starke Lösungsstrategie (3) Kampagnenspezifische Abläufe durch

    „Wenn-Dann-Regeln“ beschreiben: ‣  Rete-basierte Rule-Engine (JBoss-Drools) ‣  (Intuitiv) äquivalent zu (einfachen) Aktivitätsdiagrammen Alternativen (heute!): ‣  BPEL oder BPMN mit OpenSource-Engine ‣  ETL Werkzeugkette
  16. © 2010-2013 Dr. Gernot Starke Level-1 Blackbox-Bausteine Baustein Bedeutung Import-

    / ExportHandler Liest / schreibt Daten über die Außenschnittstellen, d.h. an Partner und Mandanten. Hierzu gehören insbesondere Teile von IClient- Instanzen und ClarificationRequests Campaign Data Management Speichert sämtliche Kampagnendaten, insbesondere die Domänen- Entitäten, Instanzen von IClient. ProcessControl Steuert die Abläufe/Prozesse der Kampagne, verantwortet Ausführung der kampagnenspezifischen Geschäftsregeln. Configuration •  Hält Konfiguration aller Import- und Export-Aktivätstypen, der Import- und Export-Filter sowie der Geschäftsregeln. •  Grafische Oberfläche zur Durchführung der Konfiguration. OperationsMonitoring Beobachtet und berichtet sämtliche Import- und Exportprozesse sowie Zustand der Datenbank. Reporting Berichtet den Zustand der Kampagne an Mandanten.
  17. © 2010-2013 Dr. Gernot Starke Level-1 Beziehungen (Auszug) Beziehung Von

    Nach Bedeutung storeClient ImportHandler CampaignDataManagement Speichert bzw. aktualisiert Zustand von IClient Instanzen retrieveClient ExportHandler CampaignDatamanagement •  Liest alle zZt offenen Client-Activities •  Liest IClients mit allen assoziierten Entitäten getImportConfig ImportHandler Configuration Holt die Importkonfiguration, entweder csv- oder fix- Config bzw das xml-Schema. tryImport ProcessControl ImportHandler Versucht, einen Import zu starten. Falls noch keine Daten vorliegen, Abbruch. performExport ProcessControl ExportHandler Erzeugt eine Exportdatei für eine Outbound-Aktivität für einen Partner oder Mandanten gemäß der Konfiguration. retrieveClient Reporting CampaignDataManagement Liest den Zustand von IClient eines Mandanten. Anmerkung: Trotz Namensgleichheit andere Schnittstelle als bei ExportHandler! ...
  18. © 2010-2013 Dr. Gernot Starke Baustein Bedeutung Receiver Führt den

    physischen Daten- oder Dateiempfang durch (wird implementiert durch beispielsweise FileReceiver, FTPReceiver, SOAPReceiver und andere). Koordiniert die übrigen Aufgaben der Input-Verarbeitung File Archiver Speichert die vom Receiver empfangenen Dateien in einem von MaMa nicht löschbaren Archiv, sofern für die Kampagne notwendig. File Filter Führt sämtliche notwendigen dateiweiten Konvertierungen durch, beispielsweise Dekompression, Entschlüsselung, Auswertung digitaler Signaturen oder ähnliche. Import Error Handler Berichtet (und speichert) alle aufgetretenen Fehler. Löst eventuell notwendige Admin-Operationen aus. Validator Prüft einzelne Records auf strukturelle und fachliche Gültigkeit (beispielsweise: sind alle Muss-Felder vorhanden, Wertebereiche und Datentypen ok?) UnMarshaller Der Magier: Wandelt Zeichenketten in Iclient Instanzen um Bausteinsicht ImportHandler (Level-2)
  19. © 2010-2013 Dr. Gernot Starke Bausteinsicht „Receiver“ (L-3) archiveFile handle

    Input Error validate File unmarshall (create object from record) file filter ftp getConfiguration Receiver archiveFile handle Input Error validate File unmarshall (create object from record) file filter ftp WS endpoint Queue endpoint getConfiguration start Import Directory Listener Message Listener Webservice Listener Service to File converter File preprocessor File to Record Splitter Record Check and Process unzip File uncompress File read File