View Categories

Systemarchitektur

1 min Lesezeit

Das Architekturdesign basiert auf einer serviceorientierten Struktur, die eine sichere und flexible Interaktion zwischen einem benutzerdefinierten Power BI Visual, einer von cBI Focus gehostete Azure Functions-Komponente und einer Azure SQL Server Instanz im Tenant des Kunden ermöglicht. Ziel ist es, interaktive Datenoperationen direkt aus Power BI heraus durchzuführen – aktuell beschränkt auf das Erstellen und Aktualisieren von Datensätzen. Die Funktion zum Löschen (DELETE) ist derzeit nicht implementiert, aber architektonisch bereits vorgesehen.

Die Architektur basiert auf drei Kernkomponenten, die miteinander kommunizieren:

  • Power BI (mind. Pro Subscription bzw. Microsoft 365 mit entsprechender Lizenz) mit cBI Focus Planner
  • die Azure SQL Server-Datenbank des Nutzers
  • das cBI Focus Planner Backend (hosted Azure Functions)

Im Mittelpunkt der Betrachtung steht das Custom Visual, cBI Focus Planner, das als Matrix Visual in einen Power BI Report eingebettet ist und als Benutzeroberfläche zur Erfassung von (Plan-)Daten dient. Es wurde mit dem offiziellen Power BI Visuals SDK von Microsoft entwickelt und ermöglicht es Anwendern, nicht nur Daten zu visualisieren bzw. zu konsumieren, sondern darüber hinaus auch aktiv über die Datenbank mit den Daten zu interagieren. Über Bedienelemente wie Eingabefelder oder Buttons können Benutzer Aktionen auslösen, die HTTP-Anfragen an Azure Functions als verwendete Middleware senden. Diese Anfragen enthalten die nötigen Informationen, um gezielte Datenbankoperationen auszuführen.

Die Azure Functions sind als Webservice im Focus Planner-eigenem Azure Tenant gehostet. Sie fungieren als zentrale Schnittstelle zwischen dem Visual und der Datenbank des Kunden. Die Azure Functions empfangen HTTP-Requests vom Visual, übernimmt die Authentifizierung und führt anschließend die entsprechenden SQL-Befehle aus. Sie ist so konzipiert, dass sie mandantenfähig ist und mit verschiedenen SQL Server Instanzen kommunizieren kann – unabhängig davon, in welchem Azure Tenant diese betrieben werden.

Die Azure SQL Server Instanz befindet sich im Azure Tenant des jeweiligen Kunden. Sie enthält die relevanten Datenstrukturen und Tabellen, auf die die Azure Functions zugreift. Die Verbindung erfolgt über dedizierte SQL-Logins. Der Datenbanknutzer sollte nur die minimal nötigen Rechte besitzen, um die angeforderten Operationen durchzuführen, was ein hohes Maß an Sicherheit gewährleistet.

Ein üblicher Designprozess beginnt damit, dass ein Ersteller (Editor) einen Power BI Report mit dem Custom Visual cBI Focus Planner als eine Planungsanwendung erstellt und anschließend den vorgesehenen Endnutzern (Planern) zur Nutzung zur Verfügung stellt (siehe hier für Details zum Rollenmodell). Planer werden dadurch in die Lage versetzt Plandaten in das vorgesehene Matrix Visual einzugeben oder dafür bestimmte, vorhandene Daten zu modifizieren. Die Eingaben werden jeweils mit einem Klick auf dem „Speichern“-Button bestätigt. Daraufhin erfolgt ein HTTP POST-Request an die Azure Functions, mit enthaltenen Nutzdaten. Die Azure Functions verarbeiten entsprechende Anfragen, indem sie eine Verbindung zur SQL Server Instanz im Kunden-Tenant der Azure Cloud herstellt, anschließend einen INSERT- und/oder UPDATE-Befehl ausführt sowie die datenbankseitige Rückmeldung – Erfolg oder Fehler – an das Visual zurücksende und bei erfolgreichem Rückschreiben alle Visuals im Report automatisch aktualisiert.

Powered by BetterDocs