Whitepapers & Broschüren
Verwendung von Caché-Klassen mit Java
Mary A. Finn
Product Marketing Manager
Einführung
Java-Entwickler machen sich - wie alle Entwickler - Gedanken über die Performance und Skalierbarkeit der Applikationen, die sie erstellen. Gleichzeitig wollen sie Tools und Technologien einsetzen, die ihre eigene Produktivität maximieren. Caché unterstützt den Datenzugriff als Objekte und ist dadurch eine natürliche Ergänzung zu Objektsprachen wie Java. Deswegen entscheiden sich viele Java-Entwickler für den Caché-Datenserver, nicht zuletzt auch aufgrund der überragenden Performance. Unserer Ansicht nach sind solche Entwickler am produktivsten, wenn sie Caché-Objekte in einer Java-adäquaten Art und Weise verwenden können. Hier soll ein Überblick über die ersten Schritte bei der Erstellung einer Caché-basierten Java-Anwendung gegeben werden: das Erstellen von Caché-Klassen, das Exportieren dieser Klassen in Java und das Referenzieren von Caché-Objekten innerhalb einer Java-Applikation.
Erstellen von Caché-Klassen
Die Verwendung von Caché mit Java schafft einen entscheidenden Vorteil: Java-Entwickler können ihre Daten als Objekte modellieren. Caché implementiert die Konzepte der Objektmodellierung vollständig; dazu gehören unter anderem Kapselung, Mehrfachvererbung, Polymorphismus, Referenzen auf Objekte, eingebettete Objekte, Collections und Objektbeziehungen.
Klassen werden mit dem Caché Object Architect definiert und bearbeitet. Im Object Architect kann man Klassen manuell erstellen oder aus ODL von Tools zur Objektmodellierung, CDL (Class Definition Language) von anderen Caché Applikationen und sogar DDL von relationalen Anwendungen importieren. Caché unterstützt das Prinzip der Klassenpakete ("Packages").
Persistente Methoden (zum Speichern, Wiederauffinden und Löschen von Daten) werden von Klassen der Systemebene geerbt, die von InterSystems zur Verfügung gestellt werden. Methoden, die Server-seitige Geschäftslogik ausführen, werden vom Entwickler entweder in Caché ObjectScript oder Ca-ché Basic geschrieben. Caché ObjectScript ist eine einfach zu erlernende, interpretierte Sprache, die den Datenzugriff als Objekte, als Tabellen oder als multidimensionale Arrays ermöglicht. Caché Basic ist eine erweiterte Version von Basic, die die einzigartigen Caché-Fähigkeiten nutzt.
Exportieren von Caché-Klassen in Java
Der Caché Object Architect beinhaltet eine Exportfunktion, die aus kompilierten Caché-Klassen echte Java-Klassen erstellt. Die Exportfunktion kann selektiv genutzt werden; sie kann auf ganzen Klassenpaketen oder auf speziellen Klassen im einzelnen arbeiten. Das Ergebnis ist ein Java Quellprogramm (mit dem Dateityp .java), das denselben Namen hat wie das Caché-Objekt, von dem es erstellt wurde. Dieses Quellprogramm kann dann in eine Java-Klasse kompiliert werden, in der alle Eigenschaften private sind. Die entsprechenden Zugriffsmethoden werden von Caché automatisch erstellt.
Eine der Caché-Klassen, die in Beispielen und Tutorials oft verwendet wird, ist IscPerson, die (unter anderem) eine Eigenschaft "Name" enthält. Wenn nun IscPerson in Java exportiert wird, wird eine Quelldatei IscPer-son.java erstellt. Diese Datei enthält dann die Zugriffsmethoden "GetName" und "SetName", die Java-Entwicklern die Möglichkeit geben, besagte Eigenschaft zu lesen oder zu ändern. Diese Methoden existieren nicht notwendigerweise auch in der Definition der ursprünglichen Caché-Klasse, Caché erstellt sie gemäß dem Java-Standard beim Export. Isc-Person.java muss in Bytecode kompiliert werden bevor sie benutzt werden kann (dadurch wird sie zu einer Java-Klasse namens IscPerson.class).
Die Caché-Klasse IscPerson erbt ihre persistenten Methoden - wie alle Caché-Klassen - von einer Caché-Klasse der Systemebene. Caché besitzt ein Java-Archiv, CacheJava.jar, das reine Java-Versionen aller Caché-Klassen der Systemebene enthält, die für Datenbankmanagement verwendet werden. Java-Klassen, die von Caché-Klassen hergeleitet wurden, erben ihr persistentes Verhalten (ihre Methoden) von den Klassen in CacheJava.jar. Informationen über CacheJava.jar finden Sie in der Online-Dokumentation von Caché.
Falls Entwickler der von der Caché-Klasse hergeleiteten Java-Klasse eine Client-seitige Geschäftslogik hinzufügen wollen, sollten sie zuerst eine neue Klasse erstellen, die all ihre Eigenschaften und Methoden von der Java-Version der Caché-Klasse erbt. Danach kön-nen Änderungen oder Erweiterungen an der neuen Klasse vorgenommen werden. Auf die-se Weise müssen die Client-seitigen Änderungen nicht wiederholt werden, wenn die Caché-Klasse auf dem Datenserver bearbeitet wird und eine neue Version der entsprechenden Java-Klasse erstellt wird.
Theoretisch ist es möglich, eine komplette Anwendung zu schreiben und dabei nur die in Java geschriebene Client-seitige Geschäftslo-gik zu verwenden. So kann man vollständig auf Caché ObjectScript oder Caché Basic (die für die Server-seitige Geschäftslogik erforderlich sind) verzichten. Eine auf diese Art ge-schriebene Applikation ist jedoch eher schwerfällig und langsam. Es ist zum Beispiel viel effizienter, eine Datenbanksuche auf dem Datenserver durchzuführen und nur die ange-forderten Daten zu senden, als alle Daten zu senden und die Suche auf dem Client auszuführen.
Referenzieren von Caché-Objekten innerhalb einer Java Anwendung
Wenn die Caché-Klassen exportiert und als Java-Klassen kompiliert worden sind, bleiben noch einige wenige Schritte durchzuführen, um Caché-Objekte referenzieren zu können. Als erstes sollte man sicher stellen, dass die Java-Applikation auf alle Caché-Klassen der Systemebene zugreifen kann, die sie benötigt. Der nächste Schritt sollte die Verbindung zum Caché-Datenserver sein.
Damit die Java-Anwendung die Caché-Klassen der Systemebene findet, muss man dem CLASSPATH der Applikation das Ca-cheJava.jar hinzufügen. Dann wird der input-Befehl verwendet, um anzugeben, welche Klassen (Klassenpakete) des Archivs die An-wendung benötigt.
Eine dieser Klassen muss ObjectFactory sein. Das Erstellen einer neuen Instanz von ObjectFactory erstellt eine Verbindung zu dem speziellen Caché-Datenserver. Nachdem die ObjectFactory erfolgreich eingerichtet ist, können Entwickler die Caché-Objekte, die sie erstellt haben, genauso wie jedes Java-Objekt referenzieren und verwenden.
Dank der Unified Data Architecture von Caché kann auf alle Caché-Klassen als relationale Tabellen zugegriffen werden. Entwick-ler, die die Verwendung von JDBC gewohnt sind, können auch auf diese Weise auf die Caché Datenbank zugreifen. Die Caché-Klassen der Systemebene, die den JDBC-Zugriff ermöglichen, liegen im Archiv CacheJava.jar.
Fazit
Entwickler arbeiten bekanntlich am besten, wenn sie vertraute Tools und Technologien einsetzen können. Mit wenigen einfachen Schritten können Java-Entwickler Caché-Objekte genauso wie jedes Java-Objekt verwenden. Java-Entwickler sind bereits mit den Konzepten und Techniken der Objektmodellierung vertraut. Die vollständige Implemen-tierung der Objekt-Technologie in Caché ermöglicht diesen Entwicklern, schnell Anwendungen zu entwickeln, die ihren Vorteil aus der überragenden Performance und Skalierbarkeit von Caché ziehen.

