SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
KIT – Universität des Landes Baden-Württemberg und
nationales Forschungszentrum in der Helmholtz-Gemeinschaft
INFORMATIONSINTEGRATION UND WEBPORTALE
www.kit.edu
KIT – Universität des Landes Baden-Württemberg und
nationales Forschungszentrum in der Helmholtz-Gemeinschaft
INFORMATIONSINTEGRATION UND WEBPORTALE
www.kit.edu
KIT – Universität des Landes Baden-Württemberg und
nationales Forschungszentrum in der Helmholtz-Gemeinschaft
INFORMATIONSINTEGRATION UND WEBPORTALE
www.kit.edu
Klick-And-Bau
Informationsintegration und Webportale
Datenintegration & Verwaltung
Methoden zur Integration und Verwaltung von Portaldaten
Dr. Andreas Walter
Informationsintegration und Web-Portale
Wintersemester 2014/2015
2
Inhalt
Motivation
Verwaltung von Daten
Datenbankzugriff
Objektrelationales Mapping
Leichtgewichtiges Mapping: Beispiel mittels Spring
Schwergewichtiges Mapping: Beispiel mittels Hibernate
Integration von Daten
Pull and Push Verfahren
ETL Verfahren : Extract – Transform - Load
10.11.2014 Dr. Andreas Walter - Datenintegration & Verwaltung
Informationsintegration und Web-Portale
Wintersemester 2014/2015
3
Abgrenzung: Datenfluss / Fokus
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Datenbankzugriff
Datenbank-
Server
Datenaggregation
Datenbank
Produktion
Datenbankzugriff
Datenbank-
Server
Datenbankzugriff
Datenbank-
Server
Business Intelligence
Data
Warehouse
Fokus heute
[Datenbankabstraktion]
[Implementierung]
[ETL]
• Vorlesung Kommunikation / Datenhaltung (Zitterbart)
• Datenhaltung (in der Cloud) – Böhm
[SQL] [Transaktionen] [Persistierung]
• Analyse grosser
Datenbestände –
Böhm
[Datawarehouse]
[Datamining] [
Clusering ]
Informationsintegration und Web-Portale
Wintersemester 2014/2015
4
Portal: Erstellung von Produktkatalog
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Klick-und-
bau.com
Produkte mehrerer
Anbieter
• Einheitliche Integration
der Artikeldaten
• Geeignete
Zusammenführung von
Daten: Duplikate
erkennnen, einordnen in
Produktkatalog
• Einheitliche Such- und
Filterfunktion
Informationsintegration und Web-Portale
Wintersemester 2014/2015
5
Motivation: Datenquellen im Webportal
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Anbieter 1: OBI
Waren-
verwaltung
Bestell-
system
Anbieter 2: Hornbach
Waren-
verwaltung
Bestell-
system
Anbieter 3: Praktiker
Waren-
verwaltung
Bestell-
system
Anbieter 3: Hagebau
Waren-
verwaltung
Bestell-
system
DoYouGoogle+
FacebookTwitter
VISAPaypal
MasterCardMaestro
Klick-und-
bau.com
Waren-
verwaltung
Bestell-
system
Kunden-
verwaltung
Bezahl-
system
Such-
maschine
Content-
Management
Webseiten-
verwaltung
Informationsintegration und Web-Portale
Wintersemester 2014/2015
6
Motivation: Datenquellen im Webportal
Es müssen eine Vielzahl von Daten integriert / verwaltet werden.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Anbieter 1: OBI
Waren-
verwaltung
Bestell-
system
Anbieter 2: Hornbach
Waren-
verwaltung
Bestell-
system
Anbieter 3: Praktiker
Waren-
verwaltung
Bestell-
system
Anbieter 3: Hagebau
Waren-
verwaltung
Bestell-
system
DoYouGoogle+
FacebookTwitter
VISAPaypal
MasterCardMaestro
Klick-und-
bau.com
Waren-
verwaltung
Bestell-
system
Kunden-
verwaltung
Bezahl-
system
Such-
maschine
Content-
Management
Webseiten-
verwaltung
IntegrationvonDaten
VerwaltungvonDaten
Informationsintegration und Web-Portale
Wintersemester 2014/2015
7
Resultierende Fragen und Probleme
Verwaltung von Daten
Speicherung der Daten : Interaktion mit Datenbank(en)
Integration der Daten in die Anwendung : Daten -> JavaObjekte
Integration von Daten
Erhalt der Daten: Pull vs. Push
Formate der Daten
Erkennung von Duplikaten etc.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Gezeigt werden
-Verfahren und Vorgehen aus
der Praxis.
- Umsetzungen mit generellen
Beispielen / kein Programmier-
kurs.
Erstellung von Datenbanken / SQL
etc. siehe Vorlesungen Prof.
Böhm
Informationsintegration und Web-Portale
Wintersemester 2014/2015
8
VERWALTUNG VON
DATEN
10.11.2014 Dr. Andreas Walter - Datenintegration & Verwaltung
Informationsintegration und Web-Portale
Wintersemester 2014/2015
9
Ausgangspunkt: Mehrschichtenarchitektur
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Fat Client Fat Client Browser Browser
Presentation
Server
Application
Server
Datenbank-
Server 1
LAN
LAN / WWW
Datenbank-
Server 2
Meistens sind mehrere
Datenbankserver im Einsatz.
Hier z.b.
- Eigene Applikation: mySQL
- Kundenverwaltung: Oracle
Kunden-
verwaltung
Informationsintegration und Web-Portale
Wintersemester 2014/2015
10
Datenbankzugriff
Herstellerspezifische Unterschiede
- SQL Standard und Erweiterungen
- Protokoll für Zugriff
- Authentifizierung
- Wartung
Generelle Unterschiede
- Zu verwendende Datenbank
- Benutzername / Passwort
- URL / Port
Lösung: Abstraktion von Zugriff auf Datenbank
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Application
Server
Datenbank-
Server
- vendor: mysql
- version: 5.5
- url: db2.somehost.com
- port: 3306
- database: kbau
- user: aw
- pass: xyz
Informationsintegration und Web-Portale
Wintersemester 2014/2015
11
Abstraktion von Zugriff auf eine Datenbank (1)
Datenbank-APIs
- Verdecken herstellerspezifische Protokolle und systembezogene
Eigenschaften der Datenbanken
- Verfügbar in den gängigen Programmiersprachen, z.b. JDBC in JAVA
- Bieten Methoden zum Verbindungsaufbau, Abbau und Ausführen von
SQL-Statements
Dr. Andreas Walter - Datenintegration & Verwaltung12.11.2012
JDBC
Datenbank-
Server
Con.open(url, port, user , pass) Con.execute(‚SELECT * ...) Con.close()
Informationsintegration und Web-Portale
Wintersemester 2014/2015
12
Abstraktion von Zugriff auf eine Datenbank (2)
Vorteil Datenbank-API: verdeckt systemspezifische Eigenschaften
Nachteil: Verbindungsaufbau, Halten von Verbindungen, Abbau etc
muss manuell verwaltet werden (Sehr fehleranfällig!)
Lösung: Verwendung von Datenbank-Tool Bibliotheken.
Beispiel in JAVA: Apache Commons DBCP
(http://commons.apache.org/dbcp/)
Ermöglicht unter anderem:
- Konfiguration von zu verwendender Datenbank-API
- Konfiguration von Anzahl zu verwendenden, parallelen Verbindungen,
deren Zuweisung und Aufrechterhaltung
=> deutlich schnellerer Einzelzugriff, Parallele Verbindungen.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
13
Beispiel für XML Konfiguration von DBCP
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"><value>org.postgresql.Driver</value>
</property>
<property name="url„><value> db2.somehost.com:3306</value>
</property>
<property name="username"><value>aw</value></property>
<property name="initialSize">
<value>10</value>
</property>
<property name="maxActive">
<value>100</value>
</property>
<property name="maxIdle">
<value>300</value>
</property>
</bean>
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
14
Abstraktion von Zugriff auf eine Datenbank (3)
Überwiegende Anzahl von Datenbanken
sind RDBS – relational
Programmiersprachen wie JAVA sind
objektrelational
Erfordert ORM (object relational mapping)
- Teil der Persistenzschicht der Anwendung
- Kennt die vorhandenen Klassen
zur Datenspeicherung und
- Kennt die vorhandenen Tabellen
in der relationalen Datenbank
- Verwaltet deren korrekte
Transformation und Synchronisation
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Persistenschicht
Datenbank-
Server
Table Article
- Id
- Description
- vendorid
Table Vendor
- vendorid
- Name
- Street
Class Article
{
String Id;
Vendor vendor;
}
Informationsintegration und Web-Portale
Wintersemester 2014/2015
15
Arten des Objektrelationalen Mappings
Leichtgewichtige Rahmenwerke für ORM
Unterstützen die Anfrageausführung, z.B. Die Verwaltung von
Transaktionen
Bieten Methoden zum einfachen Iterieren über Tabellen an, um von
Tabelleninhalt in Objektinhalte zu transformieren ; Bieten das vereinfachte
Erstellen von SQL Anfragen an
Verdecken nicht von spezifischen Eigenschaften von SQL und deren
Erweiterungen des Datenbanksystems.
Schwergewichtige Rahmenwerke für ORM
Verwalten selbständig alle Anfragen an die Datenbank, inkl. Transaktionen
Verwalten selbständig alle Transformationen von den Tabellen der
Datenbank zu den Objekten der Anwendung.
Verdecken vollständig von allen spezifischen Eigenschaften von SQL des
Datenbanksystems
Erstellen und verwalten selbständig alle notwendigen Tabellen im
Datenbanksystem.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
16
Einsatz leichtgewichtiger Rahmenwerke für
ORM
Bewertung leichtgewichtiger Rahmenwerke für ORM
Nachteil
• Entwickler müssen SQL Syntax des
Datenbanksystems beherrschen
Vorteil
• Einfluss auf Tabellenschema
• Umfangreiche Optimierung möglich
Übliches Einsatzgebiet
Direkter Datenbankzugriff auf bestehende
Datenbanken
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Application
Server
Datenbank-
Server 2
Kunden-
verwaltung
Informationsintegration und Web-Portale
Wintersemester 2014/2015
17
Beispiel: Spring für JAVA
Repräsentiert ein leicht (und schwer) gewichtiges Rahmenwerk für
ORM für die Programmiersprache JAVA
.. Hier nur ein fokussierter Einblick in Spring !
• Inversion of Control: XML basierte Konfiguration von zu verwendender
Implementierung (Factory)
• Roo: Rapid application development
• Spring Data: Datenzugriff .
Beispiel hier: selbskonfiguriertes ORM.
(Anmerkung: Spring auch als schwergewichtiges Rahmenwerk in
Verbindung mit Hibernate möglich )
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
18
Selbstkonfiguriertes ORM mit Spring
Anforderung: Zugriff auf Daten in Drittsystem (z.b. Artikelverwaltung
von Anbieter A) soll ermöglicht werden.
Erfordert:
1. Konfiguration der Klassen und Interface für Daten in der eigenen
Anwendung
2. Definition des zu verwendenden SQL Statements
3. Implementierung des ORM
4. Konfiguration der Spring Beans (XML)
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
19
1: Spring: Klasse und Interface
Ziel: Artikeldaten aus Datenbank von Anbieter A laden
Class Article
{
String Id;
Vendor vendor;
}
Interface articleDao
Public List<Article> loadNewArticlesFromAnbieterA();
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
20
2 Definition des zu verwendenden SQL
Statements
Alle nötigen SQL-Anfragen
an Datenbank müssen definiert werden
(oder werden von Anbieter vorgegeben)
Zum Laden neuer Artikel soll
verwendet werden:
String sqlStatement=
‚SELECT a.id, a.description,
v.vendorid, v.name, v.street
FROM article a, vendor v
WHERE
a.vendorid=v.vendorid order by
v.name‘
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Datenbank-
Server
Table Article
- Id
- Description
- vendorid
Table Vendor
- vendorid
- Name
- Street
Informationsintegration und Web-Portale
Wintersemester 2014/2015
21
3. Implementierung des ORM
public class ArticleQuery extends TypedMappingSqlQuery<Article> {
ArticleQuery(final DataSource ds) {
super(ds,"<sql_statement>");
// super.declareParameter(new SqlParameter("sid",
Types.INTEGER));
compile();
}
protected Article mapRow (final ResultSet rs, final int rowNum) {
Article article=new Article();
article.set(rs.getInt(1));
..
return article;
}
}
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
22
4. Konfiguration der Spring Beans (XML)
<bean id=„articleDao"
class=„de.fzi.aw.vorlesung.articleDaoImpl"
scope="singleton">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
(hier auch gezeigt: Inversion of Control für articleDao) )
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
23
Einsatz schwergewichtiger Rahmenwerke für
ORM
Bewertung schwergewichtiger Rahmenwerke für ORM
Nachteil
• Kein (bzw. geringer) Einfluss auf resultierendes
Datenbankschema
Vorteil
• „Programmierung“ von Datenbankanfragen
• Komplette Abstraktion von der Datenbank
Übliches Einsatzgebiet
Objekte der eigenen Applikation
Beispiel: Hibernate (JPA)
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Application
Server
Datenbank-
Server 1
Informationsintegration und Web-Portale
Wintersemester 2014/2015
24
ORM mit Hibernate
Anforderung: Zugriff auf Datenobjekte aus der Anwendung heraus, ORM
soll verwaltet sein. Beispiel: Bestellsystem.
Verwendung von Hibernate für das Bestellsystem erfordert:
1. Erstellung von Persistenz - Objekten
2. Annotation der Klasse und Attribute
3. Definition von Datenbankabfragen mit Hibernate Query Language
(HQL)
4. Definition und Implementierung einer
Abfrageschnittstelle.
5. Konfiguration des Entity-Managers
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
25
1) Erstellung von Persistenz - Objekten
public class Order
{
private String orderId;
private List<Article> articles;
private Customer customer;
}
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Klick-und-
bau.com
Waren-
verwaltung
Bestell-
system
Kunden-
verwaltung
Such-
maschine
Content-
Management
Webseiten-
verwaltung
Informationsintegration und Web-Portale
Wintersemester 2014/2015
26
2) Annotation der Klasse und Attribute
@javax.persistence.Entity
@Table(name = „order")
public class Order
{
@ID
private String orderId;
@ManyToMany
@JoinTable(name = „articlesinorder")
private List<Article> articles;
@OneToOne(optional = true, cascade = CascadeType.ALL)
@JoinColumn(name = „customeroforder")
private Customer customer;
...
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
- Annotation als Persistenzklasse
- Festlegung der Tabelle: order
- Festlegung, welches Attribut als
Primärschlüssel dient
Weitere Relationsarten:
- OneToMany: Elemente exklusiv
der Klasse zugewiesen
- ManyToOne: geteiltes Element
Informationsintegration und Web-Portale
Wintersemester 2014/2015
27
3) Definition von Datenbankabfragen mit HQL
Hibernate Query Language (HQL) ist eine objketbezogene
Abfragesprache innerhalb von Hibernate.
• Die Abstraktionsschicht in Hibernate übersetzt die Anfrage auf die
unterstützten Datenbanken in spezifische SQL Anfrage ( .. Abfolgen)
• Das komplette ORM wird hierbei verdeckt
Einige Beispiele für NamedQueries (vgl. Prepared Statements) SQL:
@NamedQueries({
@NamedQuery(name = "getAllOrders",
query = "FROM Order ") })
.. Fragt alle Order Objekte an, intern eine Abfolge von SQL Anfragen an
Tabellen für Artikel und Kunden.
.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
.. FROM Order
=> Abfragen direkt auf Objekten!
Informationsintegration und Web-Portale
Wintersemester 2014/2015
28
4) Definition und Implementierung einer
Abfrageschnittstelle (1)
Interface CrudOrders
{
Order createOrder(Order order);
Order updateOrder(Order order);
List<Order> getAllOrders();
void deleteOrder(Order order);
}
• Exemplarisch eine Abfrageschnittstelle zum Erstellen (C) , Laden (R) ,
Aktualisieren (U) und Löschen (D) von Bestellungen [CRUD]
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
29
4) Definition und Implementierung einer
Abfrageschnittstelle (2)
@TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRED)
public class CrudOrders Bean implements CrudOrders{
@PersistenceContext
private EntityManager entityManager;
public Order createOrder(Order order)
{
entityManager.persist(order);
return order;
}
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
30
4) Definition und Implementierung einer
Abfrageschnittstelle (3)
public Order updateOrder(Order order)
{
return entityManager.merge(order);
}
public List<Order> getAllOrders()
{
return entityManager. createNamedQuery(„getAllOrders”).
getResultList();
}
Public void deleteOrder(Order order)
{
entityManager.remove(order);
}
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
31
5) Konfiguration des Entity-Managers (1)
<persistence-unit name="order-unit" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/orderDatabase</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.default_batch_fetch_size" value="16" />
<property name="hibernate.format_sql" value="true" />
...
</properties>
</persistence-unit>
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Erstellungsstrategien für Datenbank
- update: Schemaupdate bei start
- create: Schema wird immer neu erstellt
- create-drop: Schema wird bei Stop der
Anwendung gelöscht
- validate: Validierung, ob Tabellenschema
valide für Objekte (für Produktionbetrieb)
Informationsintegration und Web-Portale
Wintersemester 2014/2015
32
5) Konfiguration des Entity-Managers (2)
Konfiguration der Datenbank orderDatabase
z.b. In Jboss Database, standalone.xml
<datasources>
<datasource jndi-name="java:/orderDatabase" pool-
name=„orderDatabase" enabled="true" use-java-context="true">
<connection-url>#db.connectionurl#</connection-url>
<driver-class>#db.driver#</driver-class>
<driver>#db.vendor#</driver>
<security>
<user-name>#db.user#</user-name>
<password>#db.pass#</password>
</security>
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
33
Zusammenfassung: Verwaltung von Daten
Ziel war: Verwaltung von Daten im Portal selbst
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Klick-und-
bau.com
Waren-
verwaltung
Bestell-
system
Kunden-
verwaltung
Bezahl-
system
Such-
maschine
Webseiten-
verwaltung
VerwaltungvonDaten
Informationsintegration und Web-Portale
Wintersemester 2014/2015
34
Umsetzung: Einsatz von ORM Verfahren
Daten in externen Datenbanksystemen: leichtgewichtiges ORM
Daten in der eigenen Anwendung: schwergewichtiges ORM
=> Weitestgehende Abstraktion von Datenbanksystem und SQL
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Application
Server
Datenbank-
Server 1
Datenbank-
Server 2
Kunden-
verwaltungHibernate Spring
classOrder() class Customer() class Article() ...
Informationsintegration und Web-Portale
Wintersemester 2014/2015
35
ORM Verfahren für Portal kombinierbar
Beispiel: Integration von Artikeldaten von Anbieter
• Spring: lädt Daten von externer Datenbank, verwendet Article Klasse
• Ruft in Hibernate addArticle auf => Daten geladen in eigener DB
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Application
Server
Hibernate Spring
classOrder() class Customer() class Article() ...
Datenbank-
Server 1
Extene Artikel-
datenbank
Informationsintegration und Web-Portale
Wintersemester 2014/2015
36
INTEGRATION VON DATEN
AUS EXTERNEN SYSTEM
10.11.2014 Dr. Andreas Walter - Datenintegration & Verwaltung
Informationsintegration und Web-Portale
Wintersemester 2014/2015
37
Integration von Daten aus externen Systemen
Wie werden die Daten aus externen Systemen ins Portal transferiert?
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Anbieter 1: OBI
Waren-
verwaltung
Bestell-
system
Anbieter 2: Hornbach
Waren-
verwaltung
Bestell-
system
Anbieter 3: Praktiker
Waren-
verwaltung
Bestell-
system
Anbieter 3: Hagebau
Waren-
verwaltung
Bestell-
system
DoYouGoogle+
FacebookTwitter
VISAPaypal
MasterCardMaestro
Klick-und-
bau.com
Waren-
verwaltung
Bestell-
system
Kunden-
verwaltung
Bezahl-
system
Such-
maschine
Content-
Management
Webseiten-
verwaltung
IntegrationvonDaten
VerwaltungvonDaten
Informationsintegration und Web-Portale
Wintersemester 2014/2015
38
Verfahren der Datenintegration
Pull
Zugriff auf die Daten beim Anbieter
Daten werden regelmässig abgefragt, zum Beispiel
„neueste Artikeldaten“, „aktualisierte Artikeldaten“
Push
Kein Zugriff auf die Daten beim Anbieter
Anbieter sendet Datenaktualisierung regelmässig an
Portalbetreiber
Unterscheidung
• Vollständige Aktualisierung: Alle Daten werden
regelmässig gesendet
• Übermittlung der Änderungen: Nur Änderungen werden übermittelt
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Portal
Anbieter
Portal
Anbieter
Informationsintegration und Web-Portale
Wintersemester 2014/2015
39
Pull – naheliegender Fall: Datenbankzugriff
Alle Anbieter ermöglichen Datenbankzugriff
=> Verwendung von leichtgewichtigen ORM Verfahren
Dr. Andreas Walter - Datenintegration & Verwaltung12.11.2012
Application
Server
Datenbank-
Anbieter 1
Datenbank-
Anbieter 2
Spring Spring
classOrder() class Customer() class Article() ...
Hibernate
Datenbank-
Server APP
Informationsintegration und Web-Portale
Wintersemester 2014/2015
40
Datenbankzugriff in Praxis oft unrealistisch!
Gründe
• Datenbank des Anbieters ist nicht an das Internet angebunden.
• Systemadministrator verweigert den Zugriff, häufig wegen
• Sicherheitsbedenken
• Performanz : Angst, dass man mit eigenen Anfragen das
Produktivsystem verlangsamt.
• Einschränkung durch Systemhersteller:
Daten sind z.B. verschlüsselt abgelegt, nur sehr kostenpflichtige
Anpassungen würden Abfrage erlauben.
Angebotene Lösung häufig:
Daten werden in Reports abgefragt und gesendet.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
41
Pull – idealisierter Fall: Abfrageschnittstelle
Anbieter ermöglicht Abfrageschnittstelle (z.b Web Service)
 Daten können strukturiert abgefragt werden
 Noch idealer: Alle Anbieter implementieren eigene Spezifikation
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Application
Server
Datenbank-
Anbieter 1
Datenbank-
Anbieter 2
Web Service +
Hibernate Web Service +
Hibernate
classOrder() class Customer() class Article() ...
Hibernate
Datenbank-
Server APP
Informationsintegration und Web-Portale
Wintersemester 2014/2015
42
Pull: Datenabfrage per Schnittstelle (1)
Erfordert
• Anbieter implementiert entweder eigene Spezifikation einer
Schnittstelle.
• Es gibt eine existierende Schnittstelle die mitverwendet werden kann.
Einbindung
• Implementierung des Clients der Schnittstelle, z.B. mit JAX-WS in
JAVA
• Anbieter stellt Webservice und Beschreibung des Dienstes zur Verfügung
(WSDL)
• Generierung von Client-Klassen => regelmässige Datenabfrage
Vorteile
• Totale Abstraktion von Datenbanksystem
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
43
Pull: Datenabfrage per Schnittstelle (2)
Beispiel einer Schnittstelle zum Abfragen von Artikeldaten
/* lädt die neueste Artikel seit dem eingegebenen Datum */
public List<Article> getNewestArticle(Date lastUpdated);
/* lädt die aktualisierten Artikel seit dem eingegebenen Datum */
public List<Article> getUpdatedArticle(Date lastUpdated);
Der Anbieter selbst implementiert intern die Datenanfragen an die
Artikeldatenbank.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
44
Push: Daten werden regelmässig übertragen
Ablauf
1. Systemadministrator bei Anbieter erstellt einen Report.
Ausgabeformat ist zum Beispiel Microsoft Excel oder eine XML Datei
2. Die erstellten Dateien werden übertragen, z.B. Per Email oder mittels
einenem File Transfer (sftp, scp).
3. Eigene Anwendung nimmt Datei entgegen und soll diese laden.
Probleme beim Laden der erhaltenen Dateien
- Unterschiedliche Eingabeformate (xls, xlsx, rtf, txt, xml, sql, ...)
- Unterschiedliche Schemen. Anbieter verwendet eigenes Format ->
Anwendung erfordert eigenes Format
- Unterschiedliche Primärschlüssel in den Schemen
=> Lösung: Extract – Transform – Load Verfahren
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
45
Extract – Transform – Load Verfahren
Ziel
• Laden von externen Daten soll vereinheitlicht werden
• Erkennung von Duplikaten soll vereinfacht werden
Schritte
1. Extract: Daten werden aus einer Vielzahl von Formaten extrahiert.
2. Transform: Daten werden in Zielformat transformiert und aufbereitet.
3. Load: Daten werden in die Zieldatenbank geladen.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
46
1) Extract
Mögliche Auslöser
- zeitgesteuert: Anbieter schickt immer zu festen Zeiten eine
Aktualisierung, z.B. u Beginn einer Woche.
Auslöser: Task Scheduler, z.b. Cron Job unter Linux
- eventgesteuert: Anbieter schickt zu beliebigen Zeiten eine
Aktualisierung. Auslöser: z.B. Eingehende Email, Neue Datei in SCP
Ergebnis des Extract – Vorgangs sind Daten in strukturierter Form.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
AnbieterA-Articles.txt
01.11.2012;Gartenhütte;
123;599;4
01.11.2012;Bohrmaschi
ne;443;88;59
ETL
Extract
Id Price Stock
123 599 4
443 88 59
Informationsintegration und Web-Portale
Wintersemester 2014/2015
47
2) Transform (1)
Die Hauptaspekte der Transformation sind
• Schematransformation
• Die aus Extract Schritt geladenen strukturierten Daten werden in das
Zielschema transformiert
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Id Price Stock
123 599 4
443 88 59
ArtikelId Preis Bestand
123 599 4
443 88 59
Informationsintegration und Web-Portale
Wintersemester 2014/2015
48
2) Transform (2)
• Syntaktische Transformation: z.B. Datumsformate
• Semantische Transformation:
• z.B. Preise, hier: CHF -> Euro -> Durchführung von Berechnungen
• z.B. Verfügbarkeit: „Available: yes“ => Verfübar: ja, „Status: ausverkauft“
=> Verfügbar: no“ -> Answendung von Transformationsregeln
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Anbieter 1: OBI
Waren-
verwaltung
Anbieter 2: Hornbach
Waren-
verwaltung
ID: 1
Price: 40 CHF
Category: Holzhütte
Available: yes
ArtikelID: 1
Preise: 29 Euro
Kategorie: Hütte aus Holz
Status: ausverkauft
ETL
Transform
Informationsintegration und Web-Portale
Wintersemester 2014/2015
49
2) Transform (3)
Duplikateleminierung: Zieldatenbank in Portal soll einen Artikel nur
einmal aufführen. Falls mehrere Anbieter gleichen Artikel anbieten, soll
eine Liste von Anbietern und deren Preise gezeigt werden.
Duplikate bei gleichem Anbieter: falls Artikel bereits früher gesendet,
muss dieser überschrieben werden.
Duplikate bei mehreren Anbietern:
Regeln: Falls anbieterA.artikelID == anbieterB.artikelID => zusammenführen
Machine Learning:
z.B. Natural Language Processing.
„Hütte aus Holz“ == „Holzhütte“ => zusammenführen.
Manuell unterstützt: Portalbetreiber erstellt eigenen Artikelbaum.
Artikel-Ids aus Anbietersysteme werden auf eigenen Artikelbaum abgebildet.
Z.B. Artikelbaum: Gartenhütte. ID: 5
- anbieterA.artikelID.123 == artikelbaum.id.5
- anbieterB.artikelID.89 == artikelbaum.id.5
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
50
3) Load
Daten werden in das Zielsystem nach erfolgter Transformation
geladen.
Ladestrategie ist abhängig von der Strategie der gesendeten Daten
• Vollständige Aktualisierung: Anbieter übersendet immer den
kompletten Datenbestand.
Load Strategie: z.B.
bestehende Daten von Anbieter löschen -> neue Daten einspielen
• Inkrementelle Aktualisierung: Anbieter übersendet nur Änderungen
innerhalb eines bestimmten Zeitraums, z.b. der letzten Woche,
Load Strategie: z.B.
• ermittle geänderte Daten, aktualisiere diese
• Ermittle neue Daten, füge diese hinzu (lösche Daten entsprechend).
Gefahr: ein Update wird verpasst => Daten nicht mehr synchron.
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
51
ETL Lösungen
Vielzahl von kommerziellen Lösungen verfügbar, u.a. Microsoft, SAP,
Oracle, IBM, Interessante open source Lösung: Pentaho Kettle
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
52
Zusammenfassung (1)
Fragestellung war: wie werden Daten im Portal verwaltet / integriert
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Anbieter 1: OBI
Waren-
verwaltung
Bestell-
system
Anbieter 2: Hornbach
Waren-
verwaltung
Bestell-
system
Anbieter 3: Praktiker
Waren-
verwaltung
Bestell-
system
Anbieter 3: Hagebau
Waren-
verwaltung
Bestell-
system
DoYouGoogle+
FacebookTwitter
VISAPaypal
MasterCardMaestro
Klick-und-
bau.com
Waren-
verwaltung
Bestell-
system
Kunden-
verwaltung
Bezahl-
system
Such-
maschine
Content-
Management
Webseiten-
verwaltung
IntegrationvonDaten
VerwaltungvonDaten
Informationsintegration und Web-Portale
Wintersemester 2014/2015
53
Zusammenfassung (2)
Verwaltung von Daten
Speicherung der Daten : Interaktion mit Datenbank(en)
Datenbankzugriff: Abstraktion von Datenbanksystemen durch Apis, Tools
Leichtgewichtige ORM Verfahren: Laden von Daten direkt aus Datenbank
Integration der Daten in die Anwendung : Daten -> JavaObjekte
Schwergewichtige ORM Verfahren: Verwaltung der Persiszenzobjekte, z.b.
Mittels Hibernate
Integration von Daten
Erhalt der Daten: Pull vs. Push
Pull: ebenfalls mittels ORM, ideal: Verfügbarkeit von Web Services
Push: Daten werden in verschiedensten Formaten übermittelt.
Formate der Daten
Erkennung von Duplikaten etc.
Einsatz von ETL Verfahren
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
Informationsintegration und Web-Portale
Wintersemester 2014/2015
54
Literatur
Datenverwaltung
• Apache Commons DBCP: Datenbankabstraktion
http://commons.apache.org/dbcp/
• Spring 3: u.a. Leichtgewichtiges ORM.
Get started with Spring: http://www.springsource.org/get-started
• Hibernate: ORM basierend auf JPA Spezifikation
http://www.hibernate.org/
Integration von Daten
Pentaho Kettle Solutions: Building Open Source ETL
Solutions with Pentaho Data Integration, Matt Casters,
Wiley Verlag, 2011
Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014

