REST. Sonderdruck. Plus CD! der Firma codecentric. OSGi. Java Magazin. Java Architekturen SOA Agile. CD-Inhalt

Größe: px
Ab Seite anzeigen:

Download "REST. Sonderdruck. Plus CD! der Firma codecentric. OSGi. Java Magazin. Java Architekturen SOA Agile. CD-Inhalt"

Transkript

1 1.09 Plus CD! Exklusiv für Abonnenten: Die Java Magazin Jahres-CD 2008! Sonderdruck Java Magazin Java Architekturen SOA Agile Exklusiv für Abonnenten CD-Inhalt JAX TV: Angelika Langer: Java-Programmierung im Multicore-Zeitalter (W-JAX 2008) X Rendering Extension JXRender Java-Frameworks JBoss Seam Closures Grails Hibernate REST OSGi POSTER Web-Tools DWR Ext JS Enterprise-Clustering JBoss Cache OSGi Runtimes Apache Felix Eclipse Equinox Bnd Tool Das bessere Modell für Web Services? 74 JAX-RS: Ein REST-orientiertes API 82 Alle CD-Infos 3 SOA Center SOA-Bausteine Jetzt wird s konkret 88 Java Core Java-Memory-Modell Eine Roadmap zum Einsatz von volatile 21 Web JBoss Seam Klebstoff für Java EE 40 Best Practices DSLs mit Groovy Heiliger Gral für schnellere Software? 36 Sonderdruck der Firma codecentric Web 56 DWR Ajax-Anwendungen leichter implementieren Die Tage des klassischen Webs sind gezählt. Web 2.0 und Ajax haben dynamische Inhalte und hohe Interaktivität zur Selbstverständlichkeit werden lassen, bedeuten aber harte Programmierarbeit. Dank Direct Web Remoting lassen sich bestehende Webanwendungen jedoch mit erstaunlich geringem Aufwand ajaxifizieren. Stellenmarkt 50 Weihnachts-Special 10

2 Flush und Clear: O/R Mapping Anti-Patterns Für Java-Anwendungen, die Daten in einer relationalen Datenbank speichern, bieten O/R-Mapper eine einfache Möglichkeit, den Status von Objekten auf Tabellen in der Datenbank abzubilden. Der gesamte JDBC-Datenbankzugriff ist innerhalb des Frameworks gekapselt und der Code beinhaltet fast ausschließlich fachliche Logik. Diese Kapselung führt aber auch zu Missverständnissen und fehlerhaftem Einsatz der Frameworks. von Mirko Novakovic und Alois Reitbauer m ersten Teil dieser Serie wurden allgemeine Anti-Patterns im Bezug auf Datenbankzugriffe aus Java heraus vorgestellt. Diese Fortsetzung spezialisiert die beschriebenen Anti-Patterns auf Basis von Hibernate und JPA, um so alltägliche Probleme beim Einsatz von O/R- Mappern zu beleuchten und Tipps und Tricks zu zeigen, wie man sie vermeidet. O/R-Mapper gehören spätestens seit der Standardisierung durch das Java Persistence API (JPA) zum festen Bestandteil der Java-Plattform und erfreuen sich großer Beliebtheit. Hibernate [1] ist das wahrscheinlich am weitesten verbreitete O/R-Mapping Framework, das auch Basis für die JPA-Implementierung des JBoss Application Servers ist. Die einfache Programmierschnittstelle und der schnelle Einsatz des Frameworks haben sicherlich zum großen Erfolg von Hibernate beigetragen. Auch das Spring- Framework bietet eine umfangreiche Unterstützung für Hibernate und JPA und erleichtert die Nutzung durch viele sinnvolle Hilfsfunktionen und Templates. Diese Einfachheit beim Einstieg in die O/R-Mapping-Welt täuscht aber über die eigentliche Komplexität dieser Frameworks hinweg. Bei komplexen Anwendungen merkt man sehr schnell, dass man Details der Framework-Implementierung kennen sollte, um sie ideal zu nutzen. Dieser Artikel beschreibt einige in der Praxis häufig auftretende Anti-Patterns, die sich schnell in Performanceproblemen manifestieren können. Anti-Pattern: Ineffiziente Fetching-Strategien Eine elementare Funktion von Hibernate/JPA ist die Definition von Assoziationen zwischen Objekten, beispielsweise die Beziehung Person hat Adressen. Wird eine Person geladen, legt die so genannte Fetching-Strategie fest, ob die Adressen der Person sofort eager loading oder erst zu einem späteren Zeitpunkt lazy loading geladen werden. Wird keine Fetching-Strategie spezifiziert, werden die Assoziationen lazy geladen das bedeutet, dass diese erst dann aus der Datenbank (oder dem Cache) gelesen werden, wenn darauf zugegriffen wird. Ist aber schon vor dem Laden eines Objekts bekannt, dass auf die Adressen der Person zugegriffen wird, wäre es besser, die Person inklusive der Adressen mit einem SQL Statement zu laden. Werden die Adressen mit der Fetching-Strategie eager geladen, erzeugt Hibernate eine Outer-join Query, um die Anzahl der Statements zu reduzieren. In der Praxis ist es häufig nicht leicht festzulegen, welche Objekte lazy und welche eager geladen werden sollen, da die Objekte in unterschiedlichen Kontexten verwendet werden, man aber nur eine bestimmte Fetching-Strategie konfigurieren kann. Gerade bei mehrstufigen Beziehungen werden die kon- 2 javamagazin

