Caché

You’ll make breakthroughs
in
data management 
and rapid development

Der multidimensionale Caché-Datenserver

Die Hochleistungsdatenbank von Caché verwendet eine multidimensionale Daten-Engine zur effizienten und kompakten Speicherung von komplex strukturierten Daten. Alle Klassen und Tabellen sind in einem Unified Data Dictionary definiert, das die Objekt- und SQL-Sicht jeweils auf die multidimensionalen Strukturen abbildet – eine Zuordnung, die Caché automatisch generieren kann. Caché bietet darüber hinaus den direkten Zugriff auf die multidimensionale Datenstruktur.

Integrierter Datenbankzugriff

Caché lässt dem Programmierer die Wahl, ob er auf die Daten als Objekte, über SQL oder direkt über die multidimensionale Struktur zugreifen möchte. Unabhängig von der Zugriffsmethode werden alle Daten in der Datenbank von Caché immer in multidimensionalen Arrays abgelegt. Sind die Daten einmal gespeichert, können alle drei Zugriffsmethoden gleichzeitig für dieselben Daten bei uneingeschränktem simultanem Zugriff genutzt werden. Ein einzigartiges Merkmal von Caché ist seine Unified Data Architecture. Bei der Definition einer Objektklasse in der Datenbank erzeugt Caché automatisch eine mit SQL nutzbare relationale Beschreibung der Daten.

Integrierter Datenbankzugriff

Ebenso erzeugt Caché automatisch nicht nur eine relationale, sondern auch eine Objektbeschreibung der Daten, wenn DDL-Definitionen einer relationalen Datenbank in das Data Dictionary importiert werden, so dass der Zugriff auf Objekte sofort möglich ist. Caché koordiniert diese Beschreibungen automatisch und es gibt nur eine einzige Datendefinition, die gepflegt werden muss. Der Programmierer kann dieses Dictionary sowohl aus Objektsicht als auch aus den relationalen Tabellen heraus bearbeiten und anzeigen.

Caché erstellt automatisch eine Zuordnung, die festlegt, wie Objekte und Tabellen in den multidimensionalen Strukturen gespeichert werden. Alternativ kann der Programmierer diese Zuordnung allerdings auch explizit festlegen.

Die Vorteile mit Caché

Flexibilität: Die Datenzugriffsmodi von Caché – Objekte, SQL und multidimensional – können gleichzeitig für dieselben Daten verwendet werden. Diese Flexibilität erlaubt es dem Programmierer, Daten immer auf die Weise zu betrachten, die gerade am geeignetsten ist, und stets die Zugriffsmethode zu verwenden, die am besten zu den Anforderungen des entsprechenden Programms passt.

Geringerer Aufwand: Die Unified Data Architecture von Caché beschreibt die Daten in einer einzigen Definition als Objekte und als Tabellen. Transformationen werden überflüssig, so dass Anwendungen einfacher entwickelt und gepflegt werden können.

Vorhandene Kenntnisse und Anwendungen nutzen: Programmierer können ihre relationalen Kenntnisse nutzen und bei der Weiterentwicklung vorhandener Anwendungen nach und nach objektorientierte Elemente einsetzen.

NoSQL: Caché unterstützt das NoSQL-Paradigma mittels seines direkten Datenzugriffs.

Das multidimensionale Datenmodell

Die Datenbank Caché basiert auf einer extrem leistungsstarken multidimensionalen Daten-Engine. Der direkte Zugriff auf multidimensionale Strukturen geschieht über die integrierten Skriptsprachen von Caché, die zugleich für höchste Performance und umfassende Speichermöglichkeiten sorgen. Viele Anwendungen nutzen ausschließlich den direkten Zugriff auf diese Daten-Engine. Der direkte “Global-Zugriff” wird häufig bei unüblichen oder sehr speziellen Strukturen verwendet und wenn keine Notwendigkeit für objektorientierte oder SQL-basierte Zugriffe besteht beziehungsweise wenn die höchstmögliche Performance gefordert ist.

Die multidimensionale Daten-Engine selbst kennt kein Data Dictionary und folglich auch keine Datendefinitionen.

Komplexe multidimensionale Datenstrukture

Die multidimensionalen Arrays von Caché werden als „Globals“ bezeichnet. In einem Global können Daten mit einer beliebigen Anzahl von Subscripts gespeichert werden. Darüber hinaus sind die Subscripts nicht an bestimmte Typen gebunden und können beliebige Daten enthalten. Das heißt, ein Subscript kann ein Integer-Wert wie „34“ sein, ein anderes eine Bezeichnung wie „RechnungsPosition“ – und das alles auf der gleichen Subscript-Ebene.

In einer Inventur-Anwendung, die Informationen über Artikel und deren Größe, Farbe und Muster enthält, könnte die Datenstruktur beispielsweise so aussehen:

^Bestand(Artikel,Größe,Farbe,Muster) = Lagerbestand

Dazu ein Datenbeispiel:

^Bestand(“Kleid”,38,”blau”,”Blütenmuster”) = 3

Mit dieser Datenstruktur lässt sich problemlos feststellen, ob Kleider der Größe 38 in Blau mit Blütenmuster auf Lager sind – einfach durch Zugriff auf genau diesen Datenknoten. Möchte eine Kundin nun zwar ein Kleid der Größe 38, ist sich aber über Farbe und Muster noch unschlüssig, dann wird einfach eine Liste aller Kleider der Größe 38 erstellt, indem alle Datenknoten unterhalb der Ebene des folgenden Datenknotens durchsucht werden:

^Bestand(“Kleid”,38)

In diesem ersten Beispiel hatten alle Datenknoten einen ähnlichen Aufbau (sie enthielten den Lagerbestand) und wurden alle auf der gleichen Subscript-Ebene (vier Subscripts) mit ähnlichen Subscripts (das dritte Subscript war immer eine Textbezeichnung für die Farbe) gespeichert. Das muss jedoch keineswegs immer so sein: Datenknoten müssen weder über die gleiche Anzahl noch über die gleichen Typen von Subscripts verfügen und sie können durchaus ganz unterschiedliche Datentypen enthalten.

Hier deshalb ein Beispiel für einen etwas komplexeren Global mit Rechnungsdaten, bestehend aus unterschiedlichen Datentypen, die auf verschiedenen Subscript-Ebenen gespeichert sind:

^Rechnung(Rechnungsnummer,”Kunde”) = Kundeninformation
^Rechnung(Rechnungsnummer,”Datum”) = Rechnungsdatum
^Rechnung(Rechnungsnummer,”Positionen”) = Anzahl der Position der Rechnung
^Rechnung(Rechnungsnummer,”Positionen”,1,”Artikel”) = Artikelnummer der 1. Position
^Rechnung(Rechnungsnummer,”Positionen”,1,”Menge”) = Menge der 1. Position
^Rechnung(Rechnungsnummer,”Positionen”,1,”Preis”) = Preis der 1. Position
^Rechnung(Rechnungsnummer,”Positionen”,2,”Artikel”) = Artikelnummer der 2. Position
etc.

Mehrere Datenelemente pro Knoten

WORLD-CUBE-small

Oftmals enthält ein Datenknoten lediglich ein einziges Datenelement, z. B. ein Datum oder eine Stückzahl. Gelegentlich ist es aber auch zweckmäßig, mehrere Datenelemente gemeinsam in einem einzigen Knoten zu speichern. Dies ist vor allem dann nützlich, wenn es sich um Daten handelt, die in enger Beziehung zueinander stehen und deshalb oft gemeinsam aufgerufen werden. Dies kann auch zur Performance-Verbesserung beitragen, weil seltener auf die Datenbank zugegriffen werden muss.

In unserem vorherigen Rechnungsbeispiel enthielten die Rechnungspositionen eine Artikelnummer mit Menge und Preis, wobei jede Position als separater Knoten gespeichert wurde. Alternativ könnte man die Angaben für jede Position jeweils zusammen in einem Knoten speichern:

^Rechnung(Rechnungsnummer,”Positionen”,Positionsnummer)

Mit Caché geht das recht einfach, weil die Funktion „$list“ mehrere Datenelemente in einen Binärstring packen und später unter Beibehaltung der unterschiedlichen Datentypen wieder entpacken kann. Elemente können wiederum Unterelemente enthalten, diese wiederum ebenfalls etc.

Logische Sperren unterstützen extreme Nebenläufigkeit

Die Minimierung von Konflikten zwischen konkurrierenden Prozessen ist eine der Grundvoraussetzungen für höchste Performance in Systemen mit Tausenden von Benutzern. Einer der Hauptkonflikte besteht dabei zwischen Transaktionen, die Zugriff auf dieselben Daten erfordern.

In Caché sperren Transaktionen beim Update von Daten keine kompletten physikalischen Seiten. Weil häufig nur Zugriffe oder Änderungen kleinster Datenmengen notwendig sind, erfolgen alle Datenbanksperren stattdessen auf logischer Ebene. Zusätzlich werden Datenbankkonflikte durch atomare Additions- und Subtraktionsoperationen reduziert, die überhaupt keine Sperren benötigen. (Solche Operationen sind besonders hilfreich beim Heraufsetzen von Kennungen oder für statistische Zähler.)

So laufen mit Caché die einzelnen Transaktionen schneller und es können wesentlich mehr Transaktionen gleichzeitig ausgeführt werden.

Sparse Arrays mit variablen Datenlängen

Kennzeichnend für Caché sind variable Datenlängen und deren Speicherung in Sparse Arrays. Im Vergleich zu relationalen Datenbanken sinkt deshalb der Speicherbedarf häufig um mehr als 50 %. A ber die kompakte Datenspeicherung macht sich nicht nur in den geringeren Anforderungen an die Plattenkapazitäten bemerkbar: Weil mit einer einzelnen Operation mehr Daten gelesen oder geschrieben werden können und die Daten auch effizienter im Cache abgelegt werden, wirkt sich dies auch noch zusätzlich positiv auf die Performance aus.

Deklarationen und Definitionen sind überflüssig

Die multidimensionalen Arrays von Caché sind grundsätzlich typfrei, sowohl was die Daten als auch was die Subscripts angeht. Es sind weder Deklarationen, Definitionen noch Speicherzuweisungen erforderlich. Global-Daten entstehen ganz einfach, wenn sie erstmals in der Datenbank gespeichert werden.

Namespaces

In Caché werden Daten und Code in Dateien mit der Bezeichnung CACHE.DAT gespeichert (jeweils eine Datei pro Verzeichnis). Jede dieser Dateien enthält eine Vielzahl an Globals (multidimensionalen Arrays). Innerhalb einer Datei muss jeder Global-Name einmalig sein, aber unterschiedliche Dateien können Globals mit gleichen Namen enthalten. Diese Dateien stellen, stark vereinfacht betrachtet, die Datenbanken dar.

Um auf Daten zuzugreifen, müssen Caché-Prozesse allerdings nicht wissen, wo genau sich die betreffende CACHE.DAT-Datei befindet. Sie verwenden zur Adressierung vielmehr einen „Namespace“. Ein solcher Namespace ist eine logische Zuordnung der Namen der multidimensionalen Globals und des Codes zu den einzelnen Datenbanken. Wird eine Datenbank auf eine andere Festplatte oder einen anderen Rechner verschoben, muss nur die Namespace-Zuordnung aktualisiert werden – die Anwendung selbst bleibt unverändert.

In der Regel werden alle zu einem Namespace gehörenden Daten, außer einigen Systeminformationen, in einer einzigen Datenbank gespeichert. Namespaces stellen jedoch eine flexible Struktur dar, die eine beliebige Zuordnung erlaubt. So können die Inhalte eines Namespace durchaus aus verschiedenen Datenbanken zusammengestellt werden, wobei sich diese sogar auf verschiedenen Rechnern befinden können.

Vorteile mit Caché

Performance: Der Einsatz eines multidimensionalen Datenmodells mit Sparse Array-Speichertechnik ermöglicht im Vergleich zum unhandlichen Gewirr zweidimensionaler Tabellen Datenzugriffe und Aktualisierungen mit deutlich weniger Festplattenzugriffen. Für Anwendungen heißt das: Sie laufen ganz einfach schneller.

Skalierbarkeit: Caché-basierende Anwendungen sind aufgrund ihres transaktionsorientierten multidimensionalen Datenmodells auf viele Tausende von Clients skalierbar, ohne dabei die hohe Performance einzubüßen. Das liegt daran, dass der Datenzugriff im multidimensionalen Modell im Gegensatz zum relationalen Modell nur unwesentlich von Größe oder Komplexität der Datenbank beeinflusst wird. Transaktionen greifen ohne komplizierte Join-Operationen oder das berüchtigte „Table Hopping“ direkt auf die benötigten Daten zu.