Weitere ähnliche Inhalte

Was ist angesagt?

DWH Modernisierung mit Data Lake, Lab und Governance
DWH Modernisierung mit Data Lake, Lab und GovernanceDWH Modernisierung mit Data Lake, Lab und Governance
DWH Modernisierung mit Data Lake, Lab und Governance
OPITZ CONSULTING Deutschland
 

Was ist angesagt? (20)

Azure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die CloudAzure Data Factory – Data Management für die Cloud
Azure Data Factory – Data Management für die Cloud
 
SplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use CaseSplunkLive! Frankfurt 2016 - Helvetia Use Case
SplunkLive! Frankfurt 2016 - Helvetia Use Case
 
Data Quadrant - Daten Management Methode
Data Quadrant - Daten Management MethodeData Quadrant - Daten Management Methode
Data Quadrant - Daten Management Methode
 
Amazon Redshift
Amazon RedshiftAmazon Redshift
Amazon Redshift
 
CDC und Data Vault für den Aufbau eines DWH in der Automobilindustrie
CDC und Data Vault für den Aufbau eines DWH in der AutomobilindustrieCDC und Data Vault für den Aufbau eines DWH in der Automobilindustrie
CDC und Data Vault für den Aufbau eines DWH in der Automobilindustrie
 
Data Virtualization - Supernova
Data Virtualization - SupernovaData Virtualization - Supernova
Data Virtualization - Supernova
 
