1 Persistence Strategies for WebServices Senior Consultant Java Forum Stuttgart, 27. Juni 2002.

Slides:



Advertisements
Ähnliche Präsentationen
Objektrelationales Mapping mit JPA
Advertisements

R. Zankl – Ch. Oelschlegel – M. Schüler – M. Karg – H. Obermayer R. Gottanka – F. Rösch – P. Keidler – A. Spangler th Expert Meeting Business.
1. 2 Microsoft.NET Überblick Dirk Primbs Technologieberater Developer Platform & Strategy Group Microsoft Deutschland GmbH.
Objektrelationales Mapping mit JPA Getting Started Jonas Bandi Simon Martinelli.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil 5.
Transaction Script Software Component Technology for Distributed Applications.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
SOMA Service-Oriented Mobile learning Architecture.
1 Juni 05 Lernen Sie doch wann Sie wollen... (Konzeption) eLearning bei der SKC GmbH Zorneding.
| DC-IAP/SVC3 | © Bosch Rexroth Pneumatics GmbH This document, as well as the data, specifications and other information set forth in.
BAS5SE | Fachhochschule Hagenberg | Daniel Khan | S SPR5 MVC Plugin Development SPR6P.
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
XML IV: Cocoon 2.
Getting Started Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
CALPER Publications From Handouts to Pedagogical Materials.
Ein Projekt des Technischen Jugendfreizeit- und Bildungsvereins (tjfbv) e.V. kommunizieren.de Blended Learning for people with disabilities.
Einführung in Web Services Web Services in der Praxis
Service-Oriented Architecture Service- Orientation Design Paradigm is primarily distinguishe d by Services is designed to support the implementation of.
Universität StuttgartInstitut für Wasserbau, Lehrstuhl für Hydrologie und Geohydrologie Copulas (1) András Bárdossy IWS Universität Stuttgart.
Technische Universität München 1 CADUI' June FUNDP Namur G B I The FUSE-System: an Integrated User Interface Design Environment Frank Lonczewski.
Programmiervorkurs WS 2014/15 Methoden
Software Architektur für on-premise und die Cloud Lösungen
Sprachneuerungen des .NET Frameworks 3.5
Präsentiert von Riccardo Fuda.  Klassische (symmetrische) Kryptographie  Der weg zur modernen Kryptographie  Message Authentification Codes  Asymmetrische.
Institut für Angewandte Mikroelektronik und Datentechnik Phase 5 Architectural impact on ASIC and FPGA Nils Büscher Selected Topics in VLSI Design (Module.
SiPass standalone.
Ralf M. Schnell Technical Evangelist Microsoft Deutschland GmbH
Christian Binder Senior Platform Strategy Manager Microsoft Deutschland GmbH.
Literary Machines, zusammengestellt für ::COLLABOR:: von H. Mittendorfer Literary MACHINES 1980 bis 1987, by Theodor Holm NELSON ISBN
Arbeiten in einem agilen Team mit VS & TFS 11
? What is Open PS? SAP Open PS based on EPS 4.0
VT-Anwendungen im Web Martin Vorländer PDV-Systeme GmbH IT-Symposium A06.
Welcome to Web Services & Grid Computing Jens Mache
Frameworks
3rd Review, Vienna, 16th of April 1999 SIT-MOON ESPRIT Project Nr Siemens AG Österreich Robotiker Technische Universität Wien Politecnico di Milano.
Possessive Adjectives How to show belonging… The information contained in this document may not be duplicated or distributed without the permission of.
Physik multimedial Lehr- und Lernmodule für das Studium der Physik als Nebenfach Julika Mimkes: Links to e-learning content for.
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
1/15 Thursday, 21 June 2007 Werner Sudendorf, Jürgen Keiper Deutsche Kinemathek – Museum für Film und Fernsehen Werner Sudendorf, Jürgen Keiper Reconstructing.
Gregor Graf Oracle Portal (Part of the Oracle Application Server 9i) Gregor Graf (2001,2002)
EUROPÄISCHE GEMEINSCHAFT Europäischer Sozialfonds EUROPÄISCHE GEMEINSCHAFT Europäischer Fonds für Regionale Entwicklung Workpackage 5 – guidelines Tasks.
Objektorientierte Datenbanken zBeim vorigen Mal: yJava Data Objects zHeute: yDer Object Data Standard der ODMG-Group xKurz: ODMG-Standard yDie POET-Implementierung.
Sven Koerber-Abe, 2015 Grammatik: müssen, dürfen Grammatik: müssen, dürfen.
Customer Icons for Object Families in the IBase WebClient UI Michael Wuschek and Gerhard Gebhard SAP AG CRM Development January 2009.
© 2012 IBM Corporation © 2013 IBM Corporation IBM Storage Germany Community Josef Weingand Infos / Find me on:
Data Extraction for SAP Business Objects Spend Performance Management.
Technische Universität München Institute of Aeronautical Engineering Prof. Dr.-Ing. Horst Baier Presentation of the Institute (December 2009)
Technische Universität München Alexander Neidhardt Forschungseinrichtung Satellitengeodäsie 1 Concepts for remote control of VLBI-telescopes: on the way.
(Name of presenter) (Short title of presentation).
© 2014 VMware Inc. All rights reserved. Automatisierung und Verrechnung in einer IoT Cloud am Beispiel von Bosch Private Cloud Costing | Cloud Business.
Custom error page for timeout Gergely Andó / Application Innovation July 10, 2013 Customer.
Workshop 1 Getting Started 2016 Boris Wylutzki
Apache Camel Christian Schneider
Azure Active Directory und Azure Active Directory Domain Services
Welcome to Variatec Academy!
Premiere Conferencing GmbH
Jakarta Struts Quasi-Standard für JSP-basierte Entwicklung: Jakarta Struts Key Features von Struts: Implementierung des Action-Command-Pattern („Model.
Investitionen sichern - wachse mit Forms in die neue Welt
Aspect-Oriented Programming: Fad or the Future
Senseo Wir erweitern die statischen Informationen mit Hilfe von Laufzeitinformationen. Einbindung in IDE resp. JDT.
Ferrite Material Modeling (1) : Kicker principle
Impact of Digitalization for Engineers and Engineering Education
Official Statistics Web Cartography in Germany − Regional Statistics, Federal and European Elections, Future Activities − Joint Working Party meeting.
OFFICE 365 FOCUS SESSION SHAREPOINT ONLINE 101:LERNE DIE BASICS 19. März 2018 Höhr-Grenzhausen.
Integrating Knowledge Discovery into Knowledge Management
Documentation
- moodle – a internet based learning platform
 Präsentation transkript:

1 Persistence Strategies for WebServices Senior Consultant Java Forum Stuttgart, 27. Juni 2002

2 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Agenda Web Services Architecture  Persistence Strategies for Web Services Transparent Java Persistence with Versant Summary Q&A

3 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. A Web Service Definition “A collection of functions that are packaged as a single entity and published to the network for use by other programs. Web services are building blocks for creating open distributed systems, and allow companies and individuals to quickly and cheaply make their digital assets available worldwide.“ (*) (*)

4 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. The Web Services Reference Architecture Web Services Business Services WSDL Web Services Container Web Services Runtime Web Services Client Registry UDDI ebXML Service Oriented Interfaces Service Oriented Interfaces discovery description execution SOAP/ HTTP(S) Business Processes

5 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Web Services Gateway Business Logic Web Content Delivery EIS Users Clustering HTTP Servers Load Balancing Web Application Servers Application Servers Clustering Line of Business Systems JSP Servlets EJBSOAP HTTP JDBC JMS

6 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. The case for Middle-tier Persistence Need to store/retrieve “Application Data”  Distinct from “Enterprise Data” “Application Data” modeled as objects  Never need leave middle-tier Interactions & Business transactions  “Interactions” have different data access requirements to traditional business transactions  Process-centric versus data-centric Need solution able to handle “object” complexities

7 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Web Services Gateway Business Logic Web Content Delivery EIS Users Clustering HTTP Servers Load Balancing Web Application Servers Application Servers Clustering Application Data Line of Business Systems Object Server SOAP HTTP JSP Servlets EJBJDBC JMS

8 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Persistent Strategies for Web Services: Entity Beans standard way to persist the domain model  encapsulate the persistence mechanism distributed objects  but should not be accessed remotely, common design practice  to wrap entity beans with session beans supposed to be transaction aware objects  the transactional context is to be managed by the calling session bean Is there really a big difference between Entity Beans and Persistent Java Objects ? Is there really a big difference between Entity Beans and Persistent Java Objects ?

9 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Persistent Strategies for Web Services: Session Beans Tests have shown that using Session Beans with direct access to persistent Java objects can lead to much more  Performance and scalability  Ease of use in typical EJB projects  Clean design and implementation  Persistence Layer is independent of the component framework

10 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Persistent Strategies for Web Services: Transparent Java Persistence Transparent persistence of Java objects  No relational transformation code required  Versus mapping of Java to relational models  All you need to know is Java! Transparent object navigation of complex models Full support for inherent object complexity  Inheritance, collections, multi-valued types

11 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Employee.java javac java com.versant. Enhance config.jvi java Employee mydb Employee.class Employee.class c Employee c Department a LoadDatabase a QueryDatabase c Employee c Department a LoadDatabase a QueryDatabase Transparent Java Persistence: Development process No changes in source code for persistence  Based on byte-code enhancement  Java applications can be easily adapted

12 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Transparent Java Persistence: The UML Model

13 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. public class Employee { String name; float salary; Employee (String name) { this.name = name; this.salary = (float) 70000; } void modifySalary(float delta) { salary = salary + delta; } public String toString () { return "Employee: " + name + " salary: " + salary; } public class Employee { String name; float salary; Employee (String name) { this.name = name; this.salary = (float) 70000; } void modifySalary(float delta) { salary = salary + delta; } public String toString () { return "Employee: " + name + " salary: " + salary; } Class Employee

14 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. import java.util.Vector; public class Department { String name; Employee manager; Vector employees; Department (String name, Employee manager) { this.name = name; this.manager = manager; employees = new Vector(); } void addEmployee(Employee emp) { int size = employees.size(); employees.setSize( size + 1 ); employees.setElementAt( emp, size ); } import java.util.Vector; public class Department { String name; Employee manager; Vector employees; Department (String name, Employee manager) { this.name = name; this.manager = manager; employees = new Vector(); } void addEmployee(Employee emp) { int size = employees.size(); employees.setSize( size + 1 ); employees.setElementAt( emp, size ); } Class Department

15 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Employee getManager() { return manager; } Vector getEmployees() { return employees; } public String toString () { return "Department: " + name + " employees:" + employees; } Employee getManager() { return manager; } Vector getEmployees() { return employees; } public String toString () { return "Department: " + name + " employees:" + employees; } Class Department (cont)

16 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. import com.versant.trans.*; public class LoadDatabase { public static void main (String[] args) { String database = args [0]; TransSession session = new TransSession (database); Employee boss = new Employee ("Boss"); Department department = new Department("RD", boss); Employee emp1 = new Employee ("Walt"); Employee emp2 = new Employee ("Dilbert"); department.addEmployee(emp1); department.addEmployee(emp2); session.makePersistent(department); session.commit(); session.endSession (); } import com.versant.trans.*; public class LoadDatabase { public static void main (String[] args) { String database = args [0]; TransSession session = new TransSession (database); Employee boss = new Employee ("Boss"); Department department = new Department("RD", boss); Employee emp1 = new Employee ("Walt"); Employee emp2 = new Employee ("Dilbert"); department.addEmployee(emp1); department.addEmployee(emp2); session.makePersistent(department); session.commit(); session.endSession (); } Load Database Open database; create Boss, Department and Employees; commit.

17 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Query Database import com.versant.trans.*; import java.util.Vector; import java.util.Enumeration; public class QueryDatabase { public static void main (String[] args) { String database = args [0]; TransSession session = new TransSession (database); VQLQuery query = new VQLQuery ( session, "select selfoid from Department where manager->name = 'Boss'" ); Enumeration e = query.execute (); if ( !e.hasMoreElements() ) { System.out.println ("No objects were found."); } else { while ( e.hasMoreElements() ) { typicalDilbertAction( (Department) e.nextElement() ); } session.commit(); session.endSession (); } import com.versant.trans.*; import java.util.Vector; import java.util.Enumeration; public class QueryDatabase { public static void main (String[] args) { String database = args [0]; TransSession session = new TransSession (database); VQLQuery query = new VQLQuery ( session, "select selfoid from Department where manager->name = 'Boss'" ); Enumeration e = query.execute (); if ( !e.hasMoreElements() ) { System.out.println ("No objects were found."); } else { while ( e.hasMoreElements() ) { typicalDilbertAction( (Department) e.nextElement() ); } session.commit(); session.endSession (); }

18 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. private static final float increase = 5000; private static void typicalDilbertAction(Department dep) { Vector employees = dep.getEmployees(); // Boss gets 5000$ more salary dep.getManager().modifySalary(increase); float decrease = increase/ employees.size(); for (int i = 0; i < employees.size(); i++) { Employee currentEmployee = (Employee) employees.elementAt(i); currentEmployee.modifySalary(-decrease); } private static final float increase = 5000; private static void typicalDilbertAction(Department dep) { Vector employees = dep.getEmployees(); // Boss gets 5000$ more salary dep.getManager().modifySalary(increase); float decrease = increase/ employees.size(); for (int i = 0; i < employees.size(); i++) { Employee currentEmployee = (Employee) employees.elementAt(i); currentEmployee.modifySalary(-decrease); } Query Database (cont)

19 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Web Services Gateway Business Logic Web Content Delivery EIS Users Clustering HTTP Servers Load Balancing Web Application Servers Application Servers Clustering Application Data Line of Business Systems Object Server SOAP HTTP JSP Servlets EJBJDBC JMS

20 © 2002 Versant GmbH Die hier vermittelten Informationen sind vertraulich zu behandeln und dürfen Dritten nur nach Genehmigung durch Versant zugänglich gemacht werden. All products are trademarks or registered trademarks of their respective companies. The information contained in this document is property of Versant GmbH. Persistent Strategies for Web Services: Summary Transparent Java Persistence  Faster development cycles No Mapping  Better performance with Navigation No Joins Full Database Management System Features  Scalability Client- and Server-Cache Distributed Database Object-Level Locking  24x7 Support Fault Tolerant Server On-Line Backup, HA-Backup