Jump to: navigation, search

Difference between revisions of "EclipseLink/Presentations/Abstracts"

(EclipseLink: The Evolution of Java Persistence)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
== Java Persistence API 2.0 with EclipseLink ==
 +
 +
JPA 2.0 defines the Java EE standard for relational persistence with open source EclipseLink providing the reference implementation along with a number of advanced features including clustered caching, dynamic persistence, and JAXB integration. This session will look at the JPA 2.0 specification and beyond to the advanced features EclipseLink provides to support building Java EE 6 applications.
 +
 
==EclipseLink:  The Evolution of Java Persistence==
 
==EclipseLink:  The Evolution of Java Persistence==
  
Data access today isn’t just about reading and writing from relational databases anymore.  It’s also about mapping your objects to XML and to JSON for use in RESTful web services.  It’s about being able to persist your objects in NoSQL databases and being able to cache them in data grids so you can scale out your application to hundreds of servers.  The EclipseLink project is well known as an object-relational mapping framework and as the JPA 2.0 reference implementation in Java EE 6, but it is evolving to provide a comprehensive set of data services for Java developers building enterprise and cloud applications in Java EE, Java SE, and in OSGi.  In this session we’ll dive into these new services and see how to build modern enterprise Java applications leveraging EclipseLink both in the back end for data persistence and on the front end to build RESTful services that support HTML5 clients.  Topics will include:
+
Data access today isn’t just about reading and writing from relational databases anymore.  It’s also about mapping your objects to XML and to JSON for use in RESTful web services.  It’s about being able to persist your objects in NoSQL databases and being able to cache them in data grids so you can scale out your application to hundreds of servers.  The EclipseLink project is well known as an object-relational mapping framework and as the JPA 2.0 reference implementation in Java EE 6, but it has evolved to provide a comprehensive set of data services for Java developers building enterprise and cloud applications in Java EE, Java SE, and in OSGi.  In this session we’ll dive into these new services and see how to build modern enterprise Java applications leveraging EclipseLink both in the back end for data persistence and on the front end to build RESTful services that support HTML5 clients.   
 +
 
 +
Topics will include:
  
 
* EclipseLink “JSON-B”—provides Java/JSON binding similar to EclipseLink JAXB’s Java/XML binding. With JSON-B, developers can easily marshall their Java domain model to and from JSON which is the preferred format for HTML5/JavaScript clients.
 
* EclipseLink “JSON-B”—provides Java/JSON binding similar to EclipseLink JAXB’s Java/XML binding. With JSON-B, developers can easily marshall their Java domain model to and from JSON which is the preferred format for HTML5/JavaScript clients.
Line 9: Line 15:
 
* Tenant Isolation—Allow each tenant’s data to be isolated by data source, schema, table, or at the row level including support for Oracle Database Virtual Private Database (VPD).  The isolation of entities carries through the persistence layers including caching.
 
* Tenant Isolation—Allow each tenant’s data to be isolated by data source, schema, table, or at the row level including support for Oracle Database Virtual Private Database (VPD).  The isolation of entities carries through the persistence layers including caching.
  
== Persistence in the Cloud: Blazing the Trail to JPA 2.1 in EclipseLink ==
+
== Cloud Enabled Persistence ==
  
One of the major themes of Java EE 7 and JPA 2.1 is multi-tenancy and EclipseLink, the JPA 2.1 reference implementation, has blazed the trail by shipping support for both multi-tenancy and tenant specific extensions in the Eclipse Indigo release.  EclipseLink multi-tenancy enables the use of a single persistence unit by multiple tenants while keeping their data isolated and secure.  But to provide a SaaS platform EclipseLink also provides tenant specific extensions so that each tenant can augment JPA entities with the additional data they need to capture and maintain.   
+
One of the major themes of Java EE 7 and JPA 2.1 is multi-tenancy and EclipseLink, the JPA 2.1 reference implementation, has blazed the trail by shipping support for JPA usage with multiple tenants and tenant specific extensions in the Eclipse Indigo release (June 2011).  EclipseLink enables the use of a single persistence unit by multiple tenants offering control over their tenant isolation strategy.  But to provide a SaaS platform EclipseLink also provides tenant specific extensions so that each tenant can augment JPA entities with the additional data they need to capture and maintain.   
  
 
In this session we will:
 
In this session we will:
* Look at the challenges presented by multi-tenancy and tenant isolation
+
* Look at the challenges presented developing to support multiple tenants
 
* Explore the EclipseLink JPA tenant isolation and extensibility  features
 
* Explore the EclipseLink JPA tenant isolation and extensibility  features
 
* Introduce the EclipseLink MOXy extensibility features that enable exposing tenant specific extended data over REST  
 
* Introduce the EclipseLink MOXy extensibility features that enable exposing tenant specific extended data over REST  
* Explore a complete multi-tenant Java EE application that supports dynamic tenant provisioning and customization
+
* Explore a complete Java EE application that supports dynamic tenant provisioning and customization
  
This session will include live demos.
+
== Simplifying REST in Java EE with Eclipse ==
 +
REST is a technique for providing light weight Web Services and in Java EE the Java API for RESTful Services (JAX-RS) provides the service framework. The Java Persistence API (JPA) provides the data access and Java Architecture for XML Binding (JAXB) handles marshalling the persistent entities into and out of XML. Sound great! There are a number of issues developers have to deal with when using them together. In this session we'll look at how to build RESTful services with Eclipse WTP using these standard technologies, their integration points and where the pain points are, and how to avoid them using EclipseLink's advanced REST/JAXB/JPA integrations features.
  
 
== Building HTML5 Applications with EclipseLink: JSON, JAX-RS, JPA & JavaScript ==
 
