Lessons learned from real-world deployments of Java EE 7. Arun Gupta, Red

Similar documents
Courses For Event Java Advanced Summer Training 2018

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

open source community experience distilled

Developing Applications with Java EE 6 on WebLogic Server 12c

Java EE 7: Back-End Server Application Development

Enterprise Java in 2012 and Beyond From Java EE 6 To Cloud Computing

Red Hat JBoss Enterprise Application Platform 7.2

JavaEE.Next(): Java EE 7, 8, and Beyond

ORACLE DATA SHEET KEY FEATURES AND BENEFITS ORACLE WEBLOGIC SUITE

CO Java EE 7: Back-End Server Application Development

Migrating traditional Java EE applications to mobile

Open Source Library Developer & IT Pro

<Insert Picture Here> Java Virtual Developer Day

CMP 436/774. Introduction to Java Enterprise Edition. Java Enterprise Edition

Java EE und WebLogic Roadmap die nächsten Schritte

Server-Side JavaScript auf der JVM. Peter Doschkinow Senior Java Architect

Java EE 7 Recipes for Concurrency. Presented By: Josh Juneau Author and Application Developer

Hands-on Development of Web Applications with Java EE 6

JAVA EE 7 ESSENTIALS BY ARUN GUPTA DOWNLOAD EBOOK : JAVA EE 7 ESSENTIALS BY ARUN GUPTA PDF

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

Java SE 8 Fundamentals

DOC // JAVA TOMCAT WEB SERVICES TUTORIAL EBOOK

What is it? What does it do?

1 Markus Eisele, Insurance - Strategic IT-Architecture

J2EE - Version: 25. Developing Enterprise Applications with J2EE Enterprise Technologies

Java EE 6: Develop Business Components with JMS & EJBs

Practical Java EE 7 Development on WildFly

Roadmap to Cloud with Cloud Application Foundation

70-532: Developing Microsoft Azure Solutions

Eclipse Java Ejb 3.0 Tutorial For Beginners With Examples Pdf

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog!

Agenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present and Future Java EE 7 Java SE 8 Java Embedded

70-532: Developing Microsoft Azure Solutions

Liberty Right Fit for MicroProfile

Leverage Rational Application Developer v8 to develop Java EE6 application and test with WebSphere Application Server v8

Java- EE Web Application Development with Enterprise JavaBeans and Web Services

Market leading web application server product

The Next Generation. Prabhat Jha Principal Engineer

Java EE 6: Develop Web Applications with JSF

Via Giacomo Giovannetti Genova Sex M Birthday 26/10/1984 Citizenship Albanian

Java SE7 Fundamentals

An Oracle White Paper July Oracle WebLogic Suite 12c (12.1.2) Technical White Paper

Enterprise Architectures

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M

EMEA/Africa/Middle East - Tuesday June 25th, :00:00 a.m. - 1:00pm BST / 10:00:00 a.m. - 2:00 p.m.cest /

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

Deccansoft Software Services. J2EE Syllabus

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

MicroProfile - New and Noteworthy

Contents at a Glance

PDF SIMPLE JAVA WEB SERVICE EXAMPLE

INTRODUCTION TO COMPONENT DESIGN IN JAVA EE COMPONENT VS. OBJECT, JAVA EE JAVA EE DEMO. Tomas Cerny, Software Engineering, FEE, CTU in Prague,

Making The Future Java

WSO2 Platform Offerings for Developers

Oracle Corporation

Project Avatar: Server Side JavaScript on the JVM GeeCon - May David Software Evangelist - Oracle

<Insert Picture Here> Future<JavaEE>

Red Hat Developer Studio 12.0

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems. And this is his blog!

Meet. Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, Friday, June 14, 13

From Java EE to Jakarta EE. A user experience

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

Oracle 10g: Build J2EE Applications

@jbossdeveloper. explained

Want to read more? It s also available at your favorite book retailer, including the ibookstore, the Android Marketplace, and Amazon.com.

Building modern enterprise applications from scratch: lessons learned DOAG 2014 Dr. Clemens Wrzodek

Christian Schnapp Software Architect/ Developer(Full Stack) Attachments: Curriculum Vitae Projects

App Development Where should I go now? engage René Winkelmeyer midpoints GmbH

Improve and Expand JavaServer Faces Technology with JBoss Seam

Introduction to Java Platform, Enterprise Edition 7

Java Training Center, Noida - Java Expert Program

IBM WebSphere Application Server 8. Java EE 6 Feature Packs

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

How To Get Database Schema In Java Using >>>CLICK HERE<<<

JVA-163. Enterprise JavaBeans

presentation DAD Distributed Applications Development Cristian Toma

EclipseLink. Solutions Guide for EclipseLink Release 2.6. June Beta Draft

Curriculum vitae - Dusan Odalovic

WebLogic Feature Timeline

<Insert Picture Here> Productive JavaEE 5.0 Development

ECLIPSE PERSISTENCE PLATFORM (ECLIPSELINK) FAQ

JVA-563. Developing RESTful Services in Java

Fast Track to Java EE

CO Java EE 6: Develop Web Services with JAX-WS & JAX-RS

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

Java EE 6 & GlassFish v3 Paving the path for future. Arun Gupta Sun Microsystems, Inc.

Enterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009

Enterprise JavaBeans, Version 3 (EJB3) Programming

Red Hat Developer Studio 12.0

Specialized - Mastering JEE 7 Web Application Development

Web Application Development Using JEE, Enterprise JavaBeans and JPA

Hibernate Change Schema Name Runtime

