|
Daten Selektion
Der Schlüssel zu relationalen Datenbanken ist SQL. Wer mit relationalen Datenbanken wie DB2 zu tun hat, kommt an SQL, Structured Query Language, nicht vorbei. D-SECT bietet SQL auch für nicht-rationale Bestände: IMS, DL/1, VSAM. Damit ist es möglich mit gleichbleibender Syntax aus Beständen unterschiedlicher Organisationsform zu selektieren.
Daten Extraktion
Soll eine Teilmenge eines Bestandes extrahiert werden, kann die Ergebnismenge - das Extrakt - in der gleichen oder in einer anderen Organisationsform gespeichert werden. Extrahiert man Testdaten, wird man die Organisationsform beibehalten wollen, VSAM bleibt VSAM, IMS bleibt IMS, etc. Versogt man ein DW oder eine Webanwendung, wird man in der Regel auf die relationale Speicherform wechseln.
Daten Kollektion
Bei gemischten Beständen (DB2, VSAM, IMS) bestehen logische Abhängigkeiten zwischen den Daten. Bei Extraktion von Teilmengen sind diese Abhängigkeiten zu berücksichtigen. Beispiel: Die selektierten Auftragsdaten (DB2) müssen zu den selektierten Stammdaten (IMS) passen.
Daten Transformation
Werden Daten extrahiert und an andere Systeme übergeben, müssen sie für den Ziel-Bestand konvertiert werden:
EBCDIC -> ASCII, Packed Decimal -> ?, DATE, TIMESTAMP ->?
Werden Testdaten extrahiert, müssen Datenstrukturen, vor allem bei Releasewechsel, angepasst werden. Sensible Daten müssen unter Umständen "entpersonalisiert" werden. Werden Daten extrahiert und an andere Anwendungen übergeben, müssen oft Felder und Datenstrukturen verändert werden. D-SECT untestützt alle Arten der Transformation durch Parametrisierung und durch seine Skriptsprache.
D-Sect für Testdaten
Komplexe, historisch gewachsene OS/390 Anwendungen arbeiten in der Regel mit gemischten Datenbeständen, mit Beständen die in verschiedenen Organisationsformen als Datenbanken oder Dateien vorliegen, und die über Feldbeziehungen verknüpft sind.
Häufig ist es erforderlich, aktuelle Daten aus einer Produktionsumgebung zu gewinnen und diese in einer Testumgebung nutzbar zu machen. Manchmal kann dies durch einfaches Kopieren von Tabellen oder Dateien geschehen. Meist aber ist Testfallerstellung ein aufwendiges Geschäft.
Es gibt zwar viele Report- und Extraktionstools, doch lösen sie nicht wirklich die Aufgabenstellung.
|
Entweder ist zusätzliche Programmierarbeit notwendig, um Abfragen miteinander zu verknüpfen, um zum Beispiel einen VSAM Schlüssel mit einer DB2 Spalte in Beziehung zu setzen, oder die übliche Infrastruktur eines OS/390 Anwenders mit getrennten Umgebungen für Test, Entwicklung und Produktion wird nicht ausreichend unterstützt.
|
|
Es ist daher immer beträchtlicher Aufwand nötig, um nach Wartungs- und Erweiterungsarbeiten geeignete Testfälle bereitzustellen.
D-Sect leistet mehr
Mit D-Sect können Abfragen in SQL Schreibweise formuliert werden, und zwar
- für relationale Bestände (DB2),
|
|
|
|
|
|
|
Die Abfragen sind über Feldbeziehungen beliebig verknüpfbar. So können zum Beispiel die Inhalte eines Feldes einer VSAM Datei als Argument für eine WHERE Bedingung dienen und dieses WHERE könnte zu einem SELECT für ein IMS Segmente gehören.
Um die Ergebnismengen weiter zu bearbeiten,