3 figurierten Fetching-Strategien schnell unübersichtlich und die Anzahl der Statements schwer vorherzusagen, die beim Zugriff auf ein Objekt und seine Daten ausgeführt werden. Der Einsatz von Annotationen macht es zwar einfacher, den Überblick zu behalten, löst aber das Problem der unterschiedlichen Anwendungsfälle nicht. In den meisten Fällen ist es ratsam, erst einmal alle Assoziationen lazy zu definieren und dann mit einem Tool wie dynatrace Diagnostics zu analysieren, wie viele Statements tatsächlich bei bestimmten Anwendungsfällen ausgeführt werden. Auf Basis dieser Informationen können die Fetching-Strategien angepasst werden. Alternativ können zur Optimierung der Performance für bestimmte Aktionen find-methoden in den DAOs definiert werden, die die Objektbäume mit einer optimierten HQL/EJB-QL Abfrage laden. Bewährt hat sich dabei auch der Einsatz des Generic DAO Patterns [2], das den zu programmierenden Code eines DAOs stark minimiert. Anti-Pattern: Flush und Clear Hibernate verwaltet die persistenten Objekte innerhalb einer Transaktion in der so genannten Session. Bei JPA übernimmt der EntityManager diese Aufgabe, und im Folgenden wird der Begriff EntityManager auch als Synonym für die Hibernate Session verwendet, da beide auch von der Schnittstelle ähnlich sind. Solange ein Objekt an einen EntityManager gebunden ist (attached), werden alle Änderungen des Objekts automatisch mit der Datenbank synchronisiert. Man spricht hier vom Flushen der Objekte. Der Zeitpunkt der Objektsynchronisation mit der Datenbank ist nicht garantiert je später ein Flush ausgeführt wird, desto mehr Optimierungspotenzial hat der EntityManager, weil z.b. Updates auf ein Objekt gebündelt werden können, um SQL Statements zu vermeiden. Ein Aufruf von clear führt dazu, dass alle aktuell verwalteten Objekte des EntityManagers detached werden und der Status nicht mit der Datenbank synchronisiert ist. Solange die Objekte nicht explizit wieder attached werden, sind es ganz normale Java-Objekte, deren Veränderung keine Auswirkung auf die Datenbank mehr haben. Bei vielen Anwendungen, die Hibernate oder JPA einsetzen, werden flush() und clear() sehr häufig explizit aufgerufen, oft mit fatalen Auswirkungen auf Performance und Wartbarkeit der Anwendung. Der manuelle Aufruf von flush() sollte durch ein sauberes Design der Anwendung immer vermieden werden können und ist ähnlich zu bewerten wie ein manueller Aufruf von System. gc(), der eine manuelle Garbage Collection anfordert. In beiden Fällen verhindert man ein normales, optimiertes Arbeiten der Technologien. Bei Hibernate und JPA bedeutet das, dass in der Regel mehr Updates ausgeführt werden als notwendig wären, wenn der EntityManager selbst über den Zeitpunkt entschieden hätte. Der Aufruf von clear(), dem in vielen Fällen ein manueller flush() vorangegangen ist, führt dazu, dass alle Objekte vom EntityManager entkoppelt werden. Deshalb sollten klare Architektur- und Designrichtlinien festlegen, wo ein clear() aufgerufen werden darf. Ein typischer Anwendungsfall für das Verwenden von clear() ist im Batch Processing. Hier soll vermieden werden, dass mit unnötig großen Sessions gearbeitet wird. Zudem sollte im Javadoc der Methode immer explizit darauf hingewiesen werden, ansonsten kommt es zu unvorhersehbarem Verhalten der Anwendung, wenn ein Aufruf einer Methode dazu führen kann, dass der gesamte EntityManager- Kontext gelöscht wird. Speziell heißt das, dass die Objekte über merge() wieder in den Kontext des EntityManagers eingefügt werden müssen, und dafür in der Regel der Status der Objekte aus der Datenbank neu eingelesen werden muss. Je nach Fetching-Strategien muss sogar der Status eines Objekts manuell nachgelesen werden, um alle Assoziationen wieder attached zu haben. Im schlechtesten Fall werden sogar veränderte Objektdaten nicht persistiert. Anti-Pattern: Unzureichendes Caching Bei Datenbanken gilt auf allen Ebenen: Die besten Datenbankzugriffe sind die, die gar nicht ausgeführt werden müs- Links & Literatur [1] Hibernate: [2] Generic DAO Pattern: www-128. ibm.com/developerworks/java/ library/j-genericdao.html [3] Ehcache: ehcache.sourceforge.net [4] JBoss Cache: products/jbosscache [5] Hibernate-Caching-Anleitung: /www/_resources/pdf/hibernate_ performance_tuning.pdf [6] Novakovic, Reitbauer: Performance Anti-Patterns, Teil 1, Java Magazin javamagazin

4 sen. Hierfür werden innerhalb der Datenbank und auch bei Hibernate und JPA Caches eingesetzt. Caching ist relativ komplex und eines der am meisten missverstandenen Konzepte von Hibernate. Es existieren drei unterschiedliche Caches: First Level Cache: ist immer aktiv und bezieht sich auf eine Unit of Work, d.h. meist auf einen Serviceaufruf, da er an die aktuelle Session gebunden ist. Second Level Cache: kann für bestimmte Entitäten konfiguriert werden. In diesem Fall werden die Objekte in einem transaktionsübergreifenden Cache abgelegt. Der Schlüssel für die Ablage im Cache ist der Primary Key der Entität. Der Cache kann clusterweit oder innerhalb einer JVM konfiguriert werden. Query Cache: speichert das Ergebnis von einer HQL/EJB-QL-Abfrage in einem Cache. Dabei werden nur die Primary Keys der Ergebnisobjekte gespeichert, die dann über den Second Level Cache geladen werden. Der Query Cache funktioniert also nur zusammen mit dem Second Level Cache. Abb 1: Hibernate First und Second Level Cache Der effiziente Einsatz der Caches hängt von der Anwendungslogik und der richtigen Cache-Konfiguration ab. Hibernate erlaubt die Konfiguration von unterschiedlichen Cache Providern. Die bekanntesten Implementierungen sind Ehcache [3] und JBoss Cache [4]. Zunächst muss analysiert werden, ob auf eine Entität nur lesend zugegriffen oder diese häufig geändert wird. Bei lesenden Zugriffen (z.b. bei Schlüsselwerten wie Länderlisten) macht ein read-only Second Level Cache sehr viel Sinn, weil dann die Entitäten alle im Speicher liegen und so Datenbankzugriffe fast vollständig vermieden werden können. Die richtige Größeneinstellung des Caches ist aber wichtig. Gibt es zu viele Instanzen von einem Objekt und können nicht alle in den Speicher geladen werden, sollte der Einsatz eines Caches genau geprüft werden er kann dann Sinn machen, wenn nicht alle Daten gleich häufig verwendet werden. Werden die Entitäten im Cache auch verändert, muss man entscheiden, wie wichtig die Konsistenz der Daten im Cache mit der Datenbank ist. Hibernate unterstützt transaktionale Caches, bei denen jedes Update auf dem Cache direkt in der Datenbank persistiert wird, aber auch weniger restriktive Algorithmen, die beispielsweise die Gültigkeit von Daten auf Basis von Zeitstempeln regeln. Je nach Änderungshäufigkeit und Anforderungen an die Datenkonsistenz ist der Performancegewinn des Second Level Caches unterschiedlich zu bewerten. Eine genaue Analyse des Zugriffsverhaltens mithilfe eines Profileroder Monitoring-Tools ist deshalb sehr hilfreich bei der richtigen Konfiguration des Second Level Caches. Es sollten aber noch einige Dinge beachtet werden, wenn der Second Level Cache eingesetzt wird, weil es häufig zu Verwunderungen kommt, dass selbst mit eingeschaltetem Second Level Cache noch Queries abgesetzt werden. Die Entitäten im Second Level Cache werden über ihren Primary Key identifiziert das bedeutet im Umkehrschluss auch, dass nur die Queries aus dem Cache gelesen werden, die eine Entität über den Primary Key lesen. Hat man beispielsweise eine Klasse Person, die über eine eindeutige, laufende Nummer als Primary Key identifiziert werden kann, so können nur Abfragen durch den Second Level Cache optimiert werden, die eine Person über die laufende Nummer lesen. Werden beispielsweise Personen über Name und Vorname gesucht, würden diese Abfragen am Second Level Cache vorbei direkt auf die Datenbank gehen und man hätte keine Performance Ersparnisse, obwohl ein Second Level Cache für Personen existiert. Um auch bei der Suche nach Vor- und Nachnamen einen Cache nutzen zu können, muss für die Query der Query Cache aktiviert werden. In diesem Fall werden alle Primary Keys der Personen aus der Ergebnissemenge im Cache abgelegt. Erfolgt eine erneute Suche über den gleichen Namen, werden die Primary Keys aus dem Query Cache gelesen und mit ihnen eine Anfrage an den Second Level Cache ausgeführt, der dann die Personen aus dem Cache zurückliefern kann. Nur so können die Datenbank-Queries vermieden werden. Ein weiterer Pitfall ist, dass die Daten im Second Level Cache nicht als Objekte, sondern in einer so genannten dehydrierten Form abgelegt sind. Die dehydrierte Form ist eine Art Serialisierung der Entitäten. Wird eine Entität aus dem Second Level Cache gelesen, muss Sie dehydriert bzw. deserialisiert werden. Werden große Ergebnismengen auf eine Query zurückgegeben, die alle im Second Level Cache liegen, kann auch das zu Performanceproblemen führen. Jedes der Objekte muss aus dem Cache gelesen und deserialisiert werden. Vorteil ist, dass jede Transaktion eine eigene Objektinstanz vom Cache zurückgeliefert bekommt und so Concurrency-Probleme vermieden werden können der Second Level Cache ist also Threadsafe. Gerade bei Schlüsselwerten, auf die nur lesend zugegriffen wird, kann der Second Level Cache im Vergleich zu einem normalen Objektcache langsamer sein. Auch hier empfiehlt es sich, die Anwendung genau zu analysieren und gegebenenfalls die Schlüsselobjekte in einem Cache oberhalb der Datenbankzugriffsschicht zu cachen. Die Details der unterschiedlichen Cache-Konfigurationen können hier nur angerissen werden, aber der richtige Einsatz der unterschiedlichen Caches ist gerade bei stark frequentier- 4 javamagazin

