37
1 <Insert Picture Here> XML – Einsatz im realen Umfeld Christian Kühne Server Technologies Competence Center

XML – Einsatz im realen Umfeld - Universität Osnabrückdbs/2007/Vorlesung/pdf/VortragUniOsnabrueck.pdf · 9 UDDI (JAXR) Web Service Web Services Registries Client Application Publish

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

1

<Insert Picture Here>

XML – Einsatz im realen UmfeldChristian KühneServer Technologies Competence Center

2

Umgebung von Informationssystemen

• Es gibt (praktisch) keine „Standalone“-Systeme

• Jedes IS ist in seine Umwelt einzubetten

• Integration = Interaktion bzw Datenaustausch mit benachbarten Systemen

• Migration

<Insert Picture Here>

Agenda… der rote Faden

• Integration von Informations-Systemen• Generalisierung und Standardisierung

(BPEL)

• Datenaustauschformate (XML)

• Laufzeit-Umgebungen

• Datenbanken• Aufbau

• Cluster

3

Unternehmensweite Komplexität

Unternehmen

real

4

Business Visibility

Sales FinanceEmployee

Business Services Product

Ebenen der Integration

Geschäftsbereiche

Applications-Integration

Business-Integration

Daten-Integration

Business Process Management

Connectivity & Data Integration

<Insert Picture Here>

Integration

Daten-Integration

5

Remote Data

• Zugriff auf externe Daten mit der Syntax der lokalen Datenbank

• Database Link

• Gateways(transparent gateways)

• Daten

• Programme (Trigger etc)

„Schnittstellen“

• point to point • Hub & Spoke

= z = z

6

Mr. John Q. Smith

Hub and Spoke

• Zentraler “Verteiler”

• “Spokes” kommunizieren ausschließlich mit dem “Hub”

• Entkoppelte Integration

• Einfache Anpassung

• Einfach Erweiterbar

• zn = n - 1

• zn = 1

Transformation

Application 2Spoke

IntegrationHUB

Application 3 Spoke

Application 4 Spoke

Application 1 Spoke

John Q. Smith Smith, John Q.

John Q Smith

Mr. John Q. Smith

AQ/JMSAQ/JMS

Integration HubIntegration Hub

MetadataMetadata

OracleOracleEBSEBSSiebel AdapterAdapter AdapterAdapter

2 3

Benutzer legt “neuen” Kunden an

4

5

Transform6

publish “Create Customer”

JMS

XML7

subscribe “Create Customer”

JMS

XML8

Transform9

10

1

• Visuelle Entwicklungsumgebung für “Business Analysten”

• Präsentiert die Logik derIntegration – nicht die technischen Details

Beispielpublish and subscribe

7

Sales LeadsCall Center

Data Quality

Services

Integration Services

Bsp: Wo ist mein Kunde?

OracleOracleData HubData Hub

Legacy AppWeb Store

Consensus

Sales LeadsCall Center

Data Quality

Services

Integration Services

Bsp: Wo ist mein Kunde?

OracleOracleData HubData Hub

Legacy AppWeb Store

Consensus

Cleansing

Synchronization

Dell 20 Mio Kunden

Cisco 4 Mio Kunden

8

Anbindung an Geschäftspartner

• Schnelle Anbindung neuer Partner

• Eleminierung manueller Prozesse

• Unterstützung zahlreicher Standards

• Fertige Adapter

EDI

RosettaNet

UCCnet

HL7

<Insert Picture Here>

Integration

Application-Integration

9

UDDI (JAXR)

Web Service

Web ServicesWeb ServicesRegistriesRegistries

Client ApplicationClient Application

PublishWSDL (JSR 110)

Find / Discover

InvokeSOAP (JAXM/JAX-RPC)

XML BindingXML Binding

Service ImplementationService Implementation (J2EE, PL/SQL, Other)

Web Service - Prinzip

• Standard Protokoll

• Standard Interface

• CORBA

• � Webservice

Entwicklung von Diensten / WebServices

• Implementation sprachunabhängigJava, C, Perl, PL/SQL, Cobol ...

• „per Hand“

• Ausfüllen generierter stubs

• Kapselung vorhandenen Codes (Wrapper, Generatoren)

10

A SOAP request message

<SOAP-ENV:Envelope

xmlns:SOAP-ENV=“http://{soaporg}/envelope/”