Ein wichtiger Faktor für das reibungslose Funktionieren der gleichzeitigen Zugriffe sind die logischen Sperren in Caché – anstatt der Sperre ganzer physikalischer Seiten – wie auch das ausgefeilte Daten- Caching über Netzwerke.

Schnelle Anwendungsentwicklung: Caché beschleunigt die Anwendungsentwicklung, weil die Datenstruktur die natürliche, einfach verständliche Speicherung komplexer Daten ermöglicht und umfangreiche oder komplexe Deklarationen und Definitionen überflüssig werden. Der direkte Zugriff auf Globals ist sehr einfach und erlaubt die Verwendung der gleichen Sprachsyntax wie beim Zugriff auf lokale Arrays.

Wirtschaftlichkeit: Im Vergleich zu relationalen Anwendungen ähnlicher Größe kommen Caché-basierende Anwendungen mit erheblich weniger Hardware und ohne Datenbankadministratoren aus. Systemverwaltung und laufender Betrieb sind ausgesprochen einfach.

SQL-Zugriff

Caché verwendet als Abfragesprache SQL, wobei der volle Umfang relationaler Datenbankfunktionalität unterstützt wird – einschließlich DDL, Transaktionen, referenzieller Integrität, Triggern, Stored Procedures und vielem mehr. Caché unterstützt den Datenzugriff über ODBC und JDBC (mittels eines rein Java-basierenden Treibers). SQL-Befehle und -Abfragen können darüber hinaus auch in Caché ObjectScript und in Objektmethoden eingebettet werden.

Für den Zugriff mit SQL werden Daten als Tabellen mit Zeilen und Spalten betrachtet. Da Caché jedoch alle Daten in effizienten multidimensionalen Strukturen speichert, erzielen Anwendungen bei der Nutzung von SQL mit Caché eine bessere Performance als mit traditionellen relationalen Datenbanken.

Neben der SQL-Standardsyntax unterstützt Caché eine Vielzahl der in anderen Datenbanken häufig verwendeten Erweiterungen, so dass viele SQL-basierte Anwendungen ohne Änderung auf Caché laufen können – dies gilt vor allem für diejenigen, die mit datenbankunabhängigen Werkzeugen erstellt wurden. Proprietäre Stored Procedures erfordern allerdings etwas Nachbearbeitung, hier erleichtert InterSystems den Umstieg mit entsprechenden Migrationswerkzeugen

Caché SQL bietet zudem objektorientierte Erweiterungen, die den SQL-Code vereinfachen und wesentlich intuitiver gestalten.

Traditional SQL

SELECT
VK.Name, VM.Beschr, HV.Wert, VP.InvDatum, VP.InvNummer

FROM
HauptVerkauf HV, VerkaufPosition VP, VerkaufProdukt VPR, VerkaufKunde VK, VerkaufMarkt VM

WHERE
VP.VerkaufsPositionID *=HV.VerkaufPosition
AND VPR.VerkaufProduktID *=HV.Produkt
AND VK.VerkaufKundeID *=HV.Kunde
AND VM.VerkaufMarktID *= VM.VerkaufMarkt
AND VP.Beschr = "Hammer"

SQL mit objektorientierten Erweiterungen

SELECT
Kunde->Name,
Kunde->VerkaufMarkt->Beschr, Wert,
VerkaufPosition->InvDatum, VerkaufPosition->InvNummer

FROM
HauptVerkauf

WHERE
Produkt->Beschr = 'Hammer'

Zugriff auf relationale Datenbanken mit dem Caché Relational Gateway

Relational-gateway-5Über das Caché Relational Gateway können in Caché erzeugte SQL-Befehle zur Ausführung an andere (relationale) Datenbanken geschickt werden. Eine Caché-Anwendung ist damit in der Lage, Daten aus den meisten relationalen Datenbanken zu lesen und zu verarbeiten.

Alternativ können Caché-Anwendungen über das Gateway auch direkt mit relationalen Datenbanken arbeiten. Eine höhere Performance und Skalierbarkeit erreichen Applikationen allerdings auf Basis von Caché.

Vorteile mit Caché

Schnelleres SQL: Relationale Anwendungen werden signifikant schneller, wenn sie über Caché SQL auf Caché als effizienter postrelationaler Datenbank aufsetzen.

Schnellere Entwicklung: In Caché können SQL-Abfragen intuitiver und mit weniger Code-Zeilen erstellt werden.

Kompatibilität mit relationalen Anwendungen und Auswertungswerkzeugen: Die nativen ODBC- und JDBC-Treiber von Caché ermöglichen relationalen Anwendungen und Auswertungswerkzeugen einen hochperformanten Zugriff auf die Caché-Datenbank. Mit dem Caché Relational Gateway können Caché-Anwendungen über SQL auf andere (relationale) Datenbanken zugreifen.

Objekte in Caché

Das Objektmodell von Caché basiert auf dem ODMG-Standard und unterstützt die ganze Palette an objektorientierten Programmierkonzepten wie Kapselung, eingebettete Objekte, (Mehrfach-) Vererbung, Polymorphismus und Collections.

Mit den in Caché integrierten Skriptsprachen können Objekte direkt bearbeitet werden. Caché stellt Caché-Klassen auch als Java-, .NET- und C++-Klassen dar. Im Caché Studio können Klassen außerdem durch einfachen Mausklick automatisch XML- und SOAP-fähig gemacht werden. Somit stehen die Caché-Objekte zum Einsatz mit jeder gängigen Objekttechnologie jederzeit zur Verfügung.

