Die Komponenten von Caché
Die postrelationale Datenbank von Caché ist die ideale Wahl für hoch performante Applikationen, die mit Web- und objektorientierten Technologien entwickelt wurden. Mit der Objekttechnologie von Caché können Entwickler aussagefähige Datenstrukturen erstellen, die die reale Welt modellAieren und den Entwicklungsprozess rationalisieren.
Caché Objects modellieren die reale Welt
Objekttechnologie ist der Versuch, den menschlichen Umgang mit Informationen nachzubilden. Die Daten und der Code bilden daher eine Einheit. Objekte verfügen jeweils über ein eigenes Wissen (dargestellt als Eigenschaften, die Daten enthalten) und Verhalten (dargestellt als Methoden, die Code enthalten).
Die Objekttechnologie von Caché fördert zudem die natürliche Sicht auf Daten, indem sie Eigenschaften nicht auf einfache, computer-zentrierte Datentypen beschränkt. Objekte können beispielsweise andere Objekte oder Referenzen auf weitere Objekte enthalten, was einer funktionellen, sinnvollen Datenmodellierung sehr entgegenkommt. Als einfaches Beispiel dafür soll ein Objekt "Customer" dienen:

|
Objekt "Customer" |
|
Name |
Die Datenspeicherung erfolgt über den einfachen Datentyp Name. |
SSN |
Hier könnte beispielsweise ein einfacher Datentyp wie Integer oder auch ein komplexerer, vom Entwickler definierter Datentyp wie z.B. eine neunstellige Ziffernfolge nach dem Muster NNN-NN-NNNN verwendet werden. |
| Address: Street City |
Dies ist ein typisches Beispiel dafür, wie Objekte in andere Objekte eingebettet werden können. Hier ist zum Beispiel Address ein Objekt mit den Eigenschaften Street und City. |
AccountRep: |
Diese Eigenschaft ist eine Referenz auf ein Objekt AccountRep. Im Gegensatz zum eingebetteten Objekt hat ein referenziertes Objekt seine eigene Identität in der Datenbank, unter der es separat gespeichert wird. Diese Identität ermöglicht den direkten Zugriff auf ein AccountRep-Objekt, ohne den Umweg über ein Objekt Customer gehen zu müssen. Caché nutzt für den Zugriff auf eingebettete oder referenzierte Objekte die gleiche Syntax (eine Punkt-Syntax wie z.B. in Customer.Address.Street oder Customer.AccountRep.Name). |
|
Invoice: |
Ein Customer kann eine Anzahl von Rechnungen haben, die als Collection gespeichert werden. Jede Rechnung verfügt selbst wieder über eine komplexe Struktur. Eine Collection ist eine "one-to-many"-Relationship. Caché unterstützt auch andere Arten von Relationships. |
Obwohl "Customer" eine große Menge an Informationen enthält, kann eine Applikation ihn als eine Einheit betrachten - als ein Objekt.
Caché Objects ermöglichen schnelle Entwicklung
Die Objekttechnologie von Caché unterstützt alle wesentlichen Konzepte der Objektorientierung und beschleunigt die Anwendungsentwicklung damit enorm.
Vererbung ist die Möglichkeit, eine Klasse** von Objekten von einer anderen abzuleiten. Die abgeleitete neue Klasse (eine Unterklasse) verfügt über alle Eigenschaften und Methoden ihrer Ursprungsklasse, sie kann darüber hinaus aber auch zusätzliche eigene Eigenschaften und Methoden enthalten. Objekte einer Unterklasse haben eine "ist ein(e)"-Beziehung zu ihrer Oberklasse. Weil zum Beispiel ein Hund ein Säugetier ist, macht es Sinn, die Klasse Hund als Unterklasse der Klasse Säugetier zu definieren. Mehrfachvererbung bedeutet, dass eine Unterklasse von mehr als nur einer Oberklasse abgeleitet werden kann. Ein Hund ist beispielsweise ein Säugetier und ein Haustier. Unsere Klasse Hund kann demnach die Attribute der beiden Oberklassen Säugetier und Haustier erben.
Mehrfachvererbung:
Unterklassen können Attribute von mehr als einer Oberklasse erben.
Unter Kapselung versteht manA, dass Applikationen Klassen als eine Art Black Box betrachten können. Ungeachtet ihrer Komplexität verfügt jede Objektklasse nämlich über eine genau definierte Zahl öffentlicher Eigenschaften und Methoden. Sind diese einmal definiert, muss sich eine Applikation nicht mehr um die interne Funktionalität einer Klasse kümmern, sie nutzt nur ihre Eigenschaften und Methoden. Aus diesem Black Box-Ansatz ergeben sich zwei entscheidende Vorteile:
A) Klassen sind modular. Programmierer können die interne Funktionalität von Klassen verbessern, ohne den Rest der Applikation zu beeinträchtigen.
B) Klassen sind interoperabel. Verschiedene Applikationen können die Klassen gemeinsam nutzen, weil das Interface (die Eigenschaften und Methoden) konstant bleibt.
Als Polymorphismus bezeichnet man die Tatsache, dass Methoden unterschiedlicher Klassen sich ein gemeinsames Interface teilen können, auch wenn die zugrunde liegende Implementierung ganz verschieden ist. Betrachten wir beispielsweise eine Applikation, die verschiedene Objektklassen wie Brief, Adressaufkleber und Namensschild nutzt. Alle drei Klassen besitzen vielleicht eine Methode "AdresseDrucken". Die Applikation selbst benötigt nun keine speziellen Informationen, in welchem Format die Adresse für die unterschiedlichen Objekte gedruckt werden muss. Sie muss lediglich die Methode "AdresseDrucken" des Objekts aufrufAen. Der Polymorphismus stellt sicher, dass die Adresse für jedes Objekt in der entsprechenden Form gedruckt wird.
Caché Objects erstellen
Mit dem Caché Studio können Caché-Klassen extrem schnell erstellt und bearbeitet werden. Das Studio ist eine integrierte Entwicklungsumgebung (IDE), in der Entwickler alle Aufgaben der Anwendungsentwicklung durchführen können. Für die Datenmodellierung beinhaltet das die Definition von Eigenschaften, die Codierung sowie das Austesten von Objektmethoden und die Definition spezieller Datentypen. Caché unterstützt fortschrittliche Konzepte der Objektorientierung wie Einfach- und Mehrfachvererbung, eingebettete Objekte, Referenzen auf Objekte, Collections, Relationships und Polymorphismus und macht das Caché Studio damit zu einer mächtigen und produktiven Umgebung für Datenmodellierung und Geschäftsprozesse.
Import/Export von Datenmodellen
Das Caché Studio beinhaltet einen Wizard, mit dem sich Caché-Klassen äußerst leicht erstellen lassen. Es gibt aber auch zahlreiche andere Möglichkeiten, Klassendefinitionen in das Studio zu importieren oder daraus zu exportieren.
Mit Caché RoseLink können Klassen in Caché importiert werden, die mit dem bekannten Rose Objektmodellierungs-Tool von Rational Software erstellt wurden. Gleichermaßen können Caché Klassendefinitionen in Rose exportiert werden, um in dessen Modellierungsumgebung bearbeitet werden zu k&oumAl;nnen.
Caché kann Objekte auch aus relationalen DDL-Dateien erstellen. Die resultierenden Objektklassen sind einfach: ihre Eigenschaften sind einfach-wertige, System-definierte Datentypen, die den Feldern der relationalen Tabelle entsprechen. Als Methoden erhält die Klasse die Persistenzmethoden, die zum Speichern und Lesen der Daten benötigt werden. Dank der Unified Data Architecture von Caché stehen diese Klassen sofort zur Verwendung mit objektorientierten Programmiersprachen bereit und können als Bausteine für komplexere Datenmodelle verwendet werden.
XML bietet eine weitere Möglichkeit, Klassendefinitionen zwischen Anwendungen zu transportieren. Klassendefinitionen können als XML-Dokumente exportiert/importiert werden.
Caché Scrip-Sprachen
Methoden in Caché können in Caché ObjectScript oder Caché Basic (oder in beidem) geschrieben werden. Beide Sprachen unterstützen den objektorientierten, den relationalen sowie den multidimensionalen Datenzugriff - innerhalb derselben Routine.
Caché mit anderen Objekttechnologien integrieren
Dank der Unified Data Architecture von Caché sind die Klassen automatisch auch als relationale Tabellen verfügbar, auf die mit ODBC und JDBC zugegriffen werden kann. Und mit Hilfe der Vererbung können Caché-Klassen leicht für die Verwendung mit XML und objektorientierten Technologien angepasst werden.
Caché Server Pages
Wenn eine Klasse als Caché Server Page bezeichnet wird, erbt sie automatisch alle benötigten Session Management-Methoden für das Web sowie die "OnPage()"-Methode, in der Entwickler den Seiteninhalt codieren können.
XML
Wenn eine Klasse die Eigenschaften und Methoden der %XML.Adaptor-Klasse (von InterSystems bereitgestellt) erbt, kann sie XML-Daten importieren/exportieren. Caché bestimmt automatisch das Mapping zwischen Caché-Objekten und XML-Dokumenten, Entwickler können aber auch ihr individuelles Mapping erstellen.
COM
Ein einfaches Kommando innerhalb des Caché Studios projiziert Caché-Klassen als COM-Klassen für die Verwendung mit Tools wie Visual Basic, Delphi und jeder anderen Software, die mit der COM-Schnittstelle kompatibel ist. Caché enthält zudem ein COM Gateway, das die Verwendung von COM-Objekten in Caché-Applikationen ermöglicht.
C++
Gleichermaßen kann ein einfaches Kommando C++-Projektionen von Caché-Klassen erstellen.
Java
Ein anderer Befehl wiederum kann Caché-Klassen als Java-Klassen darstellen. Caché bietet außerdem eine Class Library an, die es Java-ProgrammiererAn erlaubt, auf Caché-Objekte in der Caché-Datenbank zuzugreifen.
EJBs
Auch EJB-Projektionen können mit einem einzigen Klick im Caché Studio erstellt werden. Entwickler können die Schnelligkeit von Bean-Managed Persistence genießen, ohne aufwändiges Codieren des Mappings zwischen Java-Klassen und relationalen Tabellen. Caché unterstützt den WebLogic Applikationsserver von BEA.
** Eine "Klasse" ist ein Template - eine generische Beschreibung der Daten. Jede spezielle "Instanz" einer Klasse ist ein Objekt und enthält tatsächliche Daten.
Caché and Caché Direct are trademarks of InterSystems Corporation. Windows and Visual Basic are registered trademarks of Microsoft Corporation. Delphi is a trademark of Borland International. PowerBuilder is a trademark of Powersoft Corporation. Other product names are trademarks of their respective vendors.