SOAP-ENV:encodingStyle=“http://{soaporg}/encoding/”>

<SOAP-ENV:Body>

</SOAP:ENV:Body>

</SOAP:ENV:Envelope>

<app:GetThisFeature xmlns:app=“some-uri”>

<app:withThisPrm>ORCL</app:withThisPrm>

</app:GetThisFeature>Message

SOAP Envelope

A SOAP response message

<SOAP-ENV:Envelope

xmlns:SOAP-ENV=“http://{soaporg}/envelope/”

SOAP-ENV:encodingStyle=“http://{soaporg}/encoding/”>

<SOAP-ENV:Body>

</SOAP:ENV:Body>

</SOAP:ENV:Envelope>

<app:GetThisFeature xmlns:app=“some-uri”>

<app:yourResult>56 3/8</app:yourResult>

</app:GetThisFeature>Message

SOAP Envelope

Result returned inthe body

11

• Web Services WG(SOAP,WSDL,UDDI)

• XMLP WG• XML Schema WG• XML Query WG

• TPAML• BOPC WG• WSRP

• J2EE Web Services JSR

• JAXM JSR• JAX-RPC JSR

• Protocol/JAXP• Repository/JAXR• Messaging/JAXM

• RNIF WG

• XMI Metadata WG• Component Model WG

� Oracle is a Founding Member of theWeb Services-Interoperability Organization

Commitment to Open Standards

Payroll Accounts(Legacy Application)

OracleASIntegration

E-mail Accounts(DB Stored Procedure)

SOAP

SOAP

SOAP

TelephoneAccounts(Outsourced)

Standard-basierte IntegrationApplikationen über Web Services verbinden

12

<Insert Picture Here>

Integration

Process-Integration

?

BPEL, The Orchestrator

BPEL

IU

PORTAL

J2EE

TOMCAT

Web Service

Java Service

ERPSAP, Oracle, etc.

User Tasks

DatabaseStored Procedures

13

BPM - Service OrchestrationBusiness Process Execution Language - BPEL

• Beschreibt das Zusammenspiel (“Orchestration”) von Diensten (Services), um einen Geschäftsprozess abzubilden

• Ermöglicht Modellierung, Ausführung und Verwaltung dieser Prozesse

• Standardisiert durch OASIS (Spezifikation V 1.1)

• Unterstützt durch alle “Key-Player” (Oracle, Microsoft, IBM, SAP, …)

BPEL BPEL SteuerungSteuerung

Place OrderPlace Order

Check CreditCheck Credit

Deliver Deliver ProductProduct

Check Check InventoryInventory

Beispiel

14

XSLT Mapper

• Transformation zwischen unterschiedlichen XML-Formaten

Oracle BPEL Process Manager

Unternehmens-Infrastruktur für Entwicklung, Verteilung und Steuerung von BPEL Business Prozessen.

15

<Insert Picture Here>

Integration

Business-Analyse

Metriken & KPIsAnalyse der

Geschäftsregeln

Business Activity

Monitoring

Analyse von Services

Place OrderPlace Order

Check CreditCheck Credit

Deliver Deliver ProductProduct

Check Check InventoryInventory

16

BAM – Business Activity Monitoring

• Globale Prozess-Sicht

• Echtzeit

• Unterschiedliche Blickwinkel möglich

• Ableitung gezielter Maßnahmen

<Insert Picture Here>

Agenda… der rote Faden

• Integration von Informations-Systemen• Generalisierung und Standardisierung

(BPEL)

• Datenaustauschformate (XML)

• Laufzeit-Umgebungen

• Datenbanken• Aufbau

• Cluster

17

Laufzeitumgebung

Zur Laufzeit ...

• Lastverteilung über mehrere Knoten � (AS-)Cluster

• Loadbalancer

• Zustandsbeschreibungen persistent ablegen� dehydration-store

• Ausfall eines Knotens wird durch die anderen Knoten „abgefangen“

• Im Backend: Datenbank

18

<Insert Picture Here>

Agenda… der rote Faden

• Integration von Informations-Systemen• Generalisierung und Standardisierung

(BPEL)

• Datenaustauschformate (XML)

• Laufzeit-Umgebungen

• Datenbanken• Aufbau

• Cluster

Aufgabe eines RDBMSerster Versuch

• Daten rein

• Daten raus