5 ten Anwendungen unerlässlich, um eine gute Performance zu erreichen. Anti-Pattern: Schlüssel zum Erfolg Beim Einsatz der richtigen Primärschlüssel gibt es viele Diskussionen. Nutzt man so genannte Surrogate, bei denen der Primary Key ein vom System generierter Schlüssel ist (z.b. eine laufende Nummer vom Typ long), oder fachliche Schlüssel, bei denen sich die Schlüssel aus fachlichen Attributen der Entität zusammensetzen? Wichtig ist zu verstehen, welche Auswirkungen die Wahl des Schlüssels auf die Performance des Systems hat. Ein Surrogat hat den großen Vorteil, dass er relativ simpel ist und meistens aus nur einem numerischen Attribut besteht bei der Prüfung von Entitäten auf Gleichheit muss also nur eine numerische Vergleichsoperation ausgeführt werden. Gerade bei JPA und Hibernate werden Entitäten sehr häufig verglichen, wenn beispielsweise geprüft wird, ob sich eine Entität in einem der Caches befindet. Ein fachlicher Schlüssel kann aus einer großen Menge von Attributen (gerade wenn er über Tabellen hinweg vererbt wird) mit unterschiedlichen Datentypen bestehen. Der Vergleich zweier Entitäten ist damit um Einiges aufwändiger, weil die Entitäten dann gleich sind, wenn alle Attribute identisch sind. Bei fachlichen Schlüsseln sollte also besonders viel Wert auf die equals()- und hashcode()-methoden der Primary-Keys gelegt werden hier kann unter Umständen ein Performanceengpass vermieden werden. Abb. 2: Prepared Statement einer HQL-Abfrage ohne Parameter Anti-Pattern: Explizite Queries Die einfachste Möglichkeit in Hibernate Daten abzufragen, ist das Verwenden der query()-methode, um die Abfrage als String zu übergeben. Hibernate, oder JPA, bietet hier die Möglichkeit, Parameter zu verwenden und diese dann explizit an Werte zu binden. Dieser Ansatz macht auf der Ebene von Hibernate für Abfragen Sinn, die mehrmals wiederholt werden. Für eine einzelne Abfrage scheint sich hier kein Mehrwert zu ergeben. Sieht man sich den Ausführpfad einer Hibernate-Abfrage an, stellt man fest, dass Hibernate für jede Abfrage ein PreparedStatement verwendet. Dieses verwendet die HQL-Abfrage als Basis, um daraus die SQL-Abfrage zu generieren. Werden keine Parameter verwendet, wird wie im folgenden Beispiel ein PreparedStatement mit der expliziten Abfrage generiert. Dieses Prepared- Statement kann natürlich nicht wiederverwendet werden außer es wird der exakt gleiche Datensatz geladen. Dadurch werden hier unnötige Ressourcen, meistens Cursor, auf der Datenbank verbraucht. Zusätzlich kann das Statement auch von anderen Transaktionen nicht wiederverwendet werden. Es empfiehlt sich also, immer parameterbasierte Abfragen zu verwenden, um den Vorteil von Prepared Statements auf der darunterliegenden Schicht optimal nutzen zu können. Weitere Infor- mationen zu Prepared Statements folgen im nächsten Artikel. Fazit In diesem Artikel können die möglichen Fallstricke und Anti-Patterns beim Einsatz von Hibernate und JPA nur angerissen werden. Die Beispiele zeigen aber, dass der Einsatz von Hibernate und JPA nicht so einfach ist, wie das API es vermuten lassen würde. Für eine gute Performance müssen die Frameworks richtig konfiguriert und eingesetzt werden. Der Einsatz von Profilern und Monitoring-Tools während der Entwicklung ist deshalb besonders wichtig, weil so mögliche Engpässe frühzeitig identifiziert werden können so kann man aus der Blackbox O/R Mapper eine Whitebox machen. Alois Reitbauer ist Sr. Performance Architect bei dynatrace Software. In seiner Rolle beeinflusst er aktiv die dynatrace-produktstrategie und unterstützt Topunternehmen bei der Einführung von Performance-Management- Lösungen. Mirko Novakovic ist Mitgründer der codecentric GmbH. Neben der Geschäftsleitung liegen seine Schwerpunkte im Bereich Performancetuning, Java-EE-Architekturen und Open Source Frameworks. codecentric GmbH Grünewalder Str Solingen Ansprechpartner: Tim van Baars +49 (0) javamagazin

