Vom UML Modell ohne Umwege zur Datenbank Wie lassen sich Produktivität und Performance weiter steigern ? Gerd.Loos@Poet.de Gerd.Loos@Poet.de
Neil A. Armstrong der erst Mensch auf dem Mond “Buzz” Aldrin ?
Todd A. Giblette Sr. V.P. of First Horizon "Poet FastObjects™ is bringing our most technologically-advanced reports and utilities to market two months faster than scheduled on the first stage of the MBO project," said Giblette. "The time we’re saving with Poet FastObjects™ is extremely important to us." "In addition to the development savings, we also save over $75,000 per year on reduced database administration, thanks to Poet FastObjects™“
Übersicht Wie kommen Sie direkt vom UML-Modell zur Datenbank ? Beispiel: Wie entwerfen Sie einen WebShop ? Wer ist POET Software ? Was machen FastObjects anders ? Welchen Nutzen bieten FastObjects ? Performance Zuverlässigkeit Partnerschaft Versionierung Java API XML Import / Export Wie geht es weiter ?
FastObjects Rational Rose UML Binding Applikationsdefinition in UML
Rational Rose Template für FastObjects
Beispiele für Internetanwendungen Shops, Portale und 3D Anwendungen
1. Schritt: Der HTML Prototype
2. Schritt: Definition der DB-Klassen Class XY { String Name; ... }
3. Schritt: Implementierung der JSPs/EJBs Klassen
http://community.fastobjects.com/webshop
http://community.fastobjects.com
Praxisbeispiel: Die Poet eSupplierSolutions Anwenderoberfläche vollständig über Browser realisiert HTML Ausgaben HTML Forms wenige Applets Programmlogik in Servlets realisiert Übernahme von Daten aus vielen Formaten Verwalten von Kunden / Produkten / Katalogen Ausgabe der Daten in vielfältigen Varianten Plattformunabhängig durch 100% Java & HTML
Technologieführer im OODBMS Markt Wer ist Poet Software ? Technologieführer im OODBMS Markt
POET Software Seit 1989 Datenbankentwicklung in Hamburg Börsennotiert seit 1999 ca. 180 Mitarbeiter Kernkompetenz: Persistenzmechanismen für hohe Anforderungen
POET Kunden und Märkte (Auswahl)
Produkte FastOjects™ e7 FastOjects™ e7 FastOjects™ t7 FastOjects™ e7 Object-Persistenz für eingebettete Anwendungen C++ und Java Produkte FastOjects™ e7 Object-Persistenz für eingebettete Anwendungen C++ und Java FastOjects™ t7 Object-Server für Multi-User Anwendungen FastOjects™ e7 Objekt-Persistenz für eingebettete Anwendungen C++ und Java FastOjects™ t7 Objekt-Server für Multi-User Anwendungen FastOjects™ j2 Objekt-Persistenz für Echtzeit-Anwendungen und Kleingeräte 100% Java
FastObjects ™ Architektur Java C++ ODBC XML FastObjects Object Manager e7 j2 t7 TCP/IP SQL Factory ORACLE SQL-S. DB2 t7 Replication
Grundlagen FastObjects™ Der kleine Unterschied
Was macht FastObjects™ anders als ein RDBMS ? Datenmodell Relationale Datenbank Realität
FastObjects™ kann mit Tabellen arbeiten ... ODBC Interface Indizierung Primärschlüssel Datenmodell FastObjects™
... deren Zeilen unabhängig sind ... Datenmodell FastObjects™
... die sich deshalb anpasen können ... Versionierung im laufenden Betrieb Abgeleitete Klassen Eingebettete Listen Datenmodell FastObjects™
... und direkt referenziert werden. Direkte Referenzen (Über DB-Grenzen hinweg) Beliebige Strukturen ohne Umformungen Datenmodell FastObjects™
Hohe Performance durch FastObjects™ Ohne Umwege schneller im Ziel
Ist Ihre Anwendung zu schnell ?
Query-Funktionen Person Address City Suchen und Index-Pflege auf dem Server Automatische Query-Optimierung Überlegene Index-Funktionen Zusammengesetzte Indizes Mehrfach-Indizes Kaskadierende Indizies Person Address City
Relationen verbinden durch Suchoperationen Mapping Mapping/Joins Relationale Datenbank Datenstruktur
FastObjects™ verbindet direkt Datenstruktur FastObjects™
FastObjects™ vs. ORACLE Navigation in Objektnetzwerken
Dr. Kremer Bankgesellschaft Berlin/Eigenhandel Gefordert: Ein hochperformantes Produkt für komplexe Risiko-Berechnungen "Das Team der Bankgesellschaft Berlin konnte hier insbesondere von Poets guter Performance beim Zugriff auf komplexe Daten profitieren.“ " Poet bietet nicht nur eine erstklassige Technologie, sondern auch hervorragenden Support durch qualifizierte, engagierte Mitarbeiter – von den technischen Beratern über den Vertrieb bis hin zur Telefon-Hotline."
Absolute Zuverlässigkeit Unter allen Randbedingungen
Lucent Technologies “The latest version of the INTUITY AUDIX system embeds Poet's FastObjects database as a data repository for increased system reliability and less downtime for maintenance. FastObjects was chosen because its software has a proven track record for reliability in applications that require 100 percent uptime. In addition, the feature set will provide future INTUITY AUDIX system releases with leading edge data management technology.” Bruce Galler, Technical Manager Lucent Technologies Messaging Solutions Group
Zuverlässigkeit Kein "single Point of Failure“ Ständige Selbstprüfungen Online und incremental Backup Server- und Client-Redundanz
Zuverlässigkeit Server & Client Failover Kein "single Point of Failure“ Ständige Selbstprüfungen Online und incremental Backup Server- und Client-Redundanz Server & Client Failover
Erfolg durch Partnerschaft Unterstützung bis zum Projekterfolg
Werner Zuegel: "Mit der POET SQL Object Factory konnten wir unser Aussendienstsystem auf POET-Basis ohne Änderung der Applikation an eine relationale Datenbank anbinden. Unter einer einheitlichen Programmierschnittstelle unterstützt unser Produkt jetzt sowohl POET als auch DB2" Die neuartige Gateway-Technologie, die im Rahmen einer engen Kooperation zwischen USU, BSH und der POET Software GmbH entwickelt wurde, ermöglicht nun die bruchlose Integration von objektorientierten und relationalen Systemen unter einem einheitlichen Interface.
Bruce Craven „F.A. Davis brauchte einen Datenbankhersteller, der die spezifischen Probleme des Projekt nachvollziehen und die Möglichkeit zu Unterstützung und Kooperation in allen Projektphasen bieten konnte.“ "Was mir die Entscheidung für POET sehr leicht gemacht hat, war ihre Bereitschaft, mit uns in diesem Projekt zusammenzuarbeiten".
Klassen-Versionierung Nach der ersten Installation ...
Cendant, London „We are the homes you buy, the hotels and resorts you visit, the cars you rent and the services that you rely on...both on-line and off-line. „ Callcenter Software Große Datenbanken Keine Zeit für Konvertierungsläufe nach Versionswechseln Wechsel auf FastObjects™ kurz vor der Auslieferung
Versionierung "on the fly" : Ein "muß" im Internetzeitalter Neue Applikationsversionen können ohne vorhergehende vollständige Datenbank-Konvertierung auf bestehende Datenbestände zugreifen
Versionierung "on the fly" : Ein "muß" im Internetzeitalter Neue Applikationsversionen können ohne vorhergehende vollständige Datenbank-Konvertierung auf bestehende Datenbestände zugreifen
Geringer Speicherbedarf Die Datenbank ist nicht das Einzige !
FastObjects j2 100% Java 450 KB Jar File Modernste Architektur Hohe Performance Maximale Verfügbarkeit Optimiert für Echtzeit-Systeme
Ericsson “We evaluated all of the potential database vendors and selected Poet´s FastObject Technology because they have the most experience in small footprint object storage in embedded environments. Ericsson is very excited about working with FastObjects” David Jordan, Director of Database Technologies-New Concepts, Ericsson
Efficient Application Development POET ODMG Java API Efficient Application Development
Dafür haben wir keine Zeit ! Connection con=DriverManager.getConnection (url, "Admin", "duke1"); Statement stmt = con.createStatement(); createString = "create table SUPPLIERS (SUP_ID int, SUP_NAME varchar(40), STREET varchar(40), CITY varchar(20), STATE char(2), ZIP char(5))"; stmt.executeUpdate(createString); stmt.close(); con.close(); Connection con = DriverManager.getConnection (url, "Admin", "duke1"); stmt = con.createStatement(); stmt.executeUpdate("insert into SUPPLIERS values(49, 'Superior Coffee', '1 Party Place', Mendocino', 'CA', '95460')"); stmt.close(); con.close();
Erzeugen einer Datenbank Person.java ptjavac -xc *.java createDatabase.bat public class Person { String FirstName; String LastName; public void setLastName(...) {...} public String getLastName() {...} ... } ptjavac.opt [classes\Person] persistent = true hasExtent = true
Speichern neuer Objekte Demo.java Transaction myTransaction = new Transaction(myBase); myTransaction.begin(); myTransaction.commit();
Speichern neuer Objekte Demo.java Transaction myTransaction = new Transaction(myBase); myTransaction.begin(); Person myPerson=new Person("Anton"); myBase.makePersistent(myPerson); myTransaction.commit();
Speichern neuer Objekte Demo.java Transaction myTransaction = new Transaction(myBase); myTransaction.begin(); Person myPerson=new Person("Anton"); myBase.makePersistent(myPerson); myPerson.add(new Address("Berlin")); myPerson.add(new Address("Hagen")); myTransaction.commit();
Suchen und laden von Objekten Demo.java String quest = "SELECT * FROM x IN PersonExtent "+ "WHERE x.Name LIKE \"A*\""; OQLQuery query = new OQLQuery(quest); BagOfObject bag = (BagOfObject)query.execute(); Iterator i = bag.iterator(); while (i.hasNext()) { System.out.println(i.next()); }
Einfacher Datenaustausch via ASCII XML Import / Export Einfacher Datenaustausch via ASCII
XML: Daten via ASCII austauschen Jede FastObjects™ Datenbank kann teilweise oder vollständig als XML exportiert und importiert werden Austausch über „well formed“ XML Keine DTD oder Schema Definition notwendig Beliebige Datenstrukturen Jede FastObjects™ Datenbank kann mit Schemadefinitionen auf XML-Sub-Standards spezialisiert werden Umsetzung von Schema-Definitionen in Java Klassen Suchen und Anwendungen auf XML-Daten im Binär-Format Ausgabe in beliebige XML Formate
FastObjects XML Wizard Schema Definition> Internet <XML-Data> <XML-Data>
Wie Sie FastObjects kennenlernen und nutzen Wie geht es weiter ? Wie Sie FastObjects kennenlernen und nutzen
Wie starten Sie mit FastObjects ? Diskutieren Sie Ihr Projekt mit uns Testen Sie die Trial CD Fragen Sie nach einem Discovery Day Ordern Sie ein Quickstart Package Software Development Kit 4 Tage Training & Consulting vor Ort 3 Monate Hotline Support und PDN
www. poet. de www. fastobjects. de community. fastobjects. com Gerd www.poet.de www.fastobjects.de community.fastobjects.com Gerd.Loos@Poet.de Gerd.Loos@Poet.de