Für Programme außerhalb des Caché-Applikationsservers bestehen verschiedene Möglichkeiten, auf Caché-Klassen zuzugreifen:

  1. Caché ObjectsJede Caché-Klasse kann als native Klasse für verschiedene Sprachen projiziert werden. Wenn ein Java-, C++-, C#- oder anderes Programm auf ein Caché-Objekt zugreift, ruft dieses eine Projektion der Klasse in der betreffenden Sprache auf. Diese projizierte Klasse, die von Caché automatisch erzeugt wird, kommuniziert mit dem Caché-Applikationsserver, um Methoden auf dem Caché-Server aufzurufen und auf Eigenschaften zuzugreifen oder diese zu ändern. Der Zustand der Caché-Objekte wird derweil immer im Caché-Applikationsserver verwaltet. Um die Ausführung zu beschleunigen und den Nachrichtenaustausch zu verringern, legt Caché eine Kopie der Daten des Objekts im Cache des Clients ab und überträgt Aktualisierungen nach Möglichkeit im Huckepackverfahren mit anderen Nachrichten.
  2. Die Technologie Caché eXTreme kann für Datenbankklassen verwendet werden, bei denen die projizierte Klasse in der jeweiligen Sprache direkt auf die Datenbank zugreift und den Caché-Applikationsserver umgeht. Hier wird der Zustand des Objekts nicht auf dem Applikationsserver gehalten und die Eigenschaften im Speicher werden nur auf dem Client verwaltet. Dieser Ansatz zeichnet sich durch einen signifikant höheren Durchsatz aus, bietet aber eine geringere Funktionalität, da serverseitige Instanzmethoden der Klasse (d. h. Methoden, die Zugriff auf die Eigenschaften im Speicher benötigen) nicht aufgerufen werden können. Caché eXTreme ist für C++ und Java verfügbar.
  3. Die InterSystems Jalapeño™ Technologie ist speziell für Java-Entwickler gedacht. Sie können damit zuerst in ihrer bevorzugten Java-Entwicklungsumgebung die Java-Datenbankklassen wie jede andere Java-Klasse erstellen. Auf Knopfdruck übernimmt Caché dann die Generierung eines Datenbankschemas und der entsprechenden Caché-Klassen daraus. Bei diesem Ansatz bleibt die Java-Klasse unverändert und die Anwendung greift weiterhin auf deren Eigenschaften und Methoden zu. Caché bietet eine Bibliotheksklasse (den „ObjectManager“) mit einem API, das zum Speichern und Abrufen von Datenbankobjekten und für Abfragen verwendet wird.

In jedem dieser drei Ansätze erscheinen Objekte für das Benutzerprogramm als lokal. Caché verwaltet auf transparente Weise die gesamte Kommunikation, entweder per Call-in oder über TCP.

Methodengeneratoren

Caché zeichnet sich durch eine Reihe einzigartiger, modernster Objekttechnologien aus – eine davon sind die Methodengeneratoren. Ein Methodengenerator ist eine Methode, die bei der Kompilierung ausgeführt wird und ihrerseits wieder Code erzeugt, der dann bei der späteren Ausführung des Programms abläuft. Ein Methodengenerator hat Zugriff auf Klassendefinitionen, einschließlich der Eigenschafts- und Methodendefinitionen und -parameter, um für die Klasse angepasste Methoden erzeugen zu können. Methodengeneratoren sind insbesondere in Zusammenhang mit der Mehrfachvererbung wirkungsvoll – damit kann eine Funktionalität aus einer zusätzlichen Oberklasse geerbt werden und sich selbst an die Unterklasse anpassen.

Vorteile mit Caché

Caché ist vollständig objektorientiert und bietet Entwicklern von hochleistungsfähigen, transaktionalen Applikationen die ganze Bandbreite der Objekttechnologie.

Schnelle Anwendungsentwicklung: Die Objekttechnologie ist ein leistungsstarkes Werkzeug zur Steigerung der Produktivität von Programmierern. Mit ihrer Hilfe lassen sich Objekte – so komplex sie auch sein mögen – in einfacher und realistischer Weise betrachten und damit der Anwendungsentwicklungsprozess erheblich beschleunigen. Da Objekte naturgemäß modular aufgebaut und interoperabel sind, vereinfacht dies die Pflege von Anwendungen und erlaubt Programmierern die Nutzung ihrer Arbeiten über viele Projekte hinweg.

Natürliche Entwicklung: Datenbankobjekte sind in der vom Entwickler verwendeten Sprache als native Objekte verfügbar. Es ist nicht mehr notwendig, umständlich Code zur Zerlegung von Objekten in Zeilen und Spalten zu erstellen und diese dann später neu zusammenzusetzen.

Transaktionale Bitmap-Indizierung

Eine einzigartige Möglichkeit von Caché stellt die transaktionale Bitmap-Indizierung dar, die die Performance komplexer Abfragen signifikant steigern kann und Abfragen auf Live-Daten mit einer sonst nur in Data Warehouse-Abfragen erzielbaren Geschwindigkeit ausführt.

Die Performance einer Datenbank hängt entscheidend davon ab, ob Indices auf Eigenschaften vorhanden sind, die häufig zum Durchsuchen der Datenbank verwendet werden. Üblicherweise enthält ein Index in einer Datenbank für jeden möglichen Wert der Spalte oder der Eigenschaft eine Liste mit den Kennungen der Zeilen oder Objekte, die diesen Wert enthalten.

Ein Bitmap-Index funktioniert etwas anders. Hier gibt es für jeden möglichen Wert einer Spalte oder Eigenschaft einen Bitstring, in dem jedes Bit für eine Zeile oder ein gespeichertes Objekt steht. Ein Bitwert von 1 bedeutet, dass die Zeile oder das Objekt den entsprechenden Wert für diese Spalte oder Eigenschaft aufweist.

Der Vorteil von Bitmap-Indices liegt nun darin, dass komplexe Abfragen durch die Anwendung von Booleschen Operatoren (UND, ODER etc.) auf die Bitstrings verarbeitet werden können – so lässt sich effizient ermitteln, welche Objekte (Zeilen) die Abfragebedingungen erfüllen, ohne dass die gesamte Datenbank durchsucht werden muss. Bitmap-Indices beschleunigen die Antwortzeit bei Abfragen großer Datenvolumina oftmals um den Faktor 100 oder höher.

Allerdings bringen Bitmaps in der Regel zwei Nachteile mit sich: a) In relationalen Datenbanken ist die Aktualisierung oft extrem langsam. b) Sie belegen oft viel zu viel Speicher. Daher werden sie in relationalen Datenbanken selten für transaktionsverarbeitende Anwendungen eingesetzt.

Durch transaktionale Bitmap-Indices nutzt Caché seine multidimensionale Datenstruktur, um diese beiden Nachteile zu eliminieren. Die Aktualisierung solcher Bitmaps ist oft sogar schneller als bei herkömmlichen Indices. Zudem wird eine ausgefeilte Komprimierungstechnik verwendet, um den Speicherbedarf drastisch zu reduzieren. Caché unterstützt auch ausgefeilte „Bit-Slicing“-Techniken. Das Ergebnis sind blitzschnelle Bitmaps, mit denen bei einer Online-Datenbank oftmals Millionen von Datensätzen im Bruchteil einer Sekunde durchsucht werden können. Business Intelligence- und Data Warehousing-Anwendungen können dadurch mit „Live“-Daten, also in Echtzeit, arbeiten.