OpenDMA - Daten Management Solution
OpenDMA  - Daten Management SolutionOpenDMA  - Daten Management Solution
OpenDMA - Daten Management Solution
 
Caching: In-Memory Column Store oder im BI Server
Caching: In-Memory Column Store oder im BI ServerCaching: In-Memory Column Store oder im BI Server
Caching: In-Memory Column Store oder im BI Server
 
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und HadoopRealtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
Realtime BigData Step by Step mit Lambda, Kafka, Storm und Hadoop
 
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?
BPMN, BPEL oder vielleicht doch Java? Oder auch noch ESB?
 
DWH-Modellierung mit Data Vault
DWH-Modellierung mit Data VaultDWH-Modellierung mit Data Vault
DWH-Modellierung mit Data Vault
 
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
‘Fehler vorprogrammiert’ Paul Tours, Senior Consultant/Human Inference
 
Data Vault DWH Automation
Data Vault DWH AutomationData Vault DWH Automation
Data Vault DWH Automation
 
Big Data Appliances
Big Data AppliancesBig Data Appliances
Big Data Appliances
 
Überblick Oracle GoldenGate
Überblick Oracle GoldenGateÜberblick Oracle GoldenGate
Überblick Oracle GoldenGate
 
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
Oracle GoldenGate: Synchronisation zwischen Oracle und MySQL Datenbanken, Nov...
 