• aber bitte mit SQL!

• und nix geht verloren

• stabil

• (hoch-)verfügbar

• performant und skalierbar

• kostengünstig (in Anschaffung u. Betrieb)

• einfach bzw. geringe Komplexität

19

DatenbankBasiseigenschaften

Daten

• Relational

• Objektrelational

• Geodaten

• Binäre Daten

• Große Texte

• XML

• ...

<Insert Picture Here>

Datenbanken

XML in der Datenbank

20

XML-Datenbank„Billigansatz“

• Speicherung der Daten als Zeichenkette

• Select als Block

• Parsen bzw Manipulation mit Stringoperationen

• Performance???

<?xml version="1.0"?><?xml-stylesheet type="application/xml" href="15-2.xsl"?> <PERIODIC_TABLE>

<ATOM STATE="GAS"> <NAME>Hydrogen</NAME> <SYMBOL>H</SYMBOL> <ATOMIC_NUMBER>1</ATOMIC_NUMBER><ATOMIC_WEIGHT>1.00794</ATOMIC_WEIGHT>

</ATOM> <ATOM STATE="GAS">

<NAME>Helium</NAME> <SYMBOL>He</SYMBOL> <ATOMIC_NUMBER>2</ATOMIC_NUMBER> <ATOMIC_WEIGHT>4.0026</ATOMIC_WEIGHT>

</ATOM></PERIODIC_TABLE>

XML-Datenbankrealistischer/realer Ansatz

• Speicherung als nativer Datentyp XMLTYPE

• Erweiterung der SQL-Syntax um Zugriffsmethoden auf XML-Teile � XQuery

• Pfadbeschreibungen für verschachtelte Elemente �XPath

• Standardisierung

Industriestandard

• W3C (XQuery)

• Teil von SQL:2005

Nutzung

• XML Erzeugung

• XML-nach-XML Transformation (XSLT)

• Relationale Sichten auf XML

• Abfragen in XML-Dokumenten

21

XQueryAnwendungsgebiete

TransformationXML nach XML

XML-Abfragen XML erzeugen

•XSLT•SQL/XML

•XPath•SQL•SQL/XML

•SQL/XML•PL/SQL

XQuery

RelationaleSichten

•XPath•SQL

DatenbankBasiseigenschaften

Daten

• Relational

• Objektrelational

• Geodaten

• Binäre Daten

• Große Texte

• XML

• ...

Anforderungen

• Atomicity

• Consistency

• Isolation

• Durability

22

Aufgabe eines RDBMSverbesserte Definition

• Über definierte Schnittstellen werden Daten, • deren Definition ebenfalls mit den Mitteln des

RDBMS erfolgt, • mittels der Standard-Datenbanksprache SQL • im Mehrbenutzerbetrieb geschrieben und

gelesen, • so daß die Konsistenz in Bezug auf

Transaktionen sowie • die Wiederherstellbarkeit in Fehlerfällen

garantiert wird.

Database Server

23

ProcessGlobalArea

DatabaseBufferPool

RedoLogBuffer

DictionaryCache

DBWR

System Global Area (SGA)

Control-Datei Datendateien Online-Redo-Log-Dateien

Offline-Redolog-Dateien

Die Architektur (grob)

Speicher

LGWR SMON PMON ARCHProzesse

Memory TuningAutomatisiertes Tuning des Shared Memory

• automatische Anpasung an veränderte Arbeitslast

• Maximiert Speicher Ausnutzung

• Ein Parameter ist einfacher zu managen

• Eliminiert ‘out of memory’ Fehler

• Verbessert die Performance

SGA

PGA

Lange Batch Jobs

sort

Java Pool

SQL Cache

Large Pool

Buffer Cache

SQL Cache

sort

Online Nutzer

Large Pool

Buffer Cache

Java Pool

24

ACID

• Two-Phase commit

• Roll-Back Segmente

• Locks & Latches

• Table vs Row-Locking

• Redo Log

• Archive Logs

• Constraints

• Trigger

• Lock Escalation

• Multi-Version Read-consistency

• Rollen

• Rechte• Systemrechte

• Objektrechte

DatenbankBasiseigenschaften

Daten

• Relational

• Objektrelational

• Geodaten

• Binäre Daten

• Große Texte

• XML

• ...

Anforderungen

• Atomicity

• Consistency

• Isolation