JavaFX. Sonderdruck. Plus CD! der Firma codecentric. Java Magazin. Java Architekturen SOA Agile. Stellenmarkt 49 Spring Security mit EJB 2x 58

JavaFX. Sonderdruck. Plus CD! der Firma codecentric. Java Magazin. Java Architekturen SOA Agile. Stellenmarkt 49 Spring Security mit EJB 2x 58 12.08 Plus CD! Stellenmarkt 49 Spring Security mit EJB 2x 58 Java Magazin Java Architekturen SOA Agile www.javamagazin.de CD-Inhalt Jax TV: Session der JAX 2008: Ted Neward: Why the Next Five Years Will

Mehr

Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Version: 2014 Orientation 1.0 in Objects GmbH Der Sprecher Erik Bamberg (OIO) 2 1 s Aufgaben des Cachings Datenbank

Mehr

DATENBANK-PERFORMANCE:

DATENBANK-PERFORMANCE: 2.09 Plus CD! Stellenmarkt 64 JavaFX 1.0: Die Finalversion ist da! 12 Java Magazin Java Architekturen SOA Agile www.javamagazin.de CD-Inhalt Java-Frameworks Google Guice 1.0 Swordfish Spring Framework

Mehr

Hibernate Das Praxisbuch für Entwickler

Hibernate Das Praxisbuch für Entwickler Sebastian Hennebrüder 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Hibernate Das Praxisbuch für Entwickler Galileo

Mehr

Pitfalls. Flush and Clear: O/R Mapping Pitfalls. Mirko Novakovic, codecentric GmbH

Pitfalls. Flush and Clear: O/R Mapping Pitfalls. Mirko Novakovic, codecentric GmbH Flush and Clear: O/R Mapping Pitfalls Flush and Clear: O/R Mapping Pitfalls Mirko Novakovic, codecentric GmbH Agenda Einleitung Pitfalls Faul oder Eifrig Daten verstecken Spülen und Reinigen Fragen? Performance

Mehr

Referent: Marko Modsching. Vortrag: JPA mit Hibernate. Datum: 04.01.2011. Deutsche Software Engineering & Research GmbH

Referent: Marko Modsching. Vortrag: JPA mit Hibernate. Datum: 04.01.2011. Deutsche Software Engineering & Research GmbH Referent: Marko Modsching Vortrag: JPA mit Hibernate Datum: 04.01.2011 Deutsche Software Engineering & Research GmbH Steinstraße 11 02826 Görlitz Germany Telefon: +49 35 81 / 374 99 0 Telefax: +49 35 81

Mehr

Java Persistence API 2.x. crud + relationships + jp-ql

Java Persistence API 2.x. crud + relationships + jp-ql Java Persistence API 2.x crud + relationships + jp-ql Grundprinzip 10.02.10 2 Problematik Man muss bei der Persistierung immer das Klassenmodell und dessen Umsetzung im Datenmodell (in der DB) berücksichtigen.

Mehr

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate

Hibernate. Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen. Nabil janah 1 Hibernate Hibernate Vortragender : Nabil Janah Kursleiter : Prof. Dr. Björn Dreher Lehrveranstaltung : Komponenten-Architekturen Nabil janah 1 Hibernate Inhalt Hibernate allgemeines Vorteile von Hibernate Hibernate-Architektur

Mehr

Übungsaufgabe Transaktion als Middleware

Übungsaufgabe Transaktion als Middleware Übungsaufgabe Transaktion als Middleware und Java Persistence API Client/Server Abstraktes Komponentenmodell Entscheidende Punkte Erweiterung der Invoke-Methode Context-Verwaltung Transaktionsbehandlung

Mehr

Caching. Hintergründe, Patterns &" Best Practices" für Business Anwendungen

Caching. Hintergründe, Patterns & Best Practices für Business Anwendungen Caching Hintergründe, Patterns &" Best Practices" für Business Anwendungen Michael Plöd" Senacor Technologies AG @bitboss Business-Anwendung!= Twitter / Facebook & co. " / kæʃ /" bezeichnet in der EDV

Mehr

Objekt-relationales Mapping und Performance-Tuning

Objekt-relationales Mapping und Performance-Tuning Objekt-relationales Mapping und Performance-Tuning Thomas Krüger tkrueger@vanatec.com Agenda Wege um Daten zu lesen Wege um Daten zu modellieren Wege um Datenbanken effizient zu nutzen 2 2 Wege, Daten

Mehr

Eclipse und EclipseLink

Eclipse und EclipseLink Eclipse und EclipseLink Johannes Michler Johannes.Michler@promatis.de PROMATIS, Ettlingen Zugriff auf Oracle Datenbanken aus Eclipse RCP Anwendungen via EclipseLink 18.09.2009 1 Gliederung Eclipse als

Mehr

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher 729631 745097 736477 745011 741297 Inhalt Schlussbewertung... 3 Bewertung

Mehr

RESTful Web. Representational State Transfer

RESTful Web. Representational State Transfer RESTful Web Representational State Transfer 1 Warum REST? REST ist die Lingua Franca des Webs Heterogene (verschiedenartige) Systeme können mit REST kommunizieren, unabhängig von Technologie der beteiligten

Mehr

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010

O/R Mapper. O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 O/R Mapper O/R Mapper anhand von NHibernate & Entity Framework Thomas Mentzel März 2010 Agenda Object-relational impedance mismatch Mapping Session Abfragen No. 2 Object-relational impedance mismatch Object-relational

Mehr

Java EE Projektseminar

Java EE Projektseminar Java EE Projektseminar Daniel Alberts & Sonja Subicin Sprachliche Informationsverarbeitung Universität zu Köln Sommersemester 2010 Sitzung Organisatorisches zum Seminar Java EE Projektplanung Defi nition

Mehr

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java)

4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) 4. Objektrelationales Mapping Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Gregor Raschke 2008 HIBERNATE. Eine Einführung

Gregor Raschke 2008 HIBERNATE. Eine Einführung 1 HIBERNATE Eine Einführung Inhalt 2 Einleitung Beispielkonfiguration Die hibernate.cfg.xml Eine Beispieltransaktion Abfragemöglichkeiten JPA und Hibernate Ressourcen und Quellen Einleitung (1) - Geschichtliches

Mehr

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle OO Programmiersprache vs relationales Model Vorgehen bisher Erstellen eines ER-Diagramms Übersetzen in das relationale Datenmodell Zugriff auf das relationale Datenmodell aus z.b. Java ER rel. Modell OO

Mehr

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs

WHERE Klausel Generierung mit.net und Oracle. Aus unserer Projekterfahrung und Architektur-Kurs Betrifft Art der Info Quelle WHERE Klausel Generierung mit.net und Oracle Technical Info Aus unserer Projekterfahrung und Architektur-Kurs Where ist the WHERE? Der Artikel untersucht die Möglichkeiten,