|
steht zusätzlich zu den SQL Kommandos die Sprache REXX zur Verfügung. Damit können einzelne Felder oder die Datenstruktur in Gänze beliebig verändert werden. Mengenbegrenzungen können mit einem simplen Kommando spezifiziert werden, zum Beispiel "selektiere 1000 Testfälle" oder "selektiere jeden 100. Fall".
|
Wobei gefordert werden kann, dass ein gültiger Testfall nur dann vorliegt, wenn die Kette "vollständig" ist, d. h. bei verketteten Beständen, muss in jeder Bestandsart mindestens ein Vorkommen sein.
|
Ausgabeoptionen ermöglichen das Überschreiben, teilweise Ersetzen oder Ergänzen von Testbeständen. Die Ausgabe kann auf dem gleichen Rechner oder einem anderen stattfinden und ist vielfältig parametrisierbar. Die selektierten Teilmengen behalten zunächst ihr ursprüngliches Format. IMS bleibt IMS, VSAM bleibt VSAM.
D-Sect kann allerdings auch konvertieren, so können die selektierten Daten auch zu einer IDE auf einem PC oder auf eine andere Plattform transferiert werden. Alle dafür nötigen Konvertierungen nimmt D-SECT automatisch vor.
Ein D-Sect Skript enthält die SQL-Anweisungen zur Selektion, die REXX-Anweisungen zur weiteren Modifikation und die D-Sect Kommandos zur Ausgabesteuerung.
Es ist unter seinem Namen unter D-Sect bekannt und kann in andere Skripte eingebunden werden. D-Sect unterstützt die beliebige Verteilung von Bearbeitungsstufen wie Entwickung, Test und Produktion auf Rechnern oder LPARs im Sysplex.
D-SECTs Object/Layer Konzept
Üblicherweise wird in der Entwicklung schon an neueren Versionen einer Anwendung gearbeitet während in der Produktion noch die ältere Version im Einsatz ist. Das hat zur Folge, dass Produktionsdaten nicht mehr das gleiche Layout haben, wie die bei der Entwicklung benötigten Testdaten. D-Sects Object/Layer Konzept sorgt für
|
 |
automatisches Anpassen der Daten- strukturen. Die verschiedenen Bearbeitungsstufen wie Entwicklung-1, TEST, Entwicklung-2 QS, PROD, werden durch so genannte Layer beschrieben, siehe Abbildung, "Definition of Layers".
|
|
|
Ein D-Sect-Object enthält unter anderem die Beschreibung des Layouts der Daten, also die Satzformate, die Tabellen- oder Segmentbeschreibungen. Ein Object kann pro Layer einmal existieren und in jedem Layer anders definiert sein. Wenn nun die Daten eines Objects von einer Bearbeitungsstufe (Layer) in eine anderen transferiert werden und die Object-Beschreibungen unterschiedlich sind, wird D-Sect automatisch dafür sorgen, dass das Layout der Daten entsprechend umgestellt wird.
|
|
D-Sect als Extraktionstool (ETL-Tool)
D-Sect ist keineswegs auf die Erstellung und Pflege von Testdaten beschränkt. Ebenso können Daten für jedweden Zweck aus OS/390 Anwendungen extrahiert werden, modifiziert, konvertiert und transportiert werden. Zum Beispiel könnten ein Data Warehouse, oder irgendeine Anwendung auf einer anderen Plattform, oder eine Webanwendung regelmäßig mit Daten aus OS/390 Beständen versorgt werden. Der D-Sect Runtime Prozess besteht aus einer Kette von Batch-Jobs, die unter der Steuerung eines Schedulers laufen können.
Mit HotCopy Daten propagieren
D-Sect extrahiert Daten, HotCopy propagiert Daten. Was ist der Unterschied? D-Sect entnimmt Daten einer Quellumgebung und bringt sie in eine Zielumgebung. Das ist ein Batch-Ablauf, der Selektionsvorgang entnimmt die Daten der Quelle wie sie zum Ausführungszeitpunkt vorliegen und bringt sie in die Zielumgebung. HotCopys Capture-Modul erkennt Änderungen an den Quelldaten "im laufenden Betrieb" und leitet diese Änderungen kontinuierlich an die Zielumgebung weiter. Ein Zielbestand wird damit zeitnah an einen Quellbestand angepasst.
Beispiel: Eine IMS Anwendung ist seit Jahren in Betrieb. Nun sollen Daten die in der IMS Anwendung anfallen einer neuen WEB-Anwendung oder einem Datawarehouse regelmäßig übergeben werden. Das kann HotCopy übernehmen. Um mit HotCopy Daten zu propagieren, müssen keinerlei Änderungen auf der Quellseite, also an der IMS-Anwendung, vorgenommen werden. Als Ziel kommt DB2 oder irgendein relationales System auf beliebiger Plattform in Frage. HotCopy transportiert die Daten
|
 |
