• about reply
Alpha Reply Logo
Menu
  • Lösungen
    Lösungen
    • Lösungen
    • Fusion
    • Synapse
  • Insights
    Insights
    • Insights
    • Erfolgreiche Projekte
    • Artikel
    • Events
    • Tutorials
  • Partnerschaften
Choose language:
  • about Reply
Alpha Reply Logo
Focus On

Software-Architektur von Synapse

Dieser Blogbeitrag gehört zur Serie über Synapse – die Plattform von Alpha Reply zum Testen und Stresstesten der Kontrollumgebung von Finanzinstituten gegen Finanzkriminalität.

Im Folgendem wird ausführlicher auf die Software-Architektur von Synapse eingegangen.

Synapse wird mit mit Golang (https://golang.org) entwickelt und verwendet das agentenbasierte Simulationsmodell. In speziellen Fall bedeutet dies, dass eine Reihe von Agenten instanziiert werden, die untereinander Transaktionen tätigen.

synapseblogenvironment-1408x704.jpg 0 

Die Hauptroutine

Die Simulation wird durch eine Konfigurationsdatei initiiert, die Folgendes festlegt:

  • die in Bezug auf die Agenten zu simulierende Welt – Anzahl der Banken, Unternehmen und Einzelpersonen sowie deren Profil (mehr dazu später)
  • die Dauer der Simulation in Tagen
  • technische Details wie zum Beispiel, wo die Transaktionen abgelegt werden sollen (zB. Cloud-Storage, Kafrka-Warteschlange und/oder für das Kernbankensystem spezifischer Konnekoren)

Der zweite Schritt besteht darin, eine Cache zu instanziieren, der die Agenten enthält und verschiedne Parameter für diese Agenten zu initiieren.

Schließlich startet die Simulation, wobei sie die in der Konfigurationsdatei angegebene Anzahl von Tagen in Schleifen durchläuft. Jeden Tag führt die Simulation Folgendes aus:

  • Sie verarbeitet alle Agents im Cache und ruft eine "Tick"-Methode für jeden Aspect auf, der einem Agent zugeordnet ist. Diese "Tick"-Methode sind für die Einstellung konkreter Transaktionen zuständig, die im 's TransactionBuffer des Agenten gespeichert werden.
  • Die Anwendung einer Transaktion wirkt sich auf einen oder mehrere Posten in der Bilanz Struktur jedes Agenten aus und der's Transaction Buffer des Agenten wird geleert.
  • Schließlich werden Transaktionen unter Verwendung des vom Nutzer definierten Protokolls weitergeleitet (Speicherung zur Stapelverarbeitung oder über Kafka zum Streamen).

In der Theorie mag das ganz einfach sein, doch ist die Implementierung der Hauptschleife recht aufwendig, wenn man den Ablauf auf Geschwindigkeit optimiert. So beinhaltet die Schleife sorgfältig strukturierte Go-Routinen und Cache-Mutexe, die zusammenwirken, um eine hohe Parallelität zu erreichen (dies wird in einem späteren Beitrag behandelt).

Im weiteren Verlauf dieses Beitrags werden wir auf das Design der vier wesentlichen Strukturen/Schnittstellen (Agent, Aspekt, Transaktionen und Bilanz) eingehen.

Agent

Der Agent ist die wichtigste Struktur von Synapse und kann eine Einzelperson, ein Unternehmen oder ein Finanzinstitut (FI) darstellen. Die Basisstruktur enthält in erster Linie technische Attribute und Methoden. Drei verschiedene Strukturen, die der Einzelperson, dem Unternehmen und dem FI entsprechen, werden dann von der Basis-Agentenstruktur ausgehend gebildet und definieren weitere für den Agententyp spezifische Attribute (in Golang gibt es kein Vererbungskonzept, es verwendet stattdessen Komposition und Schnittstellen, die Laufzeitpolymorphismus bereitstellen).

Wichtig ist, dass die Agentenstrukturen Folgendes aufweisen:

  • eine Sammlung (Zuordnung)von Aspekten
  • eine Bilanzstruktur
  • einen Puffer (Slice)mit Transaktionen

Aspekte

Aspekte sind der Mechanismus, mit dem das Transaktionsverhalten unserer Agenten programmiert wird. Technisch gesehen ist ein Aspekt eine Schnittstelle mit einigen wenigen Methoden, wobei die wichtigste die „Tick“-Methode ist. Deren Aufgabe besteht darin, einen Slice von Transaktionen zurückzugeben, die den Transaktionspuffer füllen. Diese Methode wird dort eingesetzt, wo die Verhaltensweisen des Agenten implementiert werden, und komponieren sie (das heißt durch Hinzufügen und Entfernen von Aspekten bei einem Agenten können wir ein reichhaltiges und dynamisches Verhalten erzielen).

Bilanz

Die Bilanz-Struktur stellt die Bilanz eines Agenten dar. Die Struktur definiert die verschiedenen Aktiva und Passiva eines Agenten und wird in jeder Schleife aktualisiert, um die täglichen Transaktionen zu reflektieren, die jeder Agent getätigt hat. Beispiele für das Vermögen einzelner Agenten sind Bargeldkonten, Girokonten (mit einem Zeiger auf ein Bank-FI), verschiedene finanzielle und nichtfinanzielle Vermögenswerte.

Transaktionen

Transaktionen sind – zusammen mit den Attributen von Unternehmens- und Einzelpersonen-Agenten (das heißt KYC-Informationen) – die wesentliche Ausgabe von Synapse und werden von den Synapse-Nutzern dafür verwendet, ihre Kontrollen gegen Finanzkriminalität zu testen (Transaktionsüberwachung, Kundenrisikobewertung usw.). Es gibt viele Arten von Transaktionen, aus denen sich die grundlegende Transaktionsstruktur zusammensetzt. Beispiele sind Bargeldtransaktionen, ATMWithdrawal (Abhebung am Geldautomaten), CashDeposit (Bargeldeinlage), WireTransfer (Überweisung), LoanContract (Darlehensvertrag), POSDebitCardTransaction (POS-Debitkarten-Transaktion).

Wichtig ist, dass jede Transaktion definiert, wie sie sich auf die Bilanz der beiden an dieser Transaktion beteiligten Parteien auswirkt.

Schluss

Insgesamt kann Synapse anhand dieser Konzepte realistische Transaktionen simulieren, die von Agenten ausgehen, die in wirtschaftlich realistischer Weise handeln, indem sie ihre Bilanzpositionen jederzeit berücksichtigen.

Dieser Beitrag befasst sich nur mit der sehr allgemeinen Struktur des Programms, und wir werden künftig näher auf diese verschiedenen Konzepte eingehen. Wie von unseren Lesern gewünscht, werden wir uns nächste Woche mit den Einzelheiten einiger zentraler Aspekte befassen, mit denen verschiedene Konsumverhaltensweisen von Einzelpersonen programmiert werden, sowie mit einem ersten Aspekt, mit dem ein typisches Geldwäscheschema emuliert wird.

Bleiben Sie dran!

Wenn Sie die Berichterstattung über Synapse verbessern möchten und zu prüfen, wie Sie die Plattform für Ihre Organisation nutzen können, kontaktieren Sie uns bitte unter

RELATED CONTENTS

Alpha Reply & yes®

Mit dem Beginn des neuen Jahres freuen wir uns bekannt geben zu können, dass Alpha Reply und yes.com erfolgreich eine strategische Partnerschaft geschlossen haben.

Go Concurrency mit WaitGroup 0

Go Concurrency mit WaitGroup

In diesem Tutorial hilft Alpha Reply dabei, das Konzept der WaitGroup zu verstehen. In einigen Szenarien müssen bestimmte Teile des Codes blockiert werden, damit diese GoRoutinen entsprechend Ihren Anforderungen ausgeführt werden können.

Go Concurrency mit Channels

In diesem Tutorial hilft Alpha Reply dabei, das Konzept der Kanäle zu verstehen. Während einer Concurrency-Programmierung spielt die Kommunikation in einer gemeinsam genutzten Speicherumgebung eine wichtige Rolle in der Synchronisierung des gesamten Programms. In Go ist Channels eine integrierte Funktion für Synchronisationen.

Go Concurrency mit Channels 0
 
 
 
 
Reply ©​​ 2023​ - ​​​​Datenschutz​​​ - Impressum
Cookie-Einstellungen​
  • Über Reply
  • Investoren​​
  • Newsroom
  • Folgen Sie uns auf​​​​​​​​


  • ​​
  • ​
​
  • ​​​​Company Information
  • ​​​​Datenschutz- und Cookie Richtlinie
  • Datenschutzhinweis (Kunden)
  • Datenschutzhinweis (Dienstleister)
  • Datenschutzhinweis (Bewerber)
​Reply Enterprise Social Network​