Mehr

JDO Java Data Objects

JDO Java Data Objects JDO Java Data Objects Ralf Degner, Chief Consultant Ralf.Degner@poet.de Agenda POET Motivation Geschichte Einführung Architekturen FastObjects POET Gegründet 1993 Zwei Produktlinien esupplier Solutions:

Mehr

Java Persistence mit Hibernate

Java Persistence mit Hibernate Christian Bauer, Gavin King Java Persistence mit Hibernate ISBN-10: 3-446-40941-6 ISBN-13: 978-3-446-40941-5 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40941-5

Mehr

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk

Workshop Java Webentwicklung Einführung in Hibernate. Ulrich Stärk Workshop Java Webentwicklung Einführung in Hibernate Ulrich Stärk Ablauf Montag bis Donnerstag 09:00 Uhr s.t. Beginn, bis ca. 17:00 Uhr 1 Stunde Mittagspause Donnerstag Experiment Aufzeichnung der Programmiertätigkeit

Mehr

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java Oliver Kalz Agenda Grundlagen Objektpersistenz Objektrelationales Mapping Performance Fazit

Mehr

Oracle Warehouse Builder 3i

Oracle Warehouse Builder 3i Betrifft Autoren Art der Info Oracle Warehouse Builder 3i Dani Schnider (daniel.schnider@trivadis.com) Thomas Kriemler (thomas.kriemler@trivadis.com) Technische Info Quelle Aus dem Trivadis Technologie

Mehr

UI-Architekturen mit JSF

UI-Architekturen mit JSF www.jsf-academy.com UI-Architekturen mit JSF - JSF ist mehr als nur Syntax - Copyright 2011, Andy Bosch, www.jsf-academy.com Slide 1 Agenda Warum reden wir überhaupt über UI-Architektur? Technologien und

Mehr

Datenbankzugriff aus Eclipse Rich-Client- Anwendungen über das Internet

Datenbankzugriff aus Eclipse Rich-Client- Anwendungen über das Internet Datenbankzugriff aus Eclipse Rich-Client- Anwendungen über das Internet Johannes Michler, PROMATIS software GmbH DOAG 2010, Nürnberg, 16. November 2010 1 Gliederung Eclipse und Eclipse RCP Komponentenframework

Mehr

Open Source Frameworks

Open Source Frameworks Open Source Frameworks codecentric GmbH Mirko Novakovic Agenda 1. Vorteile von Open Source 2. Framework-Kategorien 3. Open Source Frameworks 4. Empfehlungen 1 1. Vorteile von Open Source 1.1 Offenheit

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

Spring Dynamic Modules for OSGi Service Platforms

Spring Dynamic Modules for OSGi Service Platforms Gerd Wütherich freiberuflicher Softwarearchitekt Spring Dynamic Modules for OSGi Service Platforms Server Anwendungen mit Spring und Eclipse Equinox Agenda OSGi Technologie: OSGi Technologie im Überblick

Mehr

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe, 13.12.2013

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe, 13.12.2013 JBoss AS 7 Installation, Konfiguration und Betrieb Alexander Pacnik Karlsruhe, 13.12.2013 Jboss 7 AS... worum es in diesem Vortrag geht. Einführung Installation Konfiguration Management Deployment Betrieb

Mehr

Performance Analyses with inspectit

Performance Analyses with inspectit Performance Analyses with inspectit 23.03.2012 Über uns Beratungsschwerpunkte Performanceanalyse und -optimierung, Application Monitoring, Lastund Performancetests Architekturberatung Java-basierte Anwendungsentwicklung

Mehr

Skalierbare Webanwendungen mit Python und Google App Engine

Skalierbare Webanwendungen mit Python und Google App Engine Skalierbare Webanwendungen mit Python und Google App Engine Oliver Albers 03. Juli 2008 1/32 Einführung Worum geht es? Pro und Contra Technik Genereller Aufbau Anwendungskonfiguration Verarbeitung von

Mehr

Java Frameworks im Vergleich - ADF vs. Grails vs. Spring

Java Frameworks im Vergleich - ADF vs. Grails vs. Spring Java Frameworks im Vergleich - ADF vs. Grails vs. Spring Frank Szilinski esentri software GmbH Karlsruhe Schlüsselworte: ADF, Java, JEE, JSF, Grails, Spring, Open Source, Rapid Application Development

Mehr

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten)

Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) Persistenz von Objekten relationale Datenbank Eigene Datenstruktur XML (JAXB) Proprietäre Dateiformate (Lochkarten) O/R Mapping - Objekte (Attribute) - 1:1, 1:n, n:m Beziehungen - Vererbungen (- Interfaces)

Mehr

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. 1 In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen. Zunächst stellt sich die Frage: Warum soll ich mich mit der Architektur eines DBMS beschäftigen?

Mehr

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger Grundlegendes Oracle9i PostgreSQL Prevayler Memory mywms bietet umfangreiche Konfigurationsmöglichkeiten um die Daten dauerhaft zu speichern.

Mehr

Inheritance Strategien mit dem Entity Framework

Inheritance Strategien mit dem Entity Framework Building & Connecting Know-how 16.-17. Februar 2011, München Inheritance Strategien mit dem Entity Framework TPT, TPC, TPH mit DB First, Model First und Code First 1.0 Partner: Veranstalter: Über René

Mehr

Java EE 5 Performance

Java EE 5 Performance Java EE 5 Performance DRV Jahrestagung Java Würzburg 25.2.2008 Mirko Novakovic, codecentric GmbH Agenda 1. Java EE 5 Überblick 2. Performance und Java EE EJB und Persistence Web Services und Remoting Web

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für für Medientechnologen Dr. E. Schön Wintersemester 2015/16 Seite 146 Notwendigkeit: Programmierschnittstelle Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Rechnernetze Projekt SS 2015