asynchron auf das Zielsystem, die gebende Anwendung wird also nicht gebremst oder in ihrer Performance beeinflusst. Als Quellanwendungen werden unterstützt: CICS/VSAM, CICS/DL1, CICS/DB2, IMS und Batch mit VSAM, DL/1 und DB/2. Als Ziel können die Plattformen OS/390, UNIX, LINUX, Windows 2000, NT gewählt werden.
|
D-Sect und HotCopy
Während alsoD-Sect einen eigenen Treiber besitzt und damit nach Anweisungen in einem Skript Daten extrahiert, wird HotCopy von einer Quellanwendung getrieben.
Wenn in der Quellanwendung Änderungen auftreten, Insert, Delete, Update, wird das von HotCopys Capture Mechanismus erkannt und eine Weiterleitung (Propagierung) eingeleitet.
Fazit:
Mit D-SECT können in SQL-Schreibweise Abfragen formuliert werden, die aus Beständen unterschiedlicher Organisationsform (IMS, VSAM, DB2) konsistente, d.h. zueinander passende Teilmengen selektieren.
Die selektierten Teilmengen behalten ihr ursprüngliches Format. Das heißt zum Beispiel für selektierte IMS-Segmente, dass sie als solche erhalten bleiben. Sie werden in einer Testdatenbank mit den gleichen GEN-Parms wie die der Original-DB abgelegt. Selektierte VSAM-Sätze erscheinen in einer eigens erstellten VSAM-Datei, die ebenfalls die gleiche Struktur hat, wie die Originaldatei. Ähnliches gilt für DB2-Tabellen und Zeilen.
Selektionsmechanismen
Um die zu selektierenden Datenbestände einzugrenzen, sind verschiedene Mechanismen vorgesehen, eine fachlich orientierte Selektion durch Vergleich von Feldinhalten und eine Mengenbegrenzung. Auch IMS/DL1 Segmente und VSAM Dateien werden selektionstechnisch wie Tabellen behandelt, d.h. Selektionskriterien werden mittels SQL formuliert. Sowohl Schlüsselfelder als auch Felder die nicht als Schlüssel angelegt sind, können in Select-Statements verwendet werden. UND und ODER Verknüpfungen sind ebenso zugelassen wie Vergleichsoperatoren: GRÖSSER, KLEINER, VON-BIS und ENTHÄLT. Selektionen können auch über Schlüssellisten vorgegeben werden.
Mengenbegrenzung
1. Es ist eine Begrenzung auf jeden x-ten selektierten Treffer möglich.
2. Es kann die Anzahl der zu selektierenden Testfälle spezifiziert werden. Es werden dann nur jene Sätze gezählt, die gemäß den Selektionsbedingungen in allen Ausgangsbeständen Treffer hatten - "vollständige Ketten". Lade Optionen
Es ist möglich, durch eine neue Selektion einen bereits vorhandenen Datenbestand zu ergänzen. Wenn eine Referenzierungskette dazu führt, dass ein DL1 Segment mehrfach geladen würde, dann kann diese Redundanz vermieden werden (Option). Dies gilt auch bei der nachträglichen Ergänzung selektierter Bestände.
Wenn sich durch die Auswahl-Bedingungen ein Treffer in einem DL1 Segment ergibt, dann ist es optional möglich, dass alle hierarchisch übergeordneten oder untergeordneten Segmente und alle übrigen, dem betreffenden Root anhängigen Segmente, automatisch mitgeladen werden.
Weitere Features
- Überführen der selektierten Daten in andere Organisationsform, auf anderer Platform: EBCDIC/ASCII, IMS/SAM/VSAM, DB2/XYZ, etc.
- Transformieren der Daten: Felder einfügen, umstellen und
initialisieren, um Anpassungen an unterschiedliche Layouts
verschiedener Versionen einer Anwendung vorzunehmen.
- Modifizieren der Daten: Felder regelbasiert ändern, zum Beispiel Daten anonymisiere
|
|
|
|
|
|