== Building HTML5 Applications with EclipseLink: JSON, JAX-RS, JPA & JavaScript ==

Latest revision as of 13:44, 13 February 2012

Java Persistence API 2.0 with EclipseLink

JPA 2.0 defines the Java EE standard for relational persistence with open source EclipseLink providing the reference implementation along with a number of advanced features including clustered caching, dynamic persistence, and JAXB integration. This session will look at the JPA 2.0 specification and beyond to the advanced features EclipseLink provides to support building Java EE 6 applications.

EclipseLink: The Evolution of Java Persistence

Data access today isn’t just about reading and writing from relational databases anymore. It’s also about mapping your objects to XML and to JSON for use in RESTful web services. It’s about being able to persist your objects in NoSQL databases and being able to cache them in data grids so you can scale out your application to hundreds of servers. The EclipseLink project is well known as an object-relational mapping framework and as the JPA 2.0 reference implementation in Java EE 6, but it has evolved to provide a comprehensive set of data services for Java developers building enterprise and cloud applications in Java EE, Java SE, and in OSGi. In this session we’ll dive into these new services and see how to build modern enterprise Java applications leveraging EclipseLink both in the back end for data persistence and on the front end to build RESTful services that support HTML5 clients.

Topics will include:

  • EclipseLink “JSON-B”—provides Java/JSON binding similar to EclipseLink JAXB’s Java/XML binding. With JSON-B, developers can easily marshall their Java domain model to and from JSON which is the preferred format for HTML5/JavaScript clients.
  • EclipseLink JPA-RS—provides a service that exposes JPA mapped entities over REST either as XML with JAXB or JSON with EclipseLink JSON-B. It supports a full CRUD API as well as named query invocation.
  • Resource Mapping—While JAXB and JSON-B provide a way to marshall to and from XML/JSON, RESTful services require a way to define what constitutes a resource. A naive approach of entity==resource may be used but is likely inefficient. With EclipseLink Resource Mapping the classes in a domain model can be declaratively mapped to a resource model which can be exposed using JPA-RS.
  • EclipseLink Dynamic Provisioning—provides persistence services to pure HTML5 applications without the need for Java classes. With Dynamic Provisioning, HTML5 clients can dynamically define storage requirements for a set of classes (object types) and EclipseLink will instantiate a full JPA-RS CRUD service for those classes as well as JPQL query support.
  • Tenant Isolation—Allow each tenant’s data to be isolated by data source, schema, table, or at the row level including support for Oracle Database Virtual Private Database (VPD). The isolation of entities carries through the persistence layers including caching.

Cloud Enabled Persistence

One of the major themes of Java EE 7 and JPA 2.1 is multi-tenancy and EclipseLink, the JPA 2.1 reference implementation, has blazed the trail by shipping support for JPA usage with multiple tenants and tenant specific extensions in the Eclipse Indigo release (June 2011). EclipseLink enables the use of a single persistence unit by multiple tenants offering control over their tenant isolation strategy. But to provide a SaaS platform EclipseLink also provides tenant specific extensions so that each tenant can augment JPA entities with the additional data they need to capture and maintain.

In this session we will:

  • Look at the challenges presented developing to support multiple tenants
  • Explore the EclipseLink JPA tenant isolation and extensibility features
  • Introduce the EclipseLink MOXy extensibility features that enable exposing tenant specific extended data over REST
  • Explore a complete Java EE application that supports dynamic tenant provisioning and customization

Simplifying REST in Java EE with Eclipse

REST is a technique for providing light weight Web Services and in Java EE the Java API for RESTful Services (JAX-RS) provides the service framework. The Java Persistence API (JPA) provides the data access and Java Architecture for XML Binding (JAXB) handles marshalling the persistent entities into and out of XML. Sound great! There are a number of issues developers have to deal with when using them together. In this session we'll look at how to build RESTful services with Eclipse WTP using these standard technologies, their integration points and where the pain points are, and how to avoid them using EclipseLink's advanced REST/JAXB/JPA integrations features.

Building HTML5 Applications with EclipseLink: JSON, JAX-RS, JPA & JavaScript

In the Eclipse Juno release, EclipseLink is introducing a set of new features to support the development of HTML5 applications that interact with server side Java using REST. In this session we’ll look at the typical HTML5/Java EE REST stack and see how EclipseLink’s new features can be used to both simplify development through the use of declarative metadata as well as how it can enable the development of pure HTML5 applications that rely on database data. We’ll introduce each of the new features and see how they can be used, and combined, to build RESTful services. These features are:

  • EclipseLink "JSON-B"—provides Java/JSON binding similar to EclipseLink JAXB’s Java/XML binding. With JSON-B, developers can easily marshall their Java domain model to and from JSON which is the preferred format for HTML5/JavaScript clients.
  • EclipseLink JPA-RS—provides a service that expose JPA mapped entities over REST either as XML with JAXB or JSON with EclipseLink JSON-B. It supports a full CRUD API as well as named query invocation.
  • Resource Mapping—While JAXB and JSON-B provide a way to marshall to and from XML/JSON, RESTful services require a way to define what constitutes a resource. A naive approach of entity==resource may be used but is likely inefficient. With EclipseLink Resource Mapping the classes in a domain model can be declaratively mapped to a resource model which can be exposed using JPA-RS.
  • EclipseLink Dynamic Provisioning—provides persistence services to pure HTML5 applications without the need for Java classes. With Dynamic Provisioning, HTML5 clients can dynamically define storage requirements for a set of classes (object types) and EclipseLink will instantiate a full JPA-RS CRUD service for those classes as well as JPQL query support.