The dialog boxes Import Database Schema, Import Hibernate Mappings and Import Entity EJBs are used to create annotated Java classes and persistence.

Architect Exam Guide. OCM EE 6 Enterprise. (Exams IZO-807,1ZO-865 & IZO-866) Oracle Press ORACLG. Paul R* Allen and Joseph J.

The Evolution of Java Persistence

Overview of Web Application Development

Eclipse MicroProfile: Accelerating the adoption of Java Microservices

Transcription:

Lessons learned from real-world deployments of Java EE 7 Arun Gupta, Red Hat @arungupta

DEVELOPER PRODUCTIVITY MEETING ENTERPRISE DEMANDS Java EE 7! More annotated POJOs! Less boilerplate code! Cohesive integrated platform! WebSockets! JSON! Servlet 3.1 NIO! REST! Batch! Concurrency! Simplified JMS

UN agency to protect and support refugees Help UN refugees to get benefits through secured card wallets Register, issue card, POS, ATM, Settlement Refugees get cash or use cards at merchants

Architecture

Technology JSON: Notification messages to agents (simple messages created using JSONBuilder, No dependency on 3rd party library) Batch: End of day tasks like posting of accounts, generation of reports, email to clients and banks Concurrency: Managed threads pool for work EJB: Backend services (locally and remotely) JAX-WS: Integration with WFP/UNHCR systems (exposed interface)

Technology JPA Stored procedure calls (Oracle and SQL Server) Two-way schema (model using JPA, generate schema, tune it, and regenerate entities) Change requests Default CDI enabled (ease of integration between different layers)

Additional Libraries PrimeFaces Great support in NetBeans Generator plugin (in NetBeans) that facilitate and streamline development of pages based on entity beans (e.g. Admin and Operations page) jquery stock library (streamline UI development in few lines)

Runtime GlassFish 4 2 instances deployed locally Mandate to use commercial app server Java SE 7 Oracle 11g and Microsoft SQL Server 2008

Tools NetBeans 7.4 Integrated GlassFish management Many templates to start from PrimeFaces generator plugin Great compatibility with HTML5

Acknowledgments @_tamanm

miles2run.org Track your daily runs Day or distance-based goals or community runs Social network for runners Its free

Architecture Diagram

Technology Diagram

Technology User Interface Thymeleaf: Java-based HTML5 templates AngularJS based multiple SPA, consuming JAX-RS endpoints Twitter Bootstrap theme Authentication using JAX-RS filters D3.js and C3.js for pretty graphs

Technology Middleware EJB + JPA services for RDBMS CDI services for NoSQL datastores Joda-Time API for working with Date Authenticating with various OAuth providers like Twitter using respective client API. Planning to upgrade to Keycloak. SFL4J with logback for logging

Additional Libraries Thymeleaf template engine for server side HTML5 views OAuth providers with client libraries Joda-Time for working with date/time jadira.usertype for storing date as UTC in database Database drivers for Redis and Mongo JUnit with Mockito for Unit testing Arquillian for integration testing

Runtime JDK 8 WildFly 8.1.0 Final: 2 scalable instances running on OpenShift with HA Proxy Load Balancer Data Stores MySQL - All business entities like Activity, Goal, User profile, etc. Redis - Generate timeline data using sorted sets and storing all counters MongoDB - Location based user recommendations, follower/ following stored using in-built array types

Tools IntelliJ IDEA Git as version control Jenkins - planned for CI and deployment

Wish list for Java EE 8 Support for NoSQL database Easy to add OAuth support to application and use existing OAuth providers Modern MVC framework with support for pluggable template engines

Acknowledgments @shekhargulati

tipi.camp Campground management Reservations, portal, email, monitoring, Targeting 25k+ campgrounds in Europe Customer-friendly booking portal On-premise or SaaS 1 or $1 / day

Architecture Diagram

Technology Diagram

Technology Presentation JavaServer Faces + Expression Language Security: JAAS principal + JDBC-realm Middle Tier EJB for business boundaries Servlets with JSON for web hooks: response from Paypal and Sendgrid JAX-RS for exposing API to partners

Technology Backend JPA + Bean Validation, use @Index for database generation Concurrency: Calculation of statistics and sending messages (Using @Startup @Singleton @Schedule, Sendgrid takes ~1-4 seconds) JDK-8 specific features: Lambdas, parallel streams, Date/Time API

General Principles All components used with @Inject bean-discovery-mode= all All named beans are JSF 2.2 @ViewScoped All boundaries are only @Stateless, no @Remote or @Local interfaces All modules in entity-control-boundary pattern

Entity-Control-Boundary Pattern

Additional Libraries PrimeFaces5 and Bootstrap for the responsive portal Sendgrid API for sending emails Flyway for database migrations Misc Apache Commons (FileUtils.writeByteArrayToFile, IOUtils.toByteArray) JUnit with Derby for testing

Runtime JDK 8 WildFly 8.1.0 - super, unique product MySQL 5.1.73

Tools IntelliJ 13.1 Jenkins loader.io for load testing Self-hosted Linux server in hetzner.de data center Planning to migrate to OpenShift in 2015

Wishlist for Java EE 8 Apache Commons Library Generics in Batch Processing @Temporal should work with LocalDate and LocalDateTime I have no great wishes, the technology is perfect. I m with java/ee7 very productive, i m and our customers are with java ee7 happy. With the technology, really everything is possible.

Acknowledgments @ChristophGapp @AdamBien

Resources Java EE 7 tutorial: http://docs.oracle.com/javaee/7/ tutorial/doc/home.htm ~200 code samples: github.com/javaee-samples/ javaee7-samples Lots of books