Enterprise Application Development In Java with AJAX and ORM

Similar documents
Research Article. ISSN (Print) *Corresponding author Lili Wang

WEB APPLICATION DEVELOPMENT. UNIT I J2EE Platform 9

Beginning POJOs. From Novice to Professional. Brian Sam-Bodden

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Performance Comparison of Persistence Frameworks

OUR COURSES 19 November All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan Göteborg Sweden

An introduction to creating JSF applications in Rational Application Developer Version 8.0

CrownPeak Java Web Hosting. Version 0.20

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

Portals, Portlets & Liferay Platform

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

Developing a Web Server Platform with SAPI Support for AJAX RPC using JSON

How To Write A Web Server In Javascript

JAVA ENTERPRISE IN A NUTSHELL. Jim Farley and William Crawford. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo.

Building Web Services with Apache Axis2

Google Web Toolkit. Introduction to GWT Development. Ilkka Rinne & Sampo Savolainen / Spatineo Oy

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

Consuming and Producing Web Services with WST and JST. Christopher M. Judd. President/Consultant Judd Solutions, LLC

JBoss SOAP Web Services User Guide. Version: M5

Rapid Application Development. and Application Generation Tools. Walter Knesel

Customer Bank Account Management System Technical Specification Document

Java Application Developer Certificate Program Competencies

SSC - Web development Model-View-Controller for Java web application development

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

How To Write A Web Framework In Java

Developing modular Java applications

Server-side OSGi with Apache Sling. Felix Meschberger Day Management AG 124

Programma corso di formazione J2EE

Migration Guide Software, Database and Version Migration

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

Complete Java Web Development

JEE Web Applications Jeff Zhuk

ARM-BASED PERFORMANCE MONITORING FOR THE ECLIPSE PLATFORM


COMPARISON BETWEEN SPRING AND ASP.NET FRAMEWORKS

Converting Java EE Applications into OSGi Applications

zen Platform technical white paper

Web Container Components Servlet JSP Tag Libraries

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

NetBeans IDE Field Guide

CHAPTER 1 - JAVA EE OVERVIEW FOR ADMINISTRATORS

ITS. Java WebService. ITS Data-Solutions Pvt Ltd BENEFITS OF ATTENDANCE:

ActiveVOS Server Architecture. March 2009

Server-Side Scripting and Web Development. By Susan L. Miertschin

Preface. Motivation for this Book

Net-WMS FP Net-WMS SPECIFIC TARGETED RESEARCH OR INNOVATION PROJECT. Networked Businesses. D.8.1 Networked architecture J2EE compliant

GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.

What is Data Virtualization?

Stock Trader System. Architecture Description

Credits: Some of the slides are based on material adapted from

Module 13 Implementing Java EE Web Services with JAX-WS

Framework Adoption for Java Enterprise Application Development

What is Data Virtualization? Rick F. van der Lans, R20/Consultancy

An Overview of Servlet & JSP Technology

Adobe ColdFusion 11 Enterprise Edition

Design and Functional Specification

CSI 2132 Lab 8. Outline. Web Programming JSP 23/03/2012

Web Applications. Originals of Slides and Source Code for Examples:

PROGRAMMERS GUIDE. Version 1.x

Building and Using Web Services With JDeveloper 11g

Apache Jakarta Tomcat

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Glassfish, JAVA EE, Servlets, JSP, EJB

WEB SERVICES. Revised 9/29/2015

DreamFactory & Modus Create Case Study

Adobe Systems Incorporated

Web-Based Information Systems

Oracle WebLogic Server 11g Administration

IT6503 WEB PROGRAMMING. Unit-I

KonyOne Server Prerequisites _ MS SQL Server

ORM IN WEB PROGRAMMING. Course project report for 6WW Erik Wang