Caché unterstützt sowohl herkömmliche Indices als auch transaktionale Bitmap-Indices, auch über mehrere Spalten. So kann man beispielsweise mit einem Index auf „Bundesland“ und „FahrzeugModell“ schnell jeden Fahrer ermitteln, der in einem bestimmten Bundesland ein bestimmtes Auto fährt.

Die Vorteile mit Caché

Dramatisch schnellere Abfragen: Durch den Einsatz transaktionaler Bitmap-Index-Techniken werden große Datenbanken mit rasanter Geschwindigkeit durchsucht – häufig Millionen von Datensätzen im Bruchteil einer Sekunde –, und das auf einem System, das primär zur Transaktionsverarbeitung verwendet wird.

Aktualisierung mit “Transaktionsgeschwindigkeit”: Caché-Bitmap-Indices können genauso schnell aktualisiert werden wie herkömmliche Indices, was sie auch für den Einsatz in transaktionsverarbeitenden Anwendungen prädestiniert.

Daten Analysen in Echtzeit: Mit der transaktionalen Bitmap- Indizierung von Caché lassen sich Datenanalysen in Echtzeit auf den aktuellen Daten durchführen.

Analysen direkt auf dem Produktions-Server: Ein zweiter Computer für das Data  Warehouse oder die Entscheidungsunterstützung ist überflüssig. Ebenso entfällt auch das tägliche Übertragen von Daten auf ein zweites System und man braucht keinen Datenbankadministrator, der sich darum kümmert.

Skalierbarkeit: Die hohe Geschwindigkeit der transaktionalen Bitmaps sorgt dafür, dass problemlos Systeme mit riesigen Datenmengen aufgebaut werden können, die es zu durchsuchen gilt.

Textsuche mit Worterkennung

Caché unterstützt eine komfortable Freitextsuche, bei der Abfragen Wörter im Text auch dann finden, wenn es sich um Varianten des Suchworts handelt. Die Algorithmen für Freitextsuche sind sprachspezifisch. Die Möglichkeit dazu ist für eine breite Palette natürlicher Sprachen verfügbar, darunter Englisch, Französisch, Deutsch, Italienisch, Japanisch, Portugiesisch und Spanisch. Weitere werden gerade hinzugefügt.


Word-aware indexing

word-aware-searching

Die Vorteile mit Caché

Leistungsstarke mit Worterkennung: Unstrukturierter Text, wie zum Beispiel ärztliche Aufzeichnungen oder Dokumente, können einfach nach Schlüsselwörtern und verwandten Wörtern durchsucht werden.

Extrem schnelle Suche: Wenn man die Worterkennung mit der transaktionalen Bitmap-Indizierung von Caché verbindet, können extrem umfangreiche Textmengen in Sekundenbruchteilen durchsucht werden.

innovation@350-dpi-InterSystems iKnow-Technologie

Mit InterSystems’ Technologie iKnow ist es möglich, Texte und andere unstrukturierte Datentypen zu analysieren und zu indizieren, was es erlaubt, wichtige Informationen, Konzepte und Relationen zu identifizieren. Anders als die meist semantischen Suchtechnologien am Markt, ist iKnow in der Lage, die wichtigsten und bedeutungsvollsten Elemente in den Daten automatisch, ohne Hilfe des Anwenders, ja sogar ohne Suchbegriffe aufzuzeigen.

Smart Indexing

Smart Indexing analysiert und transformiert unstrukturierten Text in ein verständliches Netzwerk von

Relationen und Konzepten, ohne dafür vordefinierte Wörterbücher, Klassifikationsschemata oder Ontologien zu benötigen. Smart Indexing liefert Erkenntnisse darüber, was wichtig ist, was zusammengehört und was innerhalb langer unstrukturierter Texte charakteristisch ist, ohne auf Suchbegriffe angewiesen zu sein. Smart Indexing funktioniert mit einer ganzen Reihe von Sprachen. Es können so auch Konzepte (wiederkehrende Muster) in unstrukturierten Daten identifiziert werden, die nicht aus normalem Text bestehen.

Smart Matching

Die Ergebnisse des Smart Indexing werden dann durch Smart Matching mit dem spezifischen Wissen zu einem Wissensgebiet, einem Unternehmen oder einem Wirtschaftszweig verknüpft. Das Matching basiert auf dem Sinngehalt von Konzepten und den Kombinationen, in denen sie auftreten, nicht einfach nur Begriffen, und umfasst exakte, teilweise auch „unscharfe“ Übereinstimmungen.

Smart Interpretation

Smart-IndexingAnschließend wendet Smart Interpretation Analyseverfahren und/oder Geschäftsregeln auf die Ergebnisse des Smart Indexing und Smart Matching an. (Kann die Verwendung von InterSystems Ensemble® oder InterSystems DeepSee erfordern.)

Die Vorteile mit Caché

Integrierte Fähigkeit, unstrukturierte Daten zu analysieren und indizieren: InterSystems’ Technologie iKnow ist integraler Bestandteil von Caché. Es ist somit möglich, auf alle Daten, egal ob strukturiert oder unstrukturiert, ohne Zuhilfenahme von Lösungen oder Werkzeugen anderer Hersteller zuzugreifen.

Minimale Vorarbeiten: Anders als semantische Suchwerkzeuge ist InterSystems iKnow in der Lage, Konzepte und Relationen zu finden, ohne diese vorab definieren zu müssen. Anwender müssen somit nicht einmal wissen, wonach sie suchen, um es zu finden.

Mehsprachigkeit: InterSystems’ Technologie iKnow beherrscht eine Vielzahl von Sprachen, selbst wenn diese innerhalb eines Dokuments gemeinsam vorkommen.

Vielseitigkeit: Mit InterSystems iKnow können unterschiedlichste Herausforderungen gelöst werden: die interessantesten Elemente in einem Dokumentenstapel zu identifizieren, automatische Informationsweiterleitung basierend auf Ähnlichkeit zu anderen Informationen, Zusammenfassung langer Texte in verständliche Resümees und vieles mehr.

Das Enterprise Cache Protocol für verteilte Systeme

Skalierbare Performance in verteilten Systemen

