XML-API OLTP-Schnittstelle in XML-CLOB-Technik ab Oracle 8i Motivation • • • • • • Anwendung im WAN (Internet) XML - die Universal-Sprache Entkoppelung Präsentation / Persistenz Unabhängigkeit der Sprache Unabhängigkeit der Modelle Integration von Aktionen zum Request Sprache • • • • • • Information ist immer an Sprache gebunden Web-Clients sprechen HTML, C++, JAVA, ... Oracle spricht SQL Beide lernen XML für die Kommunikation XML-API übersetzt XML SQL Web-Clients übersetzen XML HTML, ... Modell • • • • • • Information wird in Modellen dargestellt Web-Clients verwenden OO-Klassenmodelle XML-Dokumente sind hierarchisch (H-Modell) Oracle ist relational organisiert (R-Modell) XML-API übersetzt H-Modell R-Modell Web-Client übersetzt OO-Modell H-Modell XML-Dokument • XML-Request XML-Reply (Sprachkonstanz) • Request : Auftragserteilung in XML mit – Request-Id, Client-Id, Task-Liste • Reply : Auftragsergebnis in XML mit – Task-Feedbacks, Return-Codes • In-Place-Reply : XML-Dokument wird transformiert Task-Liste • • • • • • QUERY : beliebige Abfragen LIST : Abholen des Result-Set (Bereiche) LOAD : Laden per logischem Primärschlüssel SAVE : Speichern von Informationen LOCK : Sperren (in Vorbereitung) In-Place-Feedback, bei SAVE, LOAD und LIST formidentisch QUERY • Task : Abfrage-Bedingung in XML – – – – Beliebig viele Attribute Operatoren Mengenoperatoren, Klammerung Begrenzung der Ergebnis-Menge (auto) • Feedback : Anzahl passender Ergebnis-Zeilen – Zwischenspeicherung der Primärschlüssel des Result-Set für die Dauer der Session LIST • Task : Vorgabe der XML-Struktur – Mit oder ohne Bereichsangabe (from – to) – Primärschlüssel der obersten Ebene muß fachlich kompatibel zu Primärschlüssel der Query sein. • Feedback : komplette XML-Struktur – Primärschlüssel der obersten Ebene aus Query-Result-Set – Sub-XML-Ebenen werden im API mit LOAD ergänzt – Mit allen sichtbaren Attributen LOAD • Task : Vorgabe der XML-Struktur – Mit, ohne oder mit teilweiser Angabe der logischen Primärschlüssel der jeweiligen Ebenen („class“) • Feedback : komplette XML-Struktur – Result-Set ermittelt aus vorgegebenen Primärschlüsseln – Sub-XML-Ebenen werden im API mit LOAD ergänzt – Mit allen sichtbaren Attributen SAVE • Task : XML-Struktur mit Attributierung – Beliebige Anzahl und Reihenfolge der Attribute im XML – Implizit oder explizit generierte Attribute – Implizit oder explizit generierte Validierungen • Feedback : komplette XML-Struktur – Nur die jeweils involvierten Datensätze – Mit allen sichtbaren Attributen XML-Struktur • Baum-Strukturen bei Save, Load, List – – – – – Beliebige Anzahl von Ebenen Semantische Bezüge der XML-Hierarchie Bei Task 1 Instanz der obersten Ebene Bei Feedback Load, List <n> Instanzen aller Ebenen Vererbung und Überschreibung von Attributen • Logische, frei definierbare Namen – Namen der „classes“ ohne Bezug zu Tabellen-Namen – Tag-Namen (Attribute) völlig unabhängig von SpaltenNamen Software / Informationsfluß • Request – – – – – – – – „OLTP-Anwendung“ (im weitesten Sinn) Anwendungsseitiges DOM XML-Dokument – alle Beispiele ab hier Clob als Container XMLApi.XMLRequest (XMLClob in out nocopy clob) Datenbankseitiges DOM (XMLParser, XMLDom) SQL-Engine (dbms_sql, API-Repository) Oracle-DB • Reply – symmetrisch in umgekehrter Reihenfolge Kontaktdaten Peter Kleifges Im Winkel 8 54484 Maring-Noviand eMail : [email protected]