Die Ebenen von FileMaker’s Architektur
Die Architektur von FileMaker zeigt, wie flexibel und leistungsfähig es ist, sodass es reibungslos auf verschiedenen Plattformen funktioniert. In diesem Artikel werden die Schichten der FileMaker-Anwendung näher betrachtet.
Support-Schicht: Die Basis
Die Support-Schicht bietet die notwendigen Funktionen für die Anwendung. Sie funktioniert mit allen 16k-Architekturen, einschließlich PowerPC, Intel32, Intel64, ARM6, ARM7, ARM7s und ARM64. Unterstützte Betriebssysteme sind Windows, macOS und iOS, und seit der Server-Version 19.1.2 wird auch Linux wieder unterstützt. Wolfram Decorte hat die Neuerungen dieser Version gut zusammengefasst.
Hier finden sich zentrale Funktionen wie Dateizugriff, Thread-Verwaltung, Kryptographie und Netzwerkoperationen. Fast alle in C++ geschriebenen Komponenten nutzen diese Support-Schicht, wobei alle Anfragen über dasselbe API laufen, sodass sich andere Programmierelemente keine Sorgen über ihre Plattform machen müssen.
HBAM: Der ursprüngliche Teil
HBAM (Hierarchisches B-Baum-Zugriffsverfahren) stammt aus dem Jahr 1988 und regelt die Speicherung von FileMaker-Daten in Blöcken innerhalb der Datei. Diese Schicht ist eng mit dem Dateisystem verbunden. Zuerst wurden die Daten in 512-Byte-Blöcken gespeichert, was der Blockgröße einer Floppy Disk entspricht; das Lesen und Schreiben geschah in 5 kB-Blöcken. Mit Version 3 verdoppelte sich diese Größe auf 1k und mit Version 7 auf 4k, was zum Standard für die meisten Wechselmedien wurde. Obwohl die Nutzung von SSDs eine Anpassung der Blockgrößen nahelegt, gab es seit der .fmp12-Dateierweiterung (2020) keine wesentlichen Änderungen am Dateisystem.
Datenbank-Engine: Das Herzstück
Die Datenbank-Engine repräsentiert die grundlegende Datenbank, die Berechnungen, Netzwerkverkehr, Suchanfragen und Transaktionen verarbeitet. Wichtig zu wissen ist, dass dies keine SQL-Datenbank ist. Ein kleiner Teil kann SQL-Abfragen bearbeiten, wandelt sie jedoch in das FileMaker-Format um und verarbeitet sie weiter.
Aufgrund des Umwandlungsprozesses können diese SQL-Abfragen nicht schneller als native Abfragen sein. Sie sind jedoch nützlich für Ad-hoc-Abfragen, die ohne Joins gegen die Datenbank ausgeführt werden sollen.
Design-Oberfläche: Die Rendering-Schicht
Diese Schicht, inspiriert von der MacDraw-App, ist für das Rendern von Layoutdaten, Mausaktionen auf Objekten und die Erstellung von PDFs zuständig. Die Server-Version konzentriert sich bei dieser Schicht nur auf die PDF-Generierung. Andere Plattformen haben ihre Zeichenschichten an die jeweiligen Betriebssysteme (Windows, macOS, iOS) angepasst.
FMEngine oder Benutzer-Modell: An der Spitze
Layouts und Skripte werden hier gespeichert, und diese Schicht kommuniziert mit der FileMaker-Skripting-Engine, die empfindlich auf Tabellen, Datensätze, Felder und Layouts reagiert. Jeremy Brown von GeistInteractive hat einen Podcast, der dieses wichtige Merkmal des Kontexts für Benutzer und Programmierer gut erklärt.
Diese geschichtete Architektur zeigt nicht nur die technische Fähigkeit von FileMaker, sondern auch seine Vielseitigkeit auf verschiedenen Plattformen, die für ein reibungsloses und effektives Benutzererlebnis sorgt.