ECP-chart-backgroundDas Enterprise Cache Protocol (ECP) von InterSystems ist eine skalierbare Hochleistungstechnologie, mit der Rechner in einer verteilten Konfiguration ihre Datenbanken gegenseitig nutzen können. Der Einsatz von ECP erfordert keine Änderungen der Anwendungen – Applikationen behandeln die Datenbank ganz einfach so, als wäre sie lokal vorhanden.

ECP arbeitet folgendermaßen: Jeder Caché-Applikationsserver enthält einen eigenen Datenserver, der Daten verarbeiten kann, die sich auf seinem eigenen Festplattensystem befinden oder die mit ECP von einem anderen Datenserver zu ihm übertragen wurden. Wenn ein Client Informationen anfordert, die sich auf einem entfernten Datenserver befinden, versucht der Applikationsserver, die Anforderung aus dem lokalen Cache zu bedienen. Ist dies nicht möglich, fordert er die notwendigen Daten vom entfernten Datenserver an. Die Antwort enthält den Datenbankblock bzw. die Datenbankblöcke, in denen die Daten gespeichert sind. Diese Blöcke werden im Cache des Applikationsservers abgelegt, so dass sie allen Anwendungen zur Verfügung stehen, die auf diesem Server ausgeführt werden. ECP stellt automatisch die Konsistenz des Caches über das Netzwerk sicher und leitet Änderungen an die betroffenen Datenserver weiter.

ECP bietet überwältigende Performance- und Skalierbarkeitsvorteile. Die Antwortzeiten auf den Clients sinken, weil benötigte Daten sich häufig bereits im lokalen Cache befinden. Darüber hinaus verringert Caching den Netzverkehr zwischen der Datenbank und den Applikationsservern.

Einfach einzusetzen – keine Änderungen an den Anwendungen

Der Einsatz von ECP ist für die Anwendungen transparent. Anwendungen, die für die Ausführung auf einem einzelnen Server geschrieben wurden, laufen ohne Änderung auch in einer Multi-Server-Umgebung. Um mit ECP zu arbeiten, bestimmt der System-Manager einfach für jeden Applikationsserver einen oder mehrere Datenserver. Mittels Namespace-Zuordnung lässt sich dann definieren, welche Global-Strukturen (oder Teile der Global-Strukturen) auf diese entfernten Datenserver verweisen sollen.

Flexibilität bei der Konfiguration

Jedes Caché-System kann für andere Systeme sowohl als Applikationsserver als auch als Datenserver fungieren. ECP unterstützt jede beliebige Kombination aus Applikationsservern und Datenservern sowie jede Punkt-zu-Punkt-Topologie mit bis zu 255 Systemen.

Vorteile mit Caché

Massive Skalierbarkeit: Das Caché Enterprise Protocol von Caché unterstützt bei steigenden Anforderungen das dynamische Hinzufügen von Applikationsservern, wobei jeder die Datenbank so verwendet, als ob diese lokal vorhanden wäre. Wird der Festplattendurchsatz zum Engpass, können weitere Datenserver hinzugefügt werden und die Datenbank wird entsprechend logisch partitioniert.

Höhere Verfügbarkeit: Da die Benutzer auf mehrere Rechner verteilt sind, betrifft der Ausfall eines Applikationsservers weniger Benutzer. Falls ein Datenserver abstürzt und neu gebootet werden muss oder wenn das Netzwerk vorübergehend ausfällt, können die Applikationsserver weiterarbeiten, ohne dass mehr als eine kleine Pause wahrgenommen wird. Die Konfiguration mehrerer Datenserver als ausfallsicheres Hardware-Cluster mit Backup-Datenservern kann die Verfügbarkeit enorm erhöhen.

Geringere Kosten: Viele preiswerte Rechner können zu einem extrem leistungsstarken System zusammengefügt werden, das die massiv parallele Verarbeitung unterstützt.

Transparente Nutzung: Anwendungen müssen nicht speziell für ECP geschrieben sein – Caché- Anwendungen nutzen ohne Änderungen automatisch die Vorteile von ECP.

Disaster Recovery und Hochverfügbarkeit

Selbst in den sichersten Umgebungen können unerwartete Ereignisse eintreten – Hardware- und Stromausfälle oder Katastrophen wie Fluten oder andere Naturereignisse –, trotzdem können es sich Krankenhäuser, Telekommunikationseinrichtungen und viele andere Unternehmen nicht leisten, einfach auszufallen. Um diesem hohen Standard gerecht zu werden, ist Caché so angelegt, dass es sich nach Ausfällen schnell wiederherstellen lässt und verschiedene Failover- und anderweitige Optionen bietet, um die Auswirkungen unerwarteter Ereignisse auf die Benutzer zu minimieren.

Caché Write-Image Journaling stellt zusammen mit anderen Funktionen die Integrität der Datenbank für die meisten Typen von Hardware-Ausfällen – einschließlich Stromausfällen – sicher und ermöglicht so ein schnelles Recovery und möglichst geringe Auswirkungen auf die Benutzer.

Caché bietet zusätzlich fortgeschrittene Optionen für die Konfiguration der Hochverfügbarkeit, um Auswirkungen auf die Benutzer weiter zu reduzieren:

  • Database Mirroring
  • Verteiltes ECP
  • Failover Clusters
Datenbank Mirroring

Mirroring ist eine Hochverfügbarkeitskonfiguration, mit der Daten in Echtzeit auf eine gesondert Festplatte kopiert werden, einschließlich automatischen Failovers.

Ein Datenbank-Mirror ist eine logische Gruppierung von zwei Caché-Systemen. Beim Start erklärt der Mirror eines dieser physikalisch unabhängigen Systeme zum Primary-System. Das andere wird automatisch zum Backup-System. Bei gespiegelten Datenbanken übernimmt der Primary die Echtzeit-Synchronisation des Backup- und Failover-Systems über einen TCP-Kanal. Das Backup-System sendet dann über einen eigens dafür bestimmten Kanal Bestätigungen für die empfangenen, gespiegelten Daten. Diese Bestätigungen zeigen, neben anderen Elementen, wie aktuell der Stand auf dem Backup-System ist.

Externe Clients (Language Bindings, ODBC/JDBC/SQL-Clients, direct angebundene Anwender, usw.) verbinden sich mit dem Mirror durch dessen Mirror Virtuelle IP (VIP), die während der Konfiguration des Mirroring festgelegt wird. Die Mirror VIP ist automatisch an eine Schnittstelle des Primär-Systems des Mirrors gekoppelt. Die Konfiguration der Mirror VIP ist optional. Falls sie nicht spezifiziert wird, müssen alle externen Clients sich direkt mit dem aktuellen Primary verbinden und über die beiden Mitglieder des Failover-Systems und ihre aktuelle Rolle innerhalb des Mirrors Bescheid wissen.

