Remote SQL (RSQL), aufgebaut auf modernster Client/Server Technologie, erlaubt Ihnen den Zugriff auf HP NonStop-SQL/MP Datenbanken direkt aus einem Java-Programm heraus.
Zusammengefaßt bietet RSQL unter anderem folgende Vorteile:
Geringer Bedarf an zusätzlich zu erwerbenden Software-Komponenten durch Einsatz verfügbarer Standardschnittstellen
Reduzierter Bedarf an CPU-Resourcen durch optimierte Programmiertechniken
Höhere Übertragungsgeschwindigkeit durch Einsatz hochleistungsfähiger Methoden wie z.B. Data Burst Fetch
Hohe Zuverlässigkeit durch Verwendung erprobter Kommunikations- und Sicherheitsschichten aus Remote-Enscribe (REnscribe).
Alle Funktionen von REnscribe sind direkt ohne Einschränkungen verfügbar. Dadurch ist auch eine gemeinsame Transaktionskontrolle (TM/MP) für SQL- und Enscribe-Zugriffe möglich.
Strukturierte, objekt-orientierte Java-Programmierschnittstelle (OO-API).
Eine C++-API ist mit den gleichen Funktionen verfügbar.
Der Zweck des Produktes Remote-SQL (RSQL) ist es, dem Programmierer von Anwendungen auf einem PC (Windows und andere) zu gestatten, über eine Netzwerkverbindung auf Daten einer HP NonStop-SQL/MP-Datenbank zuzugreifen.
RSQL ist die technische Basis für den JDBC-Treiber, benutzt aber im Gegensatz zu diesem die Original NonStop-SQL/MP-Syntax und bietet Zugriff auf DEFINE-Tabellen. Der JDBC-Treiber wird demnächst verfügbar sein.
RSQL wurde in Client/Server Architektur realisiert. Dabei stellt das NonStop-System die Server-Maschine dar und die Java-Anwendung den Client. Folglich enthält RSQL zwei wesentliche Komponenten:
einen Serverprozess für die NonStop-Seite
eine Klassenbibliothek für die PC-Seite, mit deren Hilfe der Anwendungsprogrammierer in die Lage versetzt wird, seiner Anforderung gemäße Client-Programme zu schreiben.
Die Kommunikation zwischen diesen beiden Komponenten erfolgt mittels TCP/IP. Genaue Kenntnisse dieses Protokollstacks werden vom Programmierer jedoch nicht verlangt, da sämtliche Netzwerkzugriffe durch Java-Klassenbibliotheken verborgen werden. Im Gegenteil: der Anwendungsprogrammierer kann sich während der Entwicklung weitestgehend auf die eigentlichen SQL- und Datenbankproblematiken konzentrieren, ohne sich um Details der Transportschichten kümmern zu müssen.
Der Server-Prozess auf dem NonStop-System wird über den LISTNER-Prozess des NonStop-TCP/IP gestartet, sobald ein Client-Programm auf dem Client-System (es können auch mehrere dieser Client-Systeme parallel eingesetzt werden) eine Verbindung eröffnet.
Durch Aufruf der zugehörigen Klassenfunktionen kann das Anwendungsprogramm nun auf die SQL-Daten zugreifen, wobei die Klassenbibliothek die Aufträge über das TCP/IP-Netzwerk an den Serverprozess sendet. Dieser interpretiert die Aufträge und führt die entsprechenden SQL-Operationen aus.
Anschließend überträgt er die Antwortdaten an den Client. Diese werden nun dort in systemgerechte Datenformate konvertiert und dem aufrufenden Anwendungsprogramm bereitgestellt.
RSQL verwendet zur Ausführung von Datenbankoperationen dynamische SQL-Anweisungen. Um solche SQL-Anweisungen in ein Anwendungsprogramm aufzunehmen, stellt RSQL eine Bibliothek von Java-Klassen zur Verfügung.
Die gesamte Netzwerkanbindung und die Realisierung des Client/Server-Systems (mit Ausnahme der Netzwerkadresse des Tandem-Rechners) werden in den Klassenbibliotheken verborgen, die folgende Aufgaben erfüllen:
eine Verbindung zum Tandem-Rechner herstellen
SQL-Statements übersetzen
Informationen über Datenformate erhalten
übersetzte SQL-Statements ausführen
Daten aus der Datenbank auslesen
Die folgenden Datentypen werden unterstützt: CHAR(n), VARCHAR(n), SMALLINT, INTEGER, LARGEINT, NUMERIC(m,n), unsigned NUMERIC(m,n), REAL, DOUBLE, DECIMAL(n,m), DATETIME, INTERVAL, Nullindikator
Noch ein Wort für Java-Neulinge: die RSQL Klassenbibliotheken fordern keine tiefgehenden Kenntnisse der Programmiersprache Java. Wenn Sie bereits erfahren sind im Umgang mit C, so wird Ihnen die Verwendung von RSQL kaum Schwierigkeiten bereiten. Auf der anderen Seite nimmt Ihnen Java aber eine Menge Arbeit ab und sorgt unter anderem dafür, daß Ihre Programme zuverlässiger ablaufen. Kenntnisse in NonStop SQL sollten jedoch vorhanden sein.
Die vollständige API-Dokumentation liegt im Javadoc-Format vor: Remote SQL Java API.
Der Server RSQLSRV muß auf dem NonStop-System installiert werden. Dazu ist eine Zeile in der Datei PORTCONF der TCP/IP-Konfiguration für den LISTNER einzutragen:
741 $system.rsql.rsqlsrv -p150
Danach ist der LISTNER-Prozess neu zu starten.
Das ausführbare Programm muß im Binärformat auf
das NonStop-System, hier im Subvolume $SYSTEM.RSQL
kopiert werden und den Filecode 100 erhalten. Der Server muss noch
mit SQLCOMP
noch in einen beliebigen SQL-Katalog
eingetragen werden.
Die Portnummer, hier 741, kann frei gewählt werden. Der angegebene Wert ist der Default.
Der Parameter -p150
legt die Priorität des
Prozesses auf 150 fest. Andere Werte sind jederzeit möglich. Die
korrekte Wahl der Priorität ist eine Maßnahme, um unnötige
Systembelastungen durch komplexe Abfragen auf eine Minimum zu
reduzieren.
Die Java-Klassen sind in den beiden Archiven renscribe.jar und rsql.jar gespeichert, die dem Klassenpfad hinzugefügt werden müssen. Innerhalb einer IDE wird dies normalerweise im Projekt eingetragen. Auf aktuellen Java-Plattformen, kann der Aufruf mit
java -cp renscribe.jar;rsql.jar MyClass
erfolgen. Geben sie die vollständigen Pfade der Jar-Dateien an.
Sie können die Dateien auch dem System-Klassenpfad, je nach
System in der Systemsteuerung (NT, W2K, XP), CONFIG.SYS (OS/2),
AUTOEXEC.BAT (W9x) oder dem Benutzerprofil (Unix) hinzufügen.
Java ab Version 1.2 unterstützt auch die Speicherung der
Jar-Files im Verzeichnis jre\lib\ext
unterhalb des
Java-Verzeichisses.