Google App Engine f r o r J av a a v a (G ( AE A / E J / )

B. WEB APPLICATION ARCHITECTURE MODELS

PowerTier Web Development Tools 4

CACHÉ: FLEXIBLE, HIGH-PERFORMANCE PERSISTENCE FOR JAVA APPLICATIONS

Japan Communication India Skill Development Center

A Comparison of Web Development Technologies: WebObjects vs. ASP.NET

Core Java+ J2EE+Struts+Hibernate+Spring

Oracle Identity Analytics Architecture. An Oracle White Paper July 2010

Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i

Mike Boyarski Jaspersoft Product Marketing Business Intelligence in the Cloud

Introduction to Apache Roller. Matt Raible Apache Roller Committer June 2007

Budget Event Management Design Document

Service Oriented Architectures

A Comparison of Open Source Application Development Frameworks for the Enterprise

applications. JBoss Enterprise Application Platform

SSC - Web applications and development Introduction and Java Servlet (II)

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Japan Communication India Skill Development Center

Developing Java Web Services

Web Development in Java

Transcription:

Enterprise Application Development In Java with AJAX and ORM ACCU London March 2010 ACCU Conference April 2010 Paul Grenyer Head of Software Engineering p.grenyer@validus-ivc.co.uk http://paulgrenyer.blogspot.com Validus Paston House Princes Street Norwich NR3 1AZ www.validus-ivc.co.uk

Agenda About Me What is an Enterprise Application? Developing a Data Access Layer Integration Testing a Data Access Layer Developing an AJAX Presentation Layer with GWT Integrating Spring

About Me ACCU Committee Member Programming for over 20 years (C++, C# & Java) Head of Software Engineering at Validus IVC Ltd.

What is an Enterprise Application?

Enterprise Computing At its heart, enterprise computing is all about combining separate applications, services and processes into a unified system that is greater than the sum of its parts. - Jim Farley et al. in Java Enterprise in a Nutshell

Enterprise Application An Enterprise Application is a combination of other applications, services and processes that, when unified, form a application that is greater than the sum of its parts. - Paul Grenyer

Enterprise Application Architecture

Developing A Data Access Layer

Creating the Database SQL Scripts Build script Database drivers (Ivy)

Persisting Users JDBC Hibernate HibernateTemplate

What is Hibernate? Hibernate is a powerful Object Relational Mapping (ORM) persistence and query tool. Hibernate lets you develop persistent classes following object-oriented idiom - including association, inheritance, polymorphism, composition, and collections. Hibernate allows you to express queries in its own portable SQL extension (HQL), as well as in native SQL, or with an object-oriented Criteria and Example API.

Is HibernateTemplate Enough? No: It does not hide the client from the fact they are persisting the User object to a database. Unit testing is difficult.

Data Mappers A layer of mappers that moves data between objects and a database while keeping them independent of each other and the mapper itself.

Registry A well-known object that other objects can use to find common objects and services.

Managers An object that simplifies persisting of objects.

Data Access Layer

Integration Testing a Data Access Layer What is Integration Testing? Transactions Writing Integration Tests

Google Web Toolkit Develop in Java, compile to Java Script RPC Use exactly the same Java classes on client and server sides Unit test Single web page Smaller round trips to the server Development Mode Embedded Jetty Run in browser with plugin

Google Web Toolkit Project Files Module XML Files Inherited modules An entry point application class name Source path HTML Host Page Entry Point Class WAR Directory Static content you provide, such as the host HTML page GWT compiled output Java class files and jar files for server-side code A web.xml file that configures your web app and any servlet

GWT User Manager Application Widgets: User name Text Box Find Button Save Button Password Text Box Enabled Check Box Authorities List Box Authorities Text Box Add Authority Button Remove Authority Button Grid Layout

Introducing Spring Enterprise Application Framework Developed by Rod Johnson as a lightweight alternative to EJB Loosely coupled Annotations XML Spring Container / Application Context Dependency Injection (Inversion of Control) Aspect Orientated Programming Database support Transactions Security Testing support

Spring Application Context

What is a Spring Bean? A bean that is managed by the Spring Container:... Plain Old Java Object (POJO) Take advantage of Dependency Injection Take advantage of Spring Aspect Orientated Programming (AOP) Take advantage of Spring Transaction Management

Springifying an Application Instantiate a ContextLoaderListener Loads applicationcontext.xml and root creates the web application context. Web application context manages database connection pools and Hibernate session factory. Instantiate a DispatcherServlet Loads usermanagerservlet-servlet-xml and creates a second application context which has access to the root application context. Maps RPC calls onto handlers.

GwtHandlerMapping Implements AbstractDetectingUrlHandlerMapping At start-up, Spring passes the name of every Spring bean to the determineurlsforhandler method If the Spring bean implements RemoteService: It is considered to be a GWT RPC endpoint Its name is used to determine its URL Reflection only used at application start-up so no performance overhead

GwtServiceHandlerMapper Spring's DispatcherServlet passes RPC calls to Spring beans that implement HandlerAdapter to process. The handle method caches the incoming RPC request handler and calls dopost. processcall call gets called as a result of calling dopost and: Takes the incoming RPC call Decomposes the incoming RPC call Invokes the relevant method on the handler

Finally What an Enterprise Application is. Developed a Data Access Layer Integration Tested a Data Access Layer Developed an AJAX Presentation Layer with GWT Integrating Spring Any questions? See you in the bar!