Falls das Primär-System ausfällt, übernimmt automatisch das Backup-System. Ist der Mirror so konfiguriert, dass Clients mittels des VIP angebunden sind, bemerken sie gar nicht, welches Mitglied des Mirrors ihre Anfragen beantwortet. Das Failover ist gegenüber dem Anwender vollständig transparent.database-mirror-chart

Caché ist auch in der Lage, mehrere (normalerweise regional voneinander getrennte) ASYNC Mirror-Mitglieder aktuell zu halten, was den Aufbau von Redundanzen innerhalb der Architektur ermöglicht, die das Disaster Recovery unterstützen. Das Failover zu einem ASYNC-System erfolgt allerdings nicht automatisch.

Zudem ist es möglich, dass mehrere Mirror dasselbe ASYNC-System aktuell halten, was einen zentralen Datenspeicher schafft und dadurch Business Intelligence auf unternehmensweiten Echtzeitdaten ermöglicht.

Vorteile mit Caché

Topsichere Datenbank: Caché Write-Image Journaling und andere Funktionen gewährleisten die Datenbankintegrität für die meisten Arten von Hardware-Ausfällen, einschließlich Stromausfällen.

Hochverfügbarkeits-Konfiguration: Der Einsatz des Datenbank-Mirrors, von ECP und/oder eines Failover Clusters erlaubt die schnelle Wiederherstellung nach einem Ausfall, während Auswirkungen auf den Anwender minimiert, in einigen Fällen sogar gänzlich eliminiert werden.

Hochverfügbarkeit zu geringen Kosten: Ein Caché Datenbank-Mirror verlangt weder Investitionen in teure Hardware noch Support, Betriebssystem-Lizenzen oder Speicherplatz. Zudem sind sie leicht aufzusetzen und zu pflegen, so dass auch die Kosten für Systemadministratoren minimal sind.

Der Datenbank-Mirror im Zusammenspiel mit ECP

Wenn das Enterprise Cache Protocol (ECP) zusammen mit einem Datenbank-Mirror eingesetzt wird, verfügen die Applikationsserver von Hause aus über das Wissen der Mitglieder des Mirrors, einschließlich des Wissens, wer gerade der Primary ist. Deshalb sind die Applikationsserver auch nicht auf die Mirror VIP angewiesen, sondern verbinden sich stattdessen direkt mit dem System, das gerade den Primary stellt.

Falls das Primary-System des Mirrors ausfällt, betrachten die ECP-Applikationsserver dies quasi als Serverneustart. Die Server stellen die Verbindung einfach erneut her, nun zu dem neuen Primary, das zuvor das Failover-System war. Dann setzen sie die aktuelle Aufgabe fort. Der Anwender bemerkt davon, außer vielleicht einer kleinen Verzögerung, nichts.

Failover Clusters

In einem Failover Cluster greifen mehrere Datenserver gemeinsam auf dieselben Platten zu, aber nur ein Server führt Caché aktiv aus. Wenn der aktive Server ausfällt, wird Caché automatisch auf einem anderen Server gestartet, der sofort die Verantwortung für die Verarbeitung übernimmt. Die Benutzer können sich ohne Zeitverzögerung direkt beim neuen Server anmelden.

Auch ein ECP-Datenserver kann als Failover Cluster konfiguriert werden. Falls der primäre Datenserver ausfällt, übernimmt einfach der Backup-Server.

Das Sicherheitsmodell

Caché ist für die Common Criteria EAL 3 zertifiziert. Das Sicherheitsmodell von Caché ist so entworfen, dass es die Anwendungsentwicklung auf drei Arten unterstützt:

Das Sicherheitsmodell

Sicherheit im Zusammenhang mit Caché basiert auf Authentifizierung, Auditing und Datenbankverschlüsselung. All diese Sicherheitseinrichtungen von Caché beeinträchtigen die Performance von Anwendungen nur minimal.

Authentifizierung

Mit der Authentifizierung beweist ein Benutzer gegenüber Caché, dass er derjenige ist, für den er sich ausgibt. (Ein „Benutzer“ ist dabei nicht zwangsläufig ein Mensch. Es kann sich dabei zum Beispiel auch um ein Daten generierendes Messgerät handeln oder eine Applikation, die auf einem anderen, mit Caché verbundenen System läuft.) Caché verfügt über eine Vielzahl möglicher Authentifizierungsmechanismen:

  • Kerberos: Das sicherste Verfahren der Authentifizierung. Das Kerberos-Authentifizierungssystem bietet mathematisch nachgewiesen starke Authentifizierung innerhalb eines Netzwerks.
  • LDAP: Caché unterstützt auch Authentifizierung mittels Lightweight Directory Access Protocol (LDAP). In diesem Fall kontaktiert Caché einen LDAP-Server, um die Echtheit des Users zu bestätigen, und verlässt sich dabei auf dessen Datenbank und die zugehörigen Informationen. Der LDAP-Server ist in diesem Fall auch für alle Aspekte des Passwortmanagements, der Passwortregeln usw. verantwortlich.
  • Passwörter: Caché fragt den User nach einem Passwort und vergleicht den Hashwert des angegebenen Passworts mit dem Hashwert, der gespeichert ist.
  • Delegated Authentication: Delegated Authentication eröffnet die Möglichkeit, maßgeschneiderte Authentifizierungsmechanismen zu entwickeln. Dabei hat der Applikationsentwickler die vollständige Kontrolle über den Inhalt der Delegated Authentication. Caché liefert ein Template, um Code für individuelle Authentifizierungen zu erstellen, mit.
  • Auf Basis des Betriebssystems: OS-basierende Authentifizierung vertraut darauf, dass das Betriebssystem die Identität jedes Benutzers überprüft hat, und nutzt diese Legitimationen für die Zwecke von Caché.

Natürlich ist es möglich, allen Usern auch ohne Authentifizierung zu erlauben, eine Verbindung zu Caché herzustellen.

Caché verfügt zudem über integrierte Unterstützung für eine Two-Factor Authentication, die vom Benutzer verlangt, sich mittels etwas, das er weiß, und etwas, dass er hat, zu identifizieren. Denkbar wäre zum Beispiel, dass sobald der Anwender sein Passwort (etwas, das er weiß) eingibt, er eine Textnachricht auf sein Mobiltelefon (etwas, das er hat) bekommt. Die Textnachricht enthält einen zusätzlichen Sicherheitscode, der eingegeben werden muss, bevor er Zugang zu der Applikation erhält.