• Durability

• + Performance

• + Verfügbarkeit

25

<Insert Picture Here>

Datenbanken

(Hoch-)Verfügbarkeit

HochverfügbarkeitAufgabe

• Alle erforderlichen Ausfallszenarien beherrschen

• Konzept• Technisch

• Organistorisch

• Personell

• Bauliche Infrastruktur

• Backup

• Backup

• Backup

• Desaster• Stromausfall

• Erdbeben

• Sturmflut

• Flugzeugabstürz

• Terroranschlag

• ...

• 24*7*365 ???

• Pauschallösung

26

GeplanteGeplanteAusfallzeitAusfallzeit

SystemSystem--WartungWartung

RoutineRoutineOperationenOperationen

Hardware &O/S Upgrades

SchemaAnpassungen

UngeplanteUngeplanteAusfallzeitAusfallzeit

ApplikationsApplikations //MenschlicheMenschliche

FehlerFehler

DatenfehlerDatenfehler&& DesasterDesaster

SystemfehlerSystemfehler

Löschen von (System-)Tabellen

DatenkorruptionFlut, Feuer, usw.

StromausfallSystemabsturz

Gründe für Ausfälle

Hochverfügbarkeit... eigentlich ganz einfach

1. Sorge dafür, daß das System (möglichst) nicht ausfällt

2. Treffe Vorbereitungen, damit im Fall (1) die Wiederanlaufzeit möglichst kurz ist

Backup!!! (t?)

27

Standby-Database

Primary Primary SiteSite

Clients

Standby Standby SiteSite

RedoRedo--LogsLogs

∆t

Data Guard Architektur - Konzept

Primary Primary SiteSite

Clients

Standby Standby SiteSite

Log InformationenLog Informationen

Broker Agent B

roker Agent

Data Guard Broker

Clients

Backup

DIGITAL DATA STORAGE

28

Fehler-Toleranz bei niedrigen Kosten

Computer Computer FehlerFehler

DatenDatenFehlerFehler

System System ÄnderungenÄnderungen

DatenDatenÄnderungenÄnderungen

UngeplanteUngeplanteDowntimeDowntime

GeplanteGeplanteDowntimeDowntime

Grid ClustersGrid ClustersFehlerFehler--Toleranz bei niedrigen KostenToleranz bei niedrigen Kosten

Shared Nothing

Shared Disk

Shared Disk / Shared Cache

ClusterTypen

29

ClusterIdee

• Mehr Rechner = mehr Leistung

• Mehrere Rechner, die das gleiche leisten = Verfügbarkeit des Systems, auch wenn ein Knoten ausfällt

Cluster Typ: Failover Cluster

• Typischerweise zwei Rechner im Verbund

• Nur der aktive Rechner hat Zugriff auf die Daten, der andere ist im Cold-Standby Modus

• Adressiert Hochverfügbarkeit; keine Skalierbarkeit

DataDataAA--ZZDataDataAA--ZZ

30

Oracle RACshared cache

• Alle Knoten werden im Normalbetrieb benutzt

• Im Fehlerfall sind alle Daten von den restlichen Knoten aus zugreifbar ( Shared Data )

• Bei Knotenausfall sind immer nur Teile von Benutzern betroffen (hier 33%)

• Transparente und sehr schnelle Übernahme, da DB sofort durch andere Knoten zugreifbar

MemoryMemory MemoryMemory MemoryMemory

10g RAC Konfiguration

Instance 1 Instance 2

Cluster Interconnect

Raw

Raw Raw

Redo/Undo Redo/Undo

DatabaseControlfilesSPFILE

Archivelogs

FS FS

Init1.ora Init2.ora

Archivelogs

Private LAN

Public LAN

FS FS

Binaries Binaries

31

Datensicherung und Recovery

Computer Computer FehlerFehler

DatenDatenFehlerFehler

System System ÄnderungenÄnderungen

DatenDatenÄnderungenÄnderungen

UngeplanteUngeplanteDowntimeDowntime

GeplanteGeplanteDowntimeDowntime

DiskDisk--basiertesbasiertes RecoveryRecovery

Kostenbetrachtung:Preisgünstiger Plattenplatzvs. teure Downtime

StandbyDatenbank(en)

Oracle 10g RAC + Data Guarddie ideale Ergänzung

Oracle Net Services

Oracle Net Services