Replikation im heterogenen Umfeld mit Oracle GoldenGate
Replikation im heterogenen Umfeld mit Oracle GoldenGateReplikation im heterogenen Umfeld mit Oracle GoldenGate
Replikation im heterogenen Umfeld mit Oracle GoldenGate
 
’Klare Sicht auf Ihre Kunden - Erfolgsfaktor korrekter Kundendaten!” Klaus Sc...
’Klare Sicht auf Ihre Kunden - Erfolgsfaktor korrekter Kundendaten!” Klaus Sc...’Klare Sicht auf Ihre Kunden - Erfolgsfaktor korrekter Kundendaten!” Klaus Sc...
’Klare Sicht auf Ihre Kunden - Erfolgsfaktor korrekter Kundendaten!” Klaus Sc...
 
DWH Modernisierung mit Data Lake, Lab und Governance
DWH Modernisierung mit Data Lake, Lab und GovernanceDWH Modernisierung mit Data Lake, Lab und Governance
DWH Modernisierung mit Data Lake, Lab und Governance
 
Modellierung agliler Data Warehouses mit Data Vault
Modellierung agliler Data Warehouses mit Data VaultModellierung agliler Data Warehouses mit Data Vault
Modellierung agliler Data Warehouses mit Data Vault
 

Andere mochten auch

Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
winghung
 
Datenqualität mit den SQL Server Integration Services
Datenqualität mit den SQL Server Integration ServicesDatenqualität mit den SQL Server Integration Services
Datenqualität mit den SQL Server Integration Services
datenfabrik
 
Silabo informatica
Silabo informaticaSilabo informatica
Silabo informatica
Carmen Godoy
 
Introduction of ssis
Introduction of ssisIntroduction of ssis
Introduction of ssis
deepakk073
 

Andere mochten auch (12)

Business Intelligence Portfolio
Business Intelligence PortfolioBusiness Intelligence Portfolio
Business Intelligence Portfolio
 
Sql Server GrundlagenfüR Share Point Admins
Sql Server GrundlagenfüR Share Point AdminsSql Server GrundlagenfüR Share Point Admins
Sql Server GrundlagenfüR Share Point Admins
 
Datenqualität mit den SQL Server Integration Services
Datenqualität mit den SQL Server Integration ServicesDatenqualität mit den SQL Server Integration Services
Datenqualität mit den SQL Server Integration Services
 
Standardisierung von ETL Prozessen und ausgelagerte Geschäftsregeln
Standardisierung von ETL Prozessen und ausgelagerte GeschäftsregelnStandardisierung von ETL Prozessen und ausgelagerte Geschäftsregeln
Standardisierung von ETL Prozessen und ausgelagerte Geschäftsregeln
 