Rechnernetze Projekt SS 2015 30/03/15 Seite 1 Aspektorientierte Programmierung logische Aspekte (Concerns) im Programm separieren Crosscutting Concerns (Ziel: generische Funktionalitäten über mehrere Klassen hinweg zu verwenden -

Mehr

Sonderdruck. Plus CD! Stellenmarkt 50 Tool-Radar: JavaRebel 13. Vorhang auf: Scala verändert die Java-Welt 100. der Firma codecentric

Sonderdruck. Plus CD! Stellenmarkt 50 Tool-Radar: JavaRebel 13. Vorhang auf: Scala verändert die Java-Welt 100. der Firma codecentric 4.09 Plus CD! Stellenmarkt 50 Tool-Radar: JavaRebel 13 Java Magazin Java Architekturen SOA Agile www.javamagazin.de Alle Infos zur CD-Inhalt Web Canoo WebTest 2.6 JBoss Portal 2.7.1 Resin 3.2.1 Apache

Mehr

5. Programmierschnittstellen für XML

5. Programmierschnittstellen für XML 5. Programmierschnittstellen für Grundlagen Dr. E. Schön FH Erfurt Sommersemester 2015 Seite 135 Programmierschnittstelle Notwendigkeit: Zugriff auf -Daten durch Applikationen wiederverwendbare Schnittstellen

Mehr

Inhalt. TEIL I Grundlagen. 1 SAP HANA im Überblick... 31. 2 Einführung in die Entwicklungsumgebung... 75

Inhalt. TEIL I Grundlagen. 1 SAP HANA im Überblick... 31. 2 Einführung in die Entwicklungsumgebung... 75 Geleitwort... 15 Vorwort... 17 Einleitung... 19 TEIL I Grundlagen 1 SAP HANA im Überblick... 31 1.1 Softwarekomponenten von SAP HANA... 32 1.1.1 SAP HANA Database... 32 1.1.2 SAP HANA Studio... 34 1.1.3

Mehr

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Peter Roßbach (Systemarchitekt) Gerd Wütherich (Freier Softwarearchitekt) Martin Lippert (akquinet it-agile GmbH) 2009 by P. Roßbach, G. Wütherich,

Mehr

Mit OSGi Webanwendungen entwickeln Was geht, was nicht?

Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Mit OSGi Webanwendungen entwickeln Was geht, was nicht? Peter Roßbach (Systemarchitekt) Gerd Wütherich (Freier Softwarearchitekt) Martin Lippert (akquinet it-agile GmbH) 2009 by P. Roßbach, G. Wütherich,

Mehr

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java

Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Erstellung eines Frameworks für Shop Systeme im Internet auf Basis von Java Präsentation zur Diplomarbeit von Übersicht Java 2 Enterprise Edition Java Servlets JavaServer Pages Enterprise JavaBeans Framework

Mehr

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder

OSGi. The Next Generation Java Service Platform. SOA - The Java Way or My classpath is killing me. Michael Greifeneder Michael Greifeneder OSGi The Next Generation Java Service Platform SOA - The Java Way or My classpath is killing me Bilder von Peter Kriens W-JAX Keynote 2007 und Neil Bartletts Getting Started with OSGi

Mehr

Softwareentwicklung mit Enterprise JAVA Beans

Softwareentwicklung mit Enterprise JAVA Beans Softwareentwicklung mit Enterprise JAVA Beans JPA - JAVA Persistence API Problem In JAVA-programmen arbeitet man mit Hauptspeicherobjekten. Nach Beendigung des Programmes sind diese nicht mehr vorhanden.

Mehr

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014

Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014 Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?

Mehr

Integration Services - Dienstarchitektur

Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Integration Services - Dienstarchitektur Dieser Artikel solle dabei unterstützen, Integration Services in Microsoft SQL Server be sser zu verstehen und damit die

Mehr

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee 2 10245 Berlin Tel.:+49(0) 30 2900 8639 Fax.:+49(0) 30 2900 8695 Database Exchange Manager Replication Service- schematische Darstellung Replication Service- allgemeines Replikation von Daten von bzw. in ein SAP-System und einer relationalen DMS-Datenbank Kombination

Mehr

NHibernate vs. Entity Framework

NHibernate vs. Entity Framework Manfred Steyer CAMPUS 02 softwarearchitekt.at NHibernate vs. Entity Framework Ziele NHibernate und Entity Framework sowie deren Unterschiede kennen lernen 1 Agenda Kriterien Beispiel mit EF Beispiel mit

Mehr

Übungen zum Workshop Objektrelationales Mapping mit JPA 2.0

Übungen zum Workshop Objektrelationales Mapping mit JPA 2.0 Übungen zum Workshop Objektrelationales Mapping mit JPA 2.0 Alle Unterlagen und Übungen sind in folgenden Google Code Project abgelegt und frei zugänglich: https://code.google.com/p/jpaworkshop/ Aktualisierung

Mehr

JMangler. Frithjof Kurtz. Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1

JMangler. Frithjof Kurtz. Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1 JMangler Frithjof Kurtz Universität Bonn, Seminar Softw aretechnologie WS 03/04, Jmangler Frithjof Kurtz 1 JMangler Vortragsgliederung Motivation Java Grundlagen JMangler Grundlagen Transformationen Algorithmen

Mehr

Module für eine Java-Administrationsschulung

Module für eine Java-Administrationsschulung Module für eine Java-Administrationsschulung Schulungsmodule 1 Java Administration allgemein...2 1.1 Java und die Virtual Machine...2 1.2 Java EE Bestandteile...2 1.3 Java Management Extensions...2 1.4

Mehr

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH

Erfahrungen und Erkenntnisse. Klaus Richarz, HBT GmbH Erfahrungen und Erkenntnisse Klaus Richarz, HBT GmbH Java Enterprise Edition 5.0 JBoss Seam Konsequenzen für Realisierung Qualitätssicherung Build & Deployment Fazit & Empfehlungen JBoss Seam in Projekten,

Mehr

jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG

jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG jbpm5 in Java EE 6 Marek Iwaszkiewicz Pascal Schaerf akquinet AG Über uns Developer @ akquinet AG Marek Iwaszkiewicz marek.iwaszkiewicz@akquinet.de JBoss Compentence Center Pascal Schaerf pascal.schaerf@akquinet.de

Mehr

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

JBoss Seam. Ein JEE 5 Webframework. Jörg Wüthrich Infopoint, 4. Februar 2009

JBoss Seam. Ein JEE 5 Webframework. Jörg Wüthrich Infopoint, 4. Februar 2009 JBoss Seam Ein JEE 5 Webframework Jörg Wüthrich Infopoint, 4. Februar 2009 Inhalt Einführung Warum Seam? Zentrale Konzepte Demo Validierung Abschliessende Gedanken 04.02.2009 Infopoint - JBoss Seam - Jörg

Mehr

Java Pet Store vs..net Pet Shop. Seminar Software-Entwurf Jörg Eggermann

Java Pet Store vs..net Pet Shop. Seminar Software-Entwurf Jörg Eggermann <Eggermann@hosterme.de> Java Pet Store vs..net Pet Shop Seminar Software-Entwurf Jörg Eggermann Gliederung Motivation Einordnung Einschub - Enterprise Java Beans Anwendungen in der Übersicht Java Pet Store.NET

Mehr

Developer Week 2013 Offline (mobile) Webdevelopment

Developer Week 2013 Offline (mobile) Webdevelopment Developer Week 2013 Offline (mobile) Webdevelopment Kerstin Blumenstein Grischa Schmiedl Wer bin ich & Woher komm ich? Warum eigentlich? Problemstellung Nutzungssituationen Zu Hause, auf Arbeit Unterwegs

Mehr

Programmierung von Java- Webanwendungen. paluno

Programmierung von Java- Webanwendungen. paluno Programmierung von Java- Webanwendungen Gliederung 1 Vorstellung und Einführung 2 Basiswissen Web 3 XML und JSF- Einführung 4 JSF- Komponenten und RichFaces 5 Wiederholung der ersten Woche 6 JSF- Konzepte

Mehr

Einfluss der Treatment Sets auf Ladezeiten und Datenvolumen am Beispiel von SharePoint Server 2010

Einfluss der Treatment Sets auf Ladezeiten und Datenvolumen am Beispiel von SharePoint Server 2010 : Einfluss der Treatment Sets auf Ladezeiten und Datenvolumen am Beispiel von SharePoint Server 2010 von Thomas Stensitzki, Senior Consultant icomcept GmbH Management Summary Der Aufbau von Webseiten kann

Mehr

ND.Zip & Notes/Domino 6

ND.Zip & Notes/Domino 6 ND.Zip for Notes Version 1.1 ND.Zip & Notes/Domino 6 Stand: 9.5.2003 Inhaltsverzeichnis 1 Inhaltsverzeichnis 2 ND.Zip: ein Muss auch für Notes/Domino 6! 3 LZ1 erzielt keinen Mehrwert, 4 Sofortiger und

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Offlinedateiendienst Synchronisierungs-Center unter Kontrolle bringen

Offlinedateiendienst Synchronisierungs-Center unter Kontrolle bringen In dieser Anleitung behandeln wir das Thema; das automatische sowie manuelle starten und stoppen des Dienstes Offlinedateiendienst cscservice. Man kann einen Dienst über verschiedene Wege wie z.b. über

Mehr

1 Lieferantenbewertung

1 Lieferantenbewertung 1 Lieferantenbewertung Mit Hilfe der Lieferantenbewertung können alle aktiven Lieferanten nach ISO Kriterien bewertet werden. Die zur Bewertung hinterlegten Faktoren können individuell vorgegeben werden.

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

OSGi-basierte Webapplikationen Ein Erfahrungsbericht

OSGi-basierte Webapplikationen Ein Erfahrungsbericht OSGi-basierte Webapplikationen Ein Erfahrungsbericht Zürich, 18. März 2009 Pascal Nüesch, Software Engineer 1 www.namics.com Zu meiner Person» Lehre als Elektroniker mit Schwerpunkt SW-Entwicklung» Java

Mehr

Web-Anwendungsentwicklung mit dem Delivery Server

Web-Anwendungsentwicklung mit dem Delivery Server Web-Anwendungsentwicklung mit dem Delivery Server Java-Framework auf Basis der Open API Bernfried Howe, Webertise Consulting GmbH WEBertise Consulting Dipl. Informatiker (Wirtschaftsinformatik) 2001-2010

Mehr

Warum Anwendungen nicht skalieren Wie man Performance- und Skalierbarkeitsprobleme findet und eliminiert

Warum Anwendungen nicht skalieren Wie man Performance- und Skalierbarkeitsprobleme findet und eliminiert Warum Anwendungen nicht skalieren Wie man Performance- und Skalierbarkeitsprobleme findet und eliminiert Alois Reitbauer, dynatrace Software Mirko Novakovic, codecentric GmbH Agenda Skalierbarkeit Das

Mehr

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA

VIVIT TQA Treffen in Köln am 18. 04. 2013. API- Programmierung und Nutzung bei HP Quality Center / ALM. Michael Oestereich IT Consultant QA VIVIT TQA Treffen in Köln am 18. 04. 2013 API- Programmierung und Nutzung bei HP Quality Center / ALM Michael Oestereich IT Consultant QA Agenda Vorstellung der API- Versionen OTA- API SA- API REST- API

Mehr

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel ralf_gitzel@hotmail.de EJB Beispiel JEE Vorlesung 10 Ralf Gitzel ralf_gitzel@hotmail.de 1 Stundenkonzept Gemeinsame Übung Stoff der letzten Stunde wird gemeinsam in einem Beispiel umgesetzt Details werden nochmals erklärt bzw.

Mehr

Web 2.0 Architekturen und Frameworks

Web 2.0 Architekturen und Frameworks Web 2.0 Architekturen und Frameworks codecentric GmbH Mirko Novakovic codecentric GmbH Quality Technische Qualitätssicherung in Software-Projekten mit Fokus auf Performance, Verfügbarkeit und Wartbarkeit

Mehr

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131 Architekturen Von der DB basierten zur Multi-Tier Anwendung DB/CRM (C) J.M.Joller 2002 131 Lernziele Sie kennen Design und Architektur Patterns, welche beim Datenbankzugriff in verteilten Systemen verwendet

Mehr

Adlerblick So gewinnen Sie einen Überblick über ein DWH Dr. Andrea Kennel InfoPunkt Kennel GmbH CH-8600 Dübendorf Schlüsselworte Einleitung

Adlerblick So gewinnen Sie einen Überblick über ein DWH Dr. Andrea Kennel InfoPunkt Kennel GmbH CH-8600 Dübendorf Schlüsselworte Einleitung Adlerblick So gewinnen Sie einen Überblick über ein DWH Dr. Andrea Kennel InfoPunkt Kennel GmbH CH-8600 Dübendorf Schlüsselworte DWH Projekt, Methodik, Stärken und Schwächen, Übersicht, Weg der Daten,

Mehr

Web- Applikationen. in Java-Web

Web- Applikationen. in Java-Web Einführung in Java-Web Web- Applikationen Frank Huber Humboldt-Universität zu Berlin Allgemeines Java: Programmierung ist Programmierung nach Konvention Insbesondere bei Web-Applikationen wurde eine API

Mehr

COPPER Best Practices

COPPER Best Practices COPPER Best Practices Version 1.0.1 Wann sollte man überhaupt COPPER verwenden? Allgemein genau dann, wenn man von der COPPER Notation oder den COPPER-Features profitieren kann. Ein wesentliches Feature

Mehr

Metadata Service Respository (MDS) - Sehen, lernen, verstehen!

Metadata Service Respository (MDS) - Sehen, lernen, verstehen! Metadata Service Respository (MDS) - Sehen, lernen, verstehen! Carsten Wiesbaum esentri AG Schlüsselworte Metadata Service Repository, MDS, Oracle Fusion Middleware Einleitung Früher oder später wird jeder

Mehr

CAS genesisworld.exchange connect Abgleich von Adressen und Terminen

CAS genesisworld.exchange connect Abgleich von Adressen und Terminen Abgleich von Adressen und Terminen Stand Juni 2004 Was ist CAS genesisworld.exchange connect? Inhalt 1 Was ist CAS genesisworld.exchange connect?... 3 2 Systemvoraussetzungen... 5 2.1 Software...5 2.2

Mehr

Artikel eindeutig mit Barcodes identifizieren und verfolgen

Artikel eindeutig mit Barcodes identifizieren und verfolgen Artikel eindeutig mit Barcodes identifizieren und verfolgen Einführung Um die Vielfalt an Anforderungen zu erfüllen haben wir drei verschiedene Varianten zur Erfassung von Barcodes implementiert. Die drei

Mehr

Java Enterprise Architekturen Willkommen in der Realität

Java Enterprise Architekturen Willkommen in der Realität Java Enterprise Architekturen Willkommen in der Realität Ralf Degner (Ralf.Degner@tk-online.de), Dr. Frank Griffel (Dr.Frank.Griffel@tk-online.de) Techniker Krankenkasse Häufig werden Mehrschichtarchitekturen

Mehr

.NET Dlls in Java-Webapplikationen

.NET Dlls in Java-Webapplikationen .NET Dlls in Java-Webapplikationen Integration von Dotnet Dlls in Java-Webapplikationen mittels JNBridge Autoren: Harald Negrin IT-Leiter BAWAG-Versicherung Jens Bühring Geschäftsführer Kap Dion Gesellschaft

Mehr

Übungsaufgaben zur Klausurvorbereitung Datenbanken 2, SoSe 2016

Übungsaufgaben zur Klausurvorbereitung Datenbanken 2, SoSe 2016 Die nachfolgenden Aufgaben sind nach Kategorien geordnet und stellen eine Auswahl von Aufgaben aus alten Klausuren des bisherigen Bachelor-WP-Fachs Datenbank Anwendungsentwicklung dar. Kategorie 1: OR-Mapping

Mehr

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel ralf_gitzel@hotmail.de

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel ralf_gitzel@hotmail.de JSP JSTL JEE Vorlesung Teil 6 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Wiederholung / Vertiefung JSTL Grundlagen JSTL Basisbefehle Templates über JSTL

Mehr

Die Rückkehr der Einfachheit 62

Die Rückkehr der Einfachheit 62 7.09 Plus CD! Stellenmarkt S. 58 Das war die JAX 2009 S. 15 Deutschland 7,50 Österreich 8,60 Schweiz sfr 15,80 Java Magazin Java Architekturen SOA Agile www.javamagazin.de CD-Inhalt JavaRebel 2.0 Squish

Mehr

McAfee Security-as-a-Service -

McAfee Security-as-a-Service - Handbuch mit Lösungen zur Fehlerbehebung McAfee Security-as-a-Service - Zur Verwendung mit der epolicy Orchestrator 4.6.0-Software Dieses Handbuch bietet zusätzliche Informationen zur Installation und

Mehr

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen

BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen BüroWARE Exchange Synchronisation Grundlagen und Voraussetzungen Stand: 13.12.2010 Die BüroWARE SoftENGINE ist ab Version 5.42.000-060 in der Lage mit einem Microsoft Exchange Server ab Version 2007 SP1

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

Einführung in Generatives Programmieren. Bastian Molkenthin

Einführung in Generatives Programmieren. Bastian Molkenthin Einführung in Generatives Programmieren Bastian Molkenthin Motivation Industrielle Entwicklung *!!*,(% % - #$% #!" + '( & )!* Softwareentwicklung Rückblick auf Objektorientierung Objektorientierte Softwareentwicklung

Mehr

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten.

Eine völlig andere Form Abfragen zu erstellen ist, sie mit Hilfe der Datenbankabfragesprache SQL zu gestalten. Einführung SQL 2010 Niko Becker Mit unseren Übungen zu ACCESS können Sie Aufbau und Struktur einer relationalen Datenbank kennenlernen. Wir zeigen Ihnen wie Sie Tabellen, Formulare und Berichte erstellen

Mehr

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT Neue Technologien effizient nutzen Ehningen, 3. Juli 2014 Rodney Krick rk@aformatik.de aformatik Training & Consulting GmbH & Co. KG

Mehr

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht.

Um asynchrone Aufrufe zwischen Browser und Web Anwendung zu ermöglichen, die Ajax Hilfsmittel DWR ist gebraucht. Technisches Design Inhalt Design Übersicht Menü und DispatcherServlet DWR Servlet Viewer Servlets Controllers Managers Sicherheit Anwendung Architektur Component Diagram Deployment Diagram Komponente Sequence

Mehr

TimeSafe Leistungserfassung

TimeSafe Leistungserfassung Keep your time safe. TimeSafe Leistungserfassung Adressimport 1/8 Inhaltsverzeichnis Inhaltsverzeichnis... 2 1 Allgemeines... 3 1.1 Adressen in der TimeSafe Leistungserfassung... 3 1.2 Organisationen und/oder

Mehr

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen

Datenbanksysteme. Programmieren von Datenbankzugriffen mit JDBC. Burkhardt Renz. Fachbereich MNI Technische Hochschule Mittelhessen Programmieren von Datenbankzugriffen mit JDBC Fachbereich MNI Technische Hochschule Mittelhessen Sommersemester 2015 Überblick über das Package java.sql Übersicht Architektur von JDBC Grundstruktur eines

Mehr

Ruby on Rails. Thomas Baustert Ralf Wirdemann www.b-simple.de. Alternative zur Web-Entwicklung mit Java? 27.06.2005 www.b-simple.

Ruby on Rails. Thomas Baustert Ralf Wirdemann www.b-simple.de. Alternative zur Web-Entwicklung mit Java? 27.06.2005 www.b-simple. Ruby on Rails Alternative zur Web-Entwicklung mit Java? Thomas Baustert Ralf Wirdemann www.b-simple.de 27.06.2005 www.b-simple.de 1 Überblick Was ist Ruby on Rails? Weblog Demo Rails Komponenten Controller,

Mehr

Sicherheit in Webanwendungen CrossSite, Session und SQL

Sicherheit in Webanwendungen CrossSite, Session und SQL Sicherheit in Webanwendungen CrossSite, Session und SQL Angriffstechniken und Abwehrmaßnahmen Mario Klump Die Cross-Site -Familie Die Cross-Site-Arten Cross-Site-Scripting (CSS/XSS) Cross-Site-Request-Forgery

Mehr

Open-Source Transparente Persistence (keine Interfaces, keine Ober- Klassen) Caching

Open-Source Transparente Persistence (keine Interfaces, keine Ober- Klassen) Caching 1 Was ist Hibernate Hibernate ist ein Open-Source-Java-Persistenz-Framework für relationale Datenbanken Persistenz-Frameworks: kapseln und abstrahiert den Zugriff auf eine Speicherschicht -> Zwischenschicht

Mehr