Caché bietet auch Single Sign-on, wodurch die Teilnahme an einer OpenAM-Konfiguration zugelassen wird.

Berechtigungen

Nachdem ein Benutzer authentifiziert wurde, ist der nächste Schritt in der Sicherheitskette, festzulegen, was der Benutzer verwenden, sehen oder verändern darf. Diese Festlegung und Überprüfung von Zugriffsrechten wird als Berechtigung bezeichnet. Die Zuweisung und das Verwalten von Privilegien erfolgt normalerweise über das Caché Management Portal.

Ressourcen, Berechtigungen und Privilegien

Walk-into-RectanglesDas primäre Ziel der Sicherheitsmechanismen ist der Schutz der Ressourcen – Informationen oder Fähigkeiten jedweder Art. Für Caché können Ressourcen Datenbanken, System-Dienste, Anwendungen, Tools und selbst administrative Eingriffe sein. Der Security Administrator gewährt Zugriff darauf, indem er Nutzungsberechtigungen wie READ, WRITE oder USE erteilt. In Kombination werden eine Ressource und die zugehörige Nutzungsberechtigung auch als Privileg bezeichnet. Zusätzlich zu den vom System definierten Ressourcen kann der Security Administrator anwendungsspezifische Ressourcen erstellen und für diese dieselben Mechanismen verwenden, um Berechtigungen zu gewähren und zu prüfen.

Rollen

Der Einfachheit halber werden Benutzern eine oder mehrere „Rollen“ zugewiesen (z. B. „MTA“ oder „Lohnbuchhaltung“) und der Security Administrator vergibt dann Berechtigungen für eine bestimmte Ressource an die betreffende Rolle anstelle einzelner Benutzer. Der Benutzer erbt alle Privilegien, die der ihm zugewiesenen Rolle gewährt werden.

Von Anwendungen zugewiesene Rollen

Es ist oftmals sinnvoll, einem Benutzer zusätzliche Privilegien temporär zur Verfügung zu stellen, statt sie dauerhaft zu erteilen. Anstatt einem Benutzer eine ganze Reihe von Privilegien zu erteilen wie die Erlaubnis, auf die Gehaltsliste zuzugreifen und diese zu bearbeiten, kann der Security Administrator dem Benutzer stattdessen nur das einzelne Privileg geben, auf die Anwendung der Gehaltsabrechnung zuzugreifen. Diese Anwendung kann dann während ihrer Nutzung dem Benutzer nach Bedarf weitere Privilegien zuweisen.

Hierfür können Anwendungen Rollen zugewiesen werden. Wenn dann der Benutzer mit dieser Anwendung arbeitet, erhält er seinerseits temporär die entsprechenden Rollen zugewiesen. Das kann eine einfache Liste mit Rollen sein, die dann für jeden Benutzer gilt. Es sind aber auch individuellere Regeln möglich, die beispielsweise die einem Benutzer bereits zugewiesenen Rollen berücksichtigen.

Besonders nützlich ist diese Funktion für Browser-basierende Anwendungen. Nach der Authentifizierung und der Überprüfung, ob der Benutzer zur Verwendung der Anwendung berechtigt ist, erhält der Benutzer temporär weitere Rollen, die diese Anwendung für die Dauer der Seitenanforderung erteilt.

Der Security Administrator kann auch eigene Routinen angeben, die mittels selbst geschriebenem Code die Zuweisung der erweiterten Rollen durchführen, sobald die entsprechenden Sicherheitstests bestanden wurden. Diese Funktion wird genauestens überwacht und entspricht dem Mechanismus, mit dem nicht Web-basierende Anwendungen die Rollenzuweisung durchführen.

Auditing

Viele Anwendungen, vor allem solche, die gesetzliche Bestimmungen wie HIPAA oder Sarbanes-Oxley erfüllen müssen, erfordern ein sicheres Auditing. In Caché werden alle System- und Anwendungsevents in einem vor Veränderungen geschützten Log aufgezeichnet. Dieser Log ist zu allen mit SQL arbeitenden Abfragewerkzeugen oder Listengeneratoren kompatibel.

Verschlüsselung von Daten in der Datenbank

Caché bietet zwei Formen der Datenbankverschlüsselung:

  • Der Security Administrator kann die Verschlüsselung für einzelne oder alle CACHE.DAT-Dateien (Datenbanken) aktivieren. Alles innerhalb dieser Dateien, auch Indices, ist dann verschlüsselt.
  • Entwickler können Systemfunktionen zum Verschlüsseln und Entschlüsseln von Daten, die in der Datenbank gespeichert oder übertragen werden sollen, verwenden. So können sensitive Daten verschlüsseltwerden, um diese vor anderen Benutzern zu schützen, die Lesezugriff auf die Datenbank haben, aber nicht über den entsprechenden Schlüssel verfügen.

Standardmäßig verschlüsselt Caché Daten mit einer Implementierung des Advanced Encryption Standard (AES), eines symmetrischen Algorithmus, der Schlüssel mit 128, 192 oder 256 Bit unterstützt. Die Verschlüsselungsschlüssel werden an einem geschützten Speicherort aufbewahrt. Caché enthält alle für die Schlüsselverwaltung erforderlichen Funktionen.

Auch das Journal kann verschlüsselt werden.

Verschlüsselung von Daten während der Übertragung

PuzzleCaché unterstützt die Verwendung von SSL (Secure Sockets Layer) und dessen Nachfolger TLS (Transport Layer Security), um unterschiedlichste Verbindungsarten abzusichern:

  • Als Server akzeptiert Caché Verbindungen und sorgt dann für die Verwendung von SSL. Das gilt auch für die Verbindung von Caché Shadow-Zielen zu Caché Shadow-Quellen.
  • Als Client ist Caché in der Lage, Verbindungen zu Servern herzustellen, die die Verwendung von SSL voraussetzen.

Caché verwendet in jedem Fall eine sogenannte SSL/TLS-Konfiguration, in der die verschiedenen Charakteristika einer Caché-Instanz in Bezug auf die SSL/TLS-Verbindung festgelegt sind.

Weitergehende Informationen zur Sicherung von Daten bei der Übertragung sind im Abschnitt „Caché und Web-Services“ zu finden.