Microsoft BI - SQL Server und SharePoint im Zusammenspiel - OPITZ CONSULTING ...
Microsoft BI - SQL Server und SharePoint im Zusammenspiel - OPITZ CONSULTING ...Microsoft BI - SQL Server und SharePoint im Zusammenspiel - OPITZ CONSULTING ...
Microsoft BI - SQL Server und SharePoint im Zusammenspiel - OPITZ CONSULTING ...
 
Silabo informatica
Silabo informaticaSilabo informatica
Silabo informatica
 
1\9.SSIS 2008R2_Training - Introduction to SSIS
1\9.SSIS 2008R2_Training - Introduction to SSIS1\9.SSIS 2008R2_Training - Introduction to SSIS
1\9.SSIS 2008R2_Training - Introduction to SSIS
 
Introduction of ssis
Introduction of ssisIntroduction of ssis
Introduction of ssis
 
Neues in SQL Server 2016 – Evaluierung SQL Server 2016 CTP 3 für den BI Stack
Neues in SQL Server 2016 – Evaluierung SQL Server 2016 CTP 3 für den BI StackNeues in SQL Server 2016 – Evaluierung SQL Server 2016 CTP 3 für den BI Stack
Neues in SQL Server 2016 – Evaluierung SQL Server 2016 CTP 3 für den BI Stack
 
SEO Campixx 2015 | ETL & BI für SEO Analysen und Reportings von Johannes Kunze
SEO Campixx 2015 | ETL & BI für SEO Analysen und Reportings von Johannes KunzeSEO Campixx 2015 | ETL & BI für SEO Analysen und Reportings von Johannes Kunze
SEO Campixx 2015 | ETL & BI für SEO Analysen und Reportings von Johannes Kunze
 
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
In Memory-Technologien im Vergleich - SQL Server Konferenz 2015
 
Zeit für migration auf SAP HANA
Zeit für migration auf SAP HANAZeit für migration auf SAP HANA
Zeit für migration auf SAP HANA
 

Ähnlich wie 04 Datenintegration und Verwaltung

Einbindung von Linked Data in existierende Bibliotheksanswendungen
Einbindung von Linked Data in existierende BibliotheksanswendungenEinbindung von Linked Data in existierende Bibliotheksanswendungen
Einbindung von Linked Data in existierende Bibliotheksanswendungen
redsys
 

Ähnlich wie 04 Datenintegration und Verwaltung (20)

Dienstorientierte Integration von Komponenten
Dienstorientierte Integration von KomponentenDienstorientierte Integration von Komponenten
Dienstorientierte Integration von Komponenten
 
02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale02 Webtechnologien - Informatiosinstegration und Webportale
02 Webtechnologien - Informatiosinstegration und Webportale
 
Big Data Konnektivität
Big Data KonnektivitätBig Data Konnektivität
Big Data Konnektivität
 
Cloud Computing für die Verarbeitung von Metadaten
Cloud Computing für die Verarbeitung von MetadatenCloud Computing für die Verarbeitung von Metadaten
Cloud Computing für die Verarbeitung von Metadaten
 
Ein blick in die Zukunft von in-STEP BLUE
Ein blick in die Zukunft von in-STEP BLUEEin blick in die Zukunft von in-STEP BLUE
Ein blick in die Zukunft von in-STEP BLUE
 
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-PortalsOpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
OpenBib und Linked Open Data - Weiterentwicklung eines Recherche-Portals
 
16. DINI-Jahrestagung: Linked Data und Repositorien
16. DINI-Jahrestagung: Linked Data und Repositorien16. DINI-Jahrestagung: Linked Data und Repositorien
16. DINI-Jahrestagung: Linked Data und Repositorien
 
1. intranda Goobi Tag: Vom Tool zum Trend
1. intranda Goobi Tag: Vom Tool zum Trend1. intranda Goobi Tag: Vom Tool zum Trend
1. intranda Goobi Tag: Vom Tool zum Trend
 
05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans05 Mehrschichtenarchitekturen und Enterprise Java Beans
05 Mehrschichtenarchitekturen und Enterprise Java Beans
 
NEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOANEW VERSION: Data Quality und SOA
NEW VERSION: Data Quality und SOA
 
03 EAI - Enterprise Application Integration
03 EAI - Enterprise Application Integration03 EAI - Enterprise Application Integration
03 EAI - Enterprise Application Integration
 
Something for the Cloud
Something for the CloudSomething for the Cloud
Something for the Cloud
 
Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?Wie kommt der Client zur Datenbank?
Wie kommt der Client zur Datenbank?
 
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
Das ende von owb was nun migrationspfade fuer owb_projekte-dani schnider-stan...
 
Einbindung von Linked Data in existierende Bibliotheksanswendungen
Einbindung von Linked Data in existierende BibliotheksanswendungenEinbindung von Linked Data in existierende Bibliotheksanswendungen
Einbindung von Linked Data in existierende Bibliotheksanswendungen
 
2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc2007 - Basta!: Nach soa kommt soc
2007 - Basta!: Nach soa kommt soc
 
ALM mit TFS 2010
ALM mit TFS 2010ALM mit TFS 2010
ALM mit TFS 2010
 
BizSpark goes Cloud
BizSpark goes CloudBizSpark goes Cloud
BizSpark goes Cloud
 
Webinar SharePoint auf AWS
Webinar SharePoint auf AWSWebinar SharePoint auf AWS
Webinar SharePoint auf AWS
 
APEX für den Oracle DBA
APEX für den Oracle DBAAPEX für den Oracle DBA
APEX für den Oracle DBA
 