10g RACNode 1

10g RACNode 2

Hochverfügbar

Skalierbar

Schneller Wiederanlauf bei Totalausfall

32

DBDB DBDB

2 RZ‘s, Distanz: 3km

ShadowShadowDBDBreplica

Oracle Data GuardLogische Kopie

OracleRAC

ENQ

OracleRAC

ENQ

Delay: 4 h

Logistik-System der BASF

• Systemänderungen ohne Downtime

Online ReconfigurationOnline Reconfiguration

Ziel

No Cost System Changes

Computer Computer FehlerFehler

Daten Daten FehlerFehler

System System ÄnderungenÄnderungen

DatenDatenÄnderungenÄnderungen

UngeplanteUngeplanteDowntimeDowntime

GeplanteGeplanteDowntimeDowntime

33

Systemänderungen ohne Downtime –“Capacity on Demand”

• CPU• Hinzufügen/Entfernen von CPUs

online

• Cluster Knoten• Hinzufügen/Entfernen von Cluster

Knoten online• Keine Datenumverteilung

notwendig

• Memory• Veränderung von shared memory

und buffer cache online• Automatisches Memory-Tuning

online

• Disk• Hinzufügen/Entfernen von Platten

online• Automatisches Rebalancing• Kein Umkopieren von Datenfiles

No Cost System Changes

Computer Computer FehlerFehler

Daten Daten FehlerFehler

System System ÄnderungenÄnderungen

DatenDatenÄnderungenÄnderungen

UngeplanteUngeplanteDowntimeDowntime

GeplanteGeplanteDowntimeDowntime Online RedefinitionOnline Redefinition

Änderungen ohne UnterbrechungÄnderungen ohne Unterbrechung

• Wechselnde Anforderungen erfordern kontinuierliche Veränderungen

• Änderung von Daten ohne Unterbrechung der Applikation

• Ort, Format, Indizierung oder Definition

Ziel

34

<Insert Picture Here>

Datenbanken

Editionen

$800/user or $40,000 per CPU

$300/user or $15,000

per CPU

$149/user (min. 5) or $4,995 per CPU

FREE

> 1000 users400-1000 users< 400 users< 20 users

4+ CPUs

> 500 GB DB size

Single or clustered up to 4 CPUs

< 500 GB DB size

1…2 CPU

< 500GB DB size

Uses 1 CPU

< 4GB DB size1 instance per CPU

Use up to 1GB RAM

Fee-based Support available

Full-featured database for SMBs

with optional clustering support

(up to 4 CPUs)

! RAC included !

Standard Edition

Fee-based Support available

Large-scale Enterprises

high-performance BI (ETL, DW, OLTP), security, scalability,

availability, etc.

Enterprise Edition

Free OTN Community Forum

Non-Oracle developers, open source developers,

new DBAs, students, non-Oracle ISVs, hw vendors

Express Edition

Fee-based Support available

Low-price option for SMB/LOB Deployments,

ISVs who need a supported Oracle

database

Standard Edition One

Oracle Database Produktfamilie

35

Oracle Database 10g XEExpress Edition

• Separate Edition

• 150 MB Download !

• Auf Windows, Linux

• Einfachste InstallationWin: Doppelklick, Linux: RPM

• Zielgruppe: Entwicklermit PHP, Java, .Net, Open Source, HTML DB

• Lizenzkostenfrei

• bis 4GB User Data, 1 GB Mem, 1 CPU

• Erstklassiges Online Tutorial

http://www.oracle.com/technology/products/database/xe/index.html

Application Express (ex HTMLDB)

• 100% Oracle Datenbank

• 100% Browser

• Oracle9i/10g

• Einfach, schnell, robust, sicher

• Deklaraiv und Multilingual

• Metadaten getrieben

• Komplettes Framework

36

Application Express - Beispiele

aria Business Flow asktom Partner Profiler

PromedMail

CalendarRACdatabaseThink.com

DevTrendsGEH Territory OBE

Easy To Learn

• Oracle Database 10g www.oracle.com/database

• Oracle Mittelstandslösungen www.oracle.de/mittelstand

• Oracle Support

metalink.oracle.com

•Application Express

apex.oracle.com

• Oracle by Example otn.oracle.com/obe

Oracle Database XE, SE1,SE, EETEST it – USE it

37

AQ&

<Insert Picture Here>