04 Datenintegration und Verwaltung

  • 1. KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu KIT – Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft INFORMATIONSINTEGRATION UND WEBPORTALE www.kit.edu Klick-And-Bau Informationsintegration und Webportale Datenintegration & Verwaltung Methoden zur Integration und Verwaltung von Portaldaten Dr. Andreas Walter
  • 2. Informationsintegration und Web-Portale Wintersemester 2014/2015 2 Inhalt Motivation Verwaltung von Daten Datenbankzugriff Objektrelationales Mapping Leichtgewichtiges Mapping: Beispiel mittels Spring Schwergewichtiges Mapping: Beispiel mittels Hibernate Integration von Daten Pull and Push Verfahren ETL Verfahren : Extract – Transform - Load 10.11.2014 Dr. Andreas Walter - Datenintegration & Verwaltung
  • 3. Informationsintegration und Web-Portale Wintersemester 2014/2015 3 Abgrenzung: Datenfluss / Fokus Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Datenbankzugriff Datenbank- Server Datenaggregation Datenbank Produktion Datenbankzugriff Datenbank- Server Datenbankzugriff Datenbank- Server Business Intelligence Data Warehouse Fokus heute [Datenbankabstraktion] [Implementierung] [ETL] • Vorlesung Kommunikation / Datenhaltung (Zitterbart) • Datenhaltung (in der Cloud) – Böhm [SQL] [Transaktionen] [Persistierung] • Analyse grosser Datenbestände – Böhm [Datawarehouse] [Datamining] [ Clusering ]
  • 4. Informationsintegration und Web-Portale Wintersemester 2014/2015 4 Portal: Erstellung von Produktkatalog Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Klick-und- bau.com Produkte mehrerer Anbieter • Einheitliche Integration der Artikeldaten • Geeignete Zusammenführung von Daten: Duplikate erkennnen, einordnen in Produktkatalog • Einheitliche Such- und Filterfunktion
  • 5. Informationsintegration und Web-Portale Wintersemester 2014/2015 5 Motivation: Datenquellen im Webportal Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Anbieter 1: OBI Waren- verwaltung Bestell- system Anbieter 2: Hornbach Waren- verwaltung Bestell- system Anbieter 3: Praktiker Waren- verwaltung Bestell- system Anbieter 3: Hagebau Waren- verwaltung Bestell- system DoYouGoogle+ FacebookTwitter VISAPaypal MasterCardMaestro Klick-und- bau.com Waren- verwaltung Bestell- system Kunden- verwaltung Bezahl- system Such- maschine Content- Management Webseiten- verwaltung
  • 6. Informationsintegration und Web-Portale Wintersemester 2014/2015 6 Motivation: Datenquellen im Webportal Es müssen eine Vielzahl von Daten integriert / verwaltet werden. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Anbieter 1: OBI Waren- verwaltung Bestell- system Anbieter 2: Hornbach Waren- verwaltung Bestell- system Anbieter 3: Praktiker Waren- verwaltung Bestell- system Anbieter 3: Hagebau Waren- verwaltung Bestell- system DoYouGoogle+ FacebookTwitter VISAPaypal MasterCardMaestro Klick-und- bau.com Waren- verwaltung Bestell- system Kunden- verwaltung Bezahl- system Such- maschine Content- Management Webseiten- verwaltung IntegrationvonDaten VerwaltungvonDaten
  • 7. Informationsintegration und Web-Portale Wintersemester 2014/2015 7 Resultierende Fragen und Probleme Verwaltung von Daten Speicherung der Daten : Interaktion mit Datenbank(en) Integration der Daten in die Anwendung : Daten -> JavaObjekte Integration von Daten Erhalt der Daten: Pull vs. Push Formate der Daten Erkennung von Duplikaten etc. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Gezeigt werden -Verfahren und Vorgehen aus der Praxis. - Umsetzungen mit generellen Beispielen / kein Programmier- kurs. Erstellung von Datenbanken / SQL etc. siehe Vorlesungen Prof. Böhm
  • 8. Informationsintegration und Web-Portale Wintersemester 2014/2015 8 VERWALTUNG VON DATEN 10.11.2014 Dr. Andreas Walter - Datenintegration & Verwaltung
  • 9. Informationsintegration und Web-Portale Wintersemester 2014/2015 9 Ausgangspunkt: Mehrschichtenarchitektur Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Fat Client Fat Client Browser Browser Presentation Server Application Server Datenbank- Server 1 LAN LAN / WWW Datenbank- Server 2 Meistens sind mehrere Datenbankserver im Einsatz. Hier z.b. - Eigene Applikation: mySQL - Kundenverwaltung: Oracle Kunden- verwaltung
  • 10. Informationsintegration und Web-Portale Wintersemester 2014/2015 10 Datenbankzugriff Herstellerspezifische Unterschiede - SQL Standard und Erweiterungen - Protokoll für Zugriff - Authentifizierung - Wartung Generelle Unterschiede - Zu verwendende Datenbank - Benutzername / Passwort - URL / Port Lösung: Abstraktion von Zugriff auf Datenbank Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Application Server Datenbank- Server - vendor: mysql - version: 5.5 - url: db2.somehost.com - port: 3306 - database: kbau - user: aw - pass: xyz
  • 11. Informationsintegration und Web-Portale Wintersemester 2014/2015 11 Abstraktion von Zugriff auf eine Datenbank (1) Datenbank-APIs - Verdecken herstellerspezifische Protokolle und systembezogene Eigenschaften der Datenbanken - Verfügbar in den gängigen Programmiersprachen, z.b. JDBC in JAVA - Bieten Methoden zum Verbindungsaufbau, Abbau und Ausführen von SQL-Statements Dr. Andreas Walter - Datenintegration & Verwaltung12.11.2012 JDBC Datenbank- Server Con.open(url, port, user , pass) Con.execute(‚SELECT * ...) Con.close()
  • 12. Informationsintegration und Web-Portale Wintersemester 2014/2015 12 Abstraktion von Zugriff auf eine Datenbank (2) Vorteil Datenbank-API: verdeckt systemspezifische Eigenschaften Nachteil: Verbindungsaufbau, Halten von Verbindungen, Abbau etc muss manuell verwaltet werden (Sehr fehleranfällig!) Lösung: Verwendung von Datenbank-Tool Bibliotheken. Beispiel in JAVA: Apache Commons DBCP (http://commons.apache.org/dbcp/) Ermöglicht unter anderem: - Konfiguration von zu verwendender Datenbank-API - Konfiguration von Anzahl zu verwendenden, parallelen Verbindungen, deren Zuweisung und Aufrechterhaltung => deutlich schnellerer Einzelzugriff, Parallele Verbindungen. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 13. Informationsintegration und Web-Portale Wintersemester 2014/2015 13 Beispiel für XML Konfiguration von DBCP <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"><value>org.postgresql.Driver</value> </property> <property name="url„><value> db2.somehost.com:3306</value> </property> <property name="username"><value>aw</value></property> <property name="initialSize"> <value>10</value> </property> <property name="maxActive"> <value>100</value> </property> <property name="maxIdle"> <value>300</value> </property> </bean> Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 14. Informationsintegration und Web-Portale Wintersemester 2014/2015 14 Abstraktion von Zugriff auf eine Datenbank (3) Überwiegende Anzahl von Datenbanken sind RDBS – relational Programmiersprachen wie JAVA sind objektrelational Erfordert ORM (object relational mapping) - Teil der Persistenzschicht der Anwendung - Kennt die vorhandenen Klassen zur Datenspeicherung und - Kennt die vorhandenen Tabellen in der relationalen Datenbank - Verwaltet deren korrekte Transformation und Synchronisation Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Persistenschicht Datenbank- Server Table Article - Id - Description - vendorid Table Vendor - vendorid - Name - Street Class Article { String Id; Vendor vendor; }
  • 15. Informationsintegration und Web-Portale Wintersemester 2014/2015 15 Arten des Objektrelationalen Mappings Leichtgewichtige Rahmenwerke für ORM Unterstützen die Anfrageausführung, z.B. Die Verwaltung von Transaktionen Bieten Methoden zum einfachen Iterieren über Tabellen an, um von Tabelleninhalt in Objektinhalte zu transformieren ; Bieten das vereinfachte Erstellen von SQL Anfragen an Verdecken nicht von spezifischen Eigenschaften von SQL und deren Erweiterungen des Datenbanksystems. Schwergewichtige Rahmenwerke für ORM Verwalten selbständig alle Anfragen an die Datenbank, inkl. Transaktionen Verwalten selbständig alle Transformationen von den Tabellen der Datenbank zu den Objekten der Anwendung. Verdecken vollständig von allen spezifischen Eigenschaften von SQL des Datenbanksystems Erstellen und verwalten selbständig alle notwendigen Tabellen im Datenbanksystem. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 16. Informationsintegration und Web-Portale Wintersemester 2014/2015 16 Einsatz leichtgewichtiger Rahmenwerke für ORM Bewertung leichtgewichtiger Rahmenwerke für ORM Nachteil • Entwickler müssen SQL Syntax des Datenbanksystems beherrschen Vorteil • Einfluss auf Tabellenschema • Umfangreiche Optimierung möglich Übliches Einsatzgebiet Direkter Datenbankzugriff auf bestehende Datenbanken Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Application Server Datenbank- Server 2 Kunden- verwaltung
  • 17. Informationsintegration und Web-Portale Wintersemester 2014/2015 17 Beispiel: Spring für JAVA Repräsentiert ein leicht (und schwer) gewichtiges Rahmenwerk für ORM für die Programmiersprache JAVA .. Hier nur ein fokussierter Einblick in Spring ! • Inversion of Control: XML basierte Konfiguration von zu verwendender Implementierung (Factory) • Roo: Rapid application development • Spring Data: Datenzugriff . Beispiel hier: selbskonfiguriertes ORM. (Anmerkung: Spring auch als schwergewichtiges Rahmenwerk in Verbindung mit Hibernate möglich ) Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 18. Informationsintegration und Web-Portale Wintersemester 2014/2015 18 Selbstkonfiguriertes ORM mit Spring Anforderung: Zugriff auf Daten in Drittsystem (z.b. Artikelverwaltung von Anbieter A) soll ermöglicht werden. Erfordert: 1. Konfiguration der Klassen und Interface für Daten in der eigenen Anwendung 2. Definition des zu verwendenden SQL Statements 3. Implementierung des ORM 4. Konfiguration der Spring Beans (XML) Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 19. Informationsintegration und Web-Portale Wintersemester 2014/2015 19 1: Spring: Klasse und Interface Ziel: Artikeldaten aus Datenbank von Anbieter A laden Class Article { String Id; Vendor vendor; } Interface articleDao Public List<Article> loadNewArticlesFromAnbieterA(); Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 20. Informationsintegration und Web-Portale Wintersemester 2014/2015 20 2 Definition des zu verwendenden SQL Statements Alle nötigen SQL-Anfragen an Datenbank müssen definiert werden (oder werden von Anbieter vorgegeben) Zum Laden neuer Artikel soll verwendet werden: String sqlStatement= ‚SELECT a.id, a.description, v.vendorid, v.name, v.street FROM article a, vendor v WHERE a.vendorid=v.vendorid order by v.name‘ Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Datenbank- Server Table Article - Id - Description - vendorid Table Vendor - vendorid - Name - Street
  • 21. Informationsintegration und Web-Portale Wintersemester 2014/2015 21 3. Implementierung des ORM public class ArticleQuery extends TypedMappingSqlQuery<Article> { ArticleQuery(final DataSource ds) { super(ds,"<sql_statement>"); // super.declareParameter(new SqlParameter("sid", Types.INTEGER)); compile(); } protected Article mapRow (final ResultSet rs, final int rowNum) { Article article=new Article(); article.set(rs.getInt(1)); .. return article; } } Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 22. Informationsintegration und Web-Portale Wintersemester 2014/2015 22 4. Konfiguration der Spring Beans (XML) <bean id=„articleDao" class=„de.fzi.aw.vorlesung.articleDaoImpl" scope="singleton"> <property name="dataSource"> <ref bean="dataSource" /> </property> </bean> (hier auch gezeigt: Inversion of Control für articleDao) ) Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 23. Informationsintegration und Web-Portale Wintersemester 2014/2015 23 Einsatz schwergewichtiger Rahmenwerke für ORM Bewertung schwergewichtiger Rahmenwerke für ORM Nachteil • Kein (bzw. geringer) Einfluss auf resultierendes Datenbankschema Vorteil • „Programmierung“ von Datenbankanfragen • Komplette Abstraktion von der Datenbank Übliches Einsatzgebiet Objekte der eigenen Applikation Beispiel: Hibernate (JPA) Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Application Server Datenbank- Server 1
  • 24. Informationsintegration und Web-Portale Wintersemester 2014/2015 24 ORM mit Hibernate Anforderung: Zugriff auf Datenobjekte aus der Anwendung heraus, ORM soll verwaltet sein. Beispiel: Bestellsystem. Verwendung von Hibernate für das Bestellsystem erfordert: 1. Erstellung von Persistenz - Objekten 2. Annotation der Klasse und Attribute 3. Definition von Datenbankabfragen mit Hibernate Query Language (HQL) 4. Definition und Implementierung einer Abfrageschnittstelle. 5. Konfiguration des Entity-Managers Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 25. Informationsintegration und Web-Portale Wintersemester 2014/2015 25 1) Erstellung von Persistenz - Objekten public class Order { private String orderId; private List<Article> articles; private Customer customer; } Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Klick-und- bau.com Waren- verwaltung Bestell- system Kunden- verwaltung Such- maschine Content- Management Webseiten- verwaltung
  • 26. Informationsintegration und Web-Portale Wintersemester 2014/2015 26 2) Annotation der Klasse und Attribute @javax.persistence.Entity @Table(name = „order") public class Order { @ID private String orderId; @ManyToMany @JoinTable(name = „articlesinorder") private List<Article> articles; @OneToOne(optional = true, cascade = CascadeType.ALL) @JoinColumn(name = „customeroforder") private Customer customer; ... Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 - Annotation als Persistenzklasse - Festlegung der Tabelle: order - Festlegung, welches Attribut als Primärschlüssel dient Weitere Relationsarten: - OneToMany: Elemente exklusiv der Klasse zugewiesen - ManyToOne: geteiltes Element
  • 27. Informationsintegration und Web-Portale Wintersemester 2014/2015 27 3) Definition von Datenbankabfragen mit HQL Hibernate Query Language (HQL) ist eine objketbezogene Abfragesprache innerhalb von Hibernate. • Die Abstraktionsschicht in Hibernate übersetzt die Anfrage auf die unterstützten Datenbanken in spezifische SQL Anfrage ( .. Abfolgen) • Das komplette ORM wird hierbei verdeckt Einige Beispiele für NamedQueries (vgl. Prepared Statements) SQL: @NamedQueries({ @NamedQuery(name = "getAllOrders", query = "FROM Order ") }) .. Fragt alle Order Objekte an, intern eine Abfolge von SQL Anfragen an Tabellen für Artikel und Kunden. . Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 .. FROM Order => Abfragen direkt auf Objekten!
  • 28. Informationsintegration und Web-Portale Wintersemester 2014/2015 28 4) Definition und Implementierung einer Abfrageschnittstelle (1) Interface CrudOrders { Order createOrder(Order order); Order updateOrder(Order order); List<Order> getAllOrders(); void deleteOrder(Order order); } • Exemplarisch eine Abfrageschnittstelle zum Erstellen (C) , Laden (R) , Aktualisieren (U) und Löschen (D) von Bestellungen [CRUD] Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 29. Informationsintegration und Web-Portale Wintersemester 2014/2015 29 4) Definition und Implementierung einer Abfrageschnittstelle (2) @TransactionAttribute(javax.ejb.TransactionAttributeType.REQUIRED) public class CrudOrders Bean implements CrudOrders{ @PersistenceContext private EntityManager entityManager; public Order createOrder(Order order) { entityManager.persist(order); return order; } Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 30. Informationsintegration und Web-Portale Wintersemester 2014/2015 30 4) Definition und Implementierung einer Abfrageschnittstelle (3) public Order updateOrder(Order order) { return entityManager.merge(order); } public List<Order> getAllOrders() { return entityManager. createNamedQuery(„getAllOrders”). getResultList(); } Public void deleteOrder(Order order) { entityManager.remove(order); } Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 31. Informationsintegration und Web-Portale Wintersemester 2014/2015 31 5) Konfiguration des Entity-Managers (1) <persistence-unit name="order-unit" transaction-type="JTA"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <jta-data-source>java:/orderDatabase</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.default_batch_fetch_size" value="16" /> <property name="hibernate.format_sql" value="true" /> ... </properties> </persistence-unit> Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Erstellungsstrategien für Datenbank - update: Schemaupdate bei start - create: Schema wird immer neu erstellt - create-drop: Schema wird bei Stop der Anwendung gelöscht - validate: Validierung, ob Tabellenschema valide für Objekte (für Produktionbetrieb)
  • 32. Informationsintegration und Web-Portale Wintersemester 2014/2015 32 5) Konfiguration des Entity-Managers (2) Konfiguration der Datenbank orderDatabase z.b. In Jboss Database, standalone.xml <datasources> <datasource jndi-name="java:/orderDatabase" pool- name=„orderDatabase" enabled="true" use-java-context="true"> <connection-url>#db.connectionurl#</connection-url> <driver-class>#db.driver#</driver-class> <driver>#db.vendor#</driver> <security> <user-name>#db.user#</user-name> <password>#db.pass#</password> </security> Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 33. Informationsintegration und Web-Portale Wintersemester 2014/2015 33 Zusammenfassung: Verwaltung von Daten Ziel war: Verwaltung von Daten im Portal selbst Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Klick-und- bau.com Waren- verwaltung Bestell- system Kunden- verwaltung Bezahl- system Such- maschine Webseiten- verwaltung VerwaltungvonDaten
  • 34. Informationsintegration und Web-Portale Wintersemester 2014/2015 34 Umsetzung: Einsatz von ORM Verfahren Daten in externen Datenbanksystemen: leichtgewichtiges ORM Daten in der eigenen Anwendung: schwergewichtiges ORM => Weitestgehende Abstraktion von Datenbanksystem und SQL Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Application Server Datenbank- Server 1 Datenbank- Server 2 Kunden- verwaltungHibernate Spring classOrder() class Customer() class Article() ...
  • 35. Informationsintegration und Web-Portale Wintersemester 2014/2015 35 ORM Verfahren für Portal kombinierbar Beispiel: Integration von Artikeldaten von Anbieter • Spring: lädt Daten von externer Datenbank, verwendet Article Klasse • Ruft in Hibernate addArticle auf => Daten geladen in eigener DB Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Application Server Hibernate Spring classOrder() class Customer() class Article() ... Datenbank- Server 1 Extene Artikel- datenbank
  • 36. Informationsintegration und Web-Portale Wintersemester 2014/2015 36 INTEGRATION VON DATEN AUS EXTERNEN SYSTEM 10.11.2014 Dr. Andreas Walter - Datenintegration & Verwaltung
  • 37. Informationsintegration und Web-Portale Wintersemester 2014/2015 37 Integration von Daten aus externen Systemen Wie werden die Daten aus externen Systemen ins Portal transferiert? Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Anbieter 1: OBI Waren- verwaltung Bestell- system Anbieter 2: Hornbach Waren- verwaltung Bestell- system Anbieter 3: Praktiker Waren- verwaltung Bestell- system Anbieter 3: Hagebau Waren- verwaltung Bestell- system DoYouGoogle+ FacebookTwitter VISAPaypal MasterCardMaestro Klick-und- bau.com Waren- verwaltung Bestell- system Kunden- verwaltung Bezahl- system Such- maschine Content- Management Webseiten- verwaltung IntegrationvonDaten VerwaltungvonDaten
  • 38. Informationsintegration und Web-Portale Wintersemester 2014/2015 38 Verfahren der Datenintegration Pull Zugriff auf die Daten beim Anbieter Daten werden regelmässig abgefragt, zum Beispiel „neueste Artikeldaten“, „aktualisierte Artikeldaten“ Push Kein Zugriff auf die Daten beim Anbieter Anbieter sendet Datenaktualisierung regelmässig an Portalbetreiber Unterscheidung • Vollständige Aktualisierung: Alle Daten werden regelmässig gesendet • Übermittlung der Änderungen: Nur Änderungen werden übermittelt Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Portal Anbieter Portal Anbieter
  • 39. Informationsintegration und Web-Portale Wintersemester 2014/2015 39 Pull – naheliegender Fall: Datenbankzugriff Alle Anbieter ermöglichen Datenbankzugriff => Verwendung von leichtgewichtigen ORM Verfahren Dr. Andreas Walter - Datenintegration & Verwaltung12.11.2012 Application Server Datenbank- Anbieter 1 Datenbank- Anbieter 2 Spring Spring classOrder() class Customer() class Article() ... Hibernate Datenbank- Server APP
  • 40. Informationsintegration und Web-Portale Wintersemester 2014/2015 40 Datenbankzugriff in Praxis oft unrealistisch! Gründe • Datenbank des Anbieters ist nicht an das Internet angebunden. • Systemadministrator verweigert den Zugriff, häufig wegen • Sicherheitsbedenken • Performanz : Angst, dass man mit eigenen Anfragen das Produktivsystem verlangsamt. • Einschränkung durch Systemhersteller: Daten sind z.B. verschlüsselt abgelegt, nur sehr kostenpflichtige Anpassungen würden Abfrage erlauben. Angebotene Lösung häufig: Daten werden in Reports abgefragt und gesendet. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 41. Informationsintegration und Web-Portale Wintersemester 2014/2015 41 Pull – idealisierter Fall: Abfrageschnittstelle Anbieter ermöglicht Abfrageschnittstelle (z.b Web Service)  Daten können strukturiert abgefragt werden  Noch idealer: Alle Anbieter implementieren eigene Spezifikation Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Application Server Datenbank- Anbieter 1 Datenbank- Anbieter 2 Web Service + Hibernate Web Service + Hibernate classOrder() class Customer() class Article() ... Hibernate Datenbank- Server APP
  • 42. Informationsintegration und Web-Portale Wintersemester 2014/2015 42 Pull: Datenabfrage per Schnittstelle (1) Erfordert • Anbieter implementiert entweder eigene Spezifikation einer Schnittstelle. • Es gibt eine existierende Schnittstelle die mitverwendet werden kann. Einbindung • Implementierung des Clients der Schnittstelle, z.B. mit JAX-WS in JAVA • Anbieter stellt Webservice und Beschreibung des Dienstes zur Verfügung (WSDL) • Generierung von Client-Klassen => regelmässige Datenabfrage Vorteile • Totale Abstraktion von Datenbanksystem Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 43. Informationsintegration und Web-Portale Wintersemester 2014/2015 43 Pull: Datenabfrage per Schnittstelle (2) Beispiel einer Schnittstelle zum Abfragen von Artikeldaten /* lädt die neueste Artikel seit dem eingegebenen Datum */ public List<Article> getNewestArticle(Date lastUpdated); /* lädt die aktualisierten Artikel seit dem eingegebenen Datum */ public List<Article> getUpdatedArticle(Date lastUpdated); Der Anbieter selbst implementiert intern die Datenanfragen an die Artikeldatenbank. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 44. Informationsintegration und Web-Portale Wintersemester 2014/2015 44 Push: Daten werden regelmässig übertragen Ablauf 1. Systemadministrator bei Anbieter erstellt einen Report. Ausgabeformat ist zum Beispiel Microsoft Excel oder eine XML Datei 2. Die erstellten Dateien werden übertragen, z.B. Per Email oder mittels einenem File Transfer (sftp, scp). 3. Eigene Anwendung nimmt Datei entgegen und soll diese laden. Probleme beim Laden der erhaltenen Dateien - Unterschiedliche Eingabeformate (xls, xlsx, rtf, txt, xml, sql, ...) - Unterschiedliche Schemen. Anbieter verwendet eigenes Format -> Anwendung erfordert eigenes Format - Unterschiedliche Primärschlüssel in den Schemen => Lösung: Extract – Transform – Load Verfahren Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 45. Informationsintegration und Web-Portale Wintersemester 2014/2015 45 Extract – Transform – Load Verfahren Ziel • Laden von externen Daten soll vereinheitlicht werden • Erkennung von Duplikaten soll vereinfacht werden Schritte 1. Extract: Daten werden aus einer Vielzahl von Formaten extrahiert. 2. Transform: Daten werden in Zielformat transformiert und aufbereitet. 3. Load: Daten werden in die Zieldatenbank geladen. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 46. Informationsintegration und Web-Portale Wintersemester 2014/2015 46 1) Extract Mögliche Auslöser - zeitgesteuert: Anbieter schickt immer zu festen Zeiten eine Aktualisierung, z.B. u Beginn einer Woche. Auslöser: Task Scheduler, z.b. Cron Job unter Linux - eventgesteuert: Anbieter schickt zu beliebigen Zeiten eine Aktualisierung. Auslöser: z.B. Eingehende Email, Neue Datei in SCP Ergebnis des Extract – Vorgangs sind Daten in strukturierter Form. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 AnbieterA-Articles.txt 01.11.2012;Gartenhütte; 123;599;4 01.11.2012;Bohrmaschi ne;443;88;59 ETL Extract Id Price Stock 123 599 4 443 88 59
  • 47. Informationsintegration und Web-Portale Wintersemester 2014/2015 47 2) Transform (1) Die Hauptaspekte der Transformation sind • Schematransformation • Die aus Extract Schritt geladenen strukturierten Daten werden in das Zielschema transformiert Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Id Price Stock 123 599 4 443 88 59 ArtikelId Preis Bestand 123 599 4 443 88 59
  • 48. Informationsintegration und Web-Portale Wintersemester 2014/2015 48 2) Transform (2) • Syntaktische Transformation: z.B. Datumsformate • Semantische Transformation: • z.B. Preise, hier: CHF -> Euro -> Durchführung von Berechnungen • z.B. Verfügbarkeit: „Available: yes“ => Verfübar: ja, „Status: ausverkauft“ => Verfügbar: no“ -> Answendung von Transformationsregeln Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Anbieter 1: OBI Waren- verwaltung Anbieter 2: Hornbach Waren- verwaltung ID: 1 Price: 40 CHF Category: Holzhütte Available: yes ArtikelID: 1 Preise: 29 Euro Kategorie: Hütte aus Holz Status: ausverkauft ETL Transform
  • 49. Informationsintegration und Web-Portale Wintersemester 2014/2015 49 2) Transform (3) Duplikateleminierung: Zieldatenbank in Portal soll einen Artikel nur einmal aufführen. Falls mehrere Anbieter gleichen Artikel anbieten, soll eine Liste von Anbietern und deren Preise gezeigt werden. Duplikate bei gleichem Anbieter: falls Artikel bereits früher gesendet, muss dieser überschrieben werden. Duplikate bei mehreren Anbietern: Regeln: Falls anbieterA.artikelID == anbieterB.artikelID => zusammenführen Machine Learning: z.B. Natural Language Processing. „Hütte aus Holz“ == „Holzhütte“ => zusammenführen. Manuell unterstützt: Portalbetreiber erstellt eigenen Artikelbaum. Artikel-Ids aus Anbietersysteme werden auf eigenen Artikelbaum abgebildet. Z.B. Artikelbaum: Gartenhütte. ID: 5 - anbieterA.artikelID.123 == artikelbaum.id.5 - anbieterB.artikelID.89 == artikelbaum.id.5 Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 50. Informationsintegration und Web-Portale Wintersemester 2014/2015 50 3) Load Daten werden in das Zielsystem nach erfolgter Transformation geladen. Ladestrategie ist abhängig von der Strategie der gesendeten Daten • Vollständige Aktualisierung: Anbieter übersendet immer den kompletten Datenbestand. Load Strategie: z.B. bestehende Daten von Anbieter löschen -> neue Daten einspielen • Inkrementelle Aktualisierung: Anbieter übersendet nur Änderungen innerhalb eines bestimmten Zeitraums, z.b. der letzten Woche, Load Strategie: z.B. • ermittle geänderte Daten, aktualisiere diese • Ermittle neue Daten, füge diese hinzu (lösche Daten entsprechend). Gefahr: ein Update wird verpasst => Daten nicht mehr synchron. Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 51. Informationsintegration und Web-Portale Wintersemester 2014/2015 51 ETL Lösungen Vielzahl von kommerziellen Lösungen verfügbar, u.a. Microsoft, SAP, Oracle, IBM, Interessante open source Lösung: Pentaho Kettle Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 52. Informationsintegration und Web-Portale Wintersemester 2014/2015 52 Zusammenfassung (1) Fragestellung war: wie werden Daten im Portal verwaltet / integriert Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014 Anbieter 1: OBI Waren- verwaltung Bestell- system Anbieter 2: Hornbach Waren- verwaltung Bestell- system Anbieter 3: Praktiker Waren- verwaltung Bestell- system Anbieter 3: Hagebau Waren- verwaltung Bestell- system DoYouGoogle+ FacebookTwitter VISAPaypal MasterCardMaestro Klick-und- bau.com Waren- verwaltung Bestell- system Kunden- verwaltung Bezahl- system Such- maschine Content- Management Webseiten- verwaltung IntegrationvonDaten VerwaltungvonDaten
  • 53. Informationsintegration und Web-Portale Wintersemester 2014/2015 53 Zusammenfassung (2) Verwaltung von Daten Speicherung der Daten : Interaktion mit Datenbank(en) Datenbankzugriff: Abstraktion von Datenbanksystemen durch Apis, Tools Leichtgewichtige ORM Verfahren: Laden von Daten direkt aus Datenbank Integration der Daten in die Anwendung : Daten -> JavaObjekte Schwergewichtige ORM Verfahren: Verwaltung der Persiszenzobjekte, z.b. Mittels Hibernate Integration von Daten Erhalt der Daten: Pull vs. Push Pull: ebenfalls mittels ORM, ideal: Verfügbarkeit von Web Services Push: Daten werden in verschiedensten Formaten übermittelt. Formate der Daten Erkennung von Duplikaten etc. Einsatz von ETL Verfahren Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014
  • 54. Informationsintegration und Web-Portale Wintersemester 2014/2015 54 Literatur Datenverwaltung • Apache Commons DBCP: Datenbankabstraktion http://commons.apache.org/dbcp/ • Spring 3: u.a. Leichtgewichtiges ORM. Get started with Spring: http://www.springsource.org/get-started • Hibernate: ORM basierend auf JPA Spezifikation http://www.hibernate.org/ Integration von Daten Pentaho Kettle Solutions: Building Open Source ETL Solutions with Pentaho Data Integration, Matt Casters, Wiley Verlag, 2011 Dr. Andreas Walter - Datenintegration & Verwaltung10.11.2014