Architecting and Designing Java EE 6 Applications

This course provides the students with the prerequisite knowledge necessary to use JEE in order to architect robust and maintainable enterprise applications.

Objectives

Upon completion of this course, you should be able to:

§ Use JEE to solve common architectural problems

§ Apply JEE patterns effectively

§ Define the architect role and the deliverables

§ Understand the common problems faced in architecting large scale applications

§ Understand the advantages of using an iterative development process

Topics

§ Fundamental Architectural Concepts

§ System Architecture Development Guidelines

§ Software Development Processes

§ Data Transfer, Transactions and Security in Distributed Computing

§ Optimizing for Scalability and Maintenance

§ QoS Requirement

§ Prototype Development

§ JEE Servers

§ JEE Overview

§ JEE Technology choices

§ Requirements, analysis and design workflow

§ Defining the architecture

§ JEE Technology Patterns

Audience

§ Architects

§ Senior Designers

§ Development and Product Managers

Prerequisites

To succeed fully in this course, students should be able to:

§ Understand OOAD

§ Understand JEE

Duration

4 days.

Outline

FUNDAMENTAL ARCHITECTURAL CONCEPTS

§ What is Architecture?

§ Architecture vs. Design

§ Qualities of Service (QoS)

§ Common Mechanisms

§ Architectural Description

§ What Architecture is Not

§ The Need for Architecture

§ The Architect

§ Roles of the Architect

§ Skills of the Architect

SYSTEM ARCHITECTURE DEVELOPMENT GUIDELINES

§ Security Risks

§ Performance & Scalability Risks

§ Availability & Complexity Risks

§ Compatibility & Control Risks

§ Network Considerations

§ Latency and Bandwidth

§ Minimize Number of Network Calls

§ Minimize Network Call Size

§ Firewall Navigation

§ Secure Communication

§ Distributed Object Technologies

§ What is a Transaction?

§ Bank Example

§ Multiple Users Sharing Data

§ ACID Properties of Transactions

§ Architecture

§ Reference Architecture

§ Patterns

§ Development Methodologies

§ Open Standards

§ Frameworks

QUALITY OF SERVICE REQUIREMENTS

§ What are Quality of Service Requirements?

§ Qualities of Service and Design

§ Quality of Service Inventory

§ Performance

§ Scalability

§ Reliability

§ Availability

§ Extensibility

§ Maintainability

§ Manageability

§ Security

§ Cultural Adaptability

§ Portability

§ Testability

§ Usability

§ Upgradeability

§ Recoverability

§ Prioritizing Quality of Service Requirements

§ Inspecting QoS Requirements for Trade-off Opportunities

§ Quality of Service Reviews

SOFTWARE ARCHITECTURE TIERS

§ System Architecture

§ Good Architecture

§ Cave Drawings to Modern Day

§ Information Systems Evolution

§ Continued Evolution

§ Present Day

§ Client-Server Computing

§ Client-Server Pros/Cons

§ Client-Server Example

§ Tiered Architectures

§ Three-tier Architecture

§ Three-tier Pros/Cons

§ Three-tier Example

§ N-Tier Architecture

§ N-Tier Pros/Cons

§ N-Tier Example

CLIENT TIER TECHNOLOGIES

§ HTML5

§ HTML5 Main Objectives

§ Which Features of HTML 4 Changed

§ New Features of HTML 5

§ New Features of HTML 5

§ Browser-side Data Storage

§ Declaring HTML5

§ Detecting Support for HTML5

§ HTML5 Input Validation Example

§ HTML5 Date Form Widget

§ The Document Object Model

§ The Document Object Model

§ What the DOM is Not

§ Cascading Style Sheets

§ CSS Levels

§ What is JavaScript?

§ Working with JavaScript

§ Working with JavaScript

§ What is jQuery?

§ Benefits of Using a JavaScript Library

§ jQuery Example

§ jQuery Mobile

§ Apache Cordova (Adobe PhoneGap)

§ Apache Cordova History

§ Bootstrap

§ Responsive Web Design

§ Why Responsive Web Design Matters

§ Responsive Web Design Components

§ Mobile First

§ Backbone.js

§ Backbone Modules

§ MVC and Backbone

§ AngularJS

MANAGING CLIENT TIER CONSIDERATIONS

§ Understand Client-tier Concerns

§ Types of Clients

§ JEE Client Responsibilities

§ Presenting the User Interface

§ Validating User Inputs

§ Communicating with the Server

§ Managing Conversational State

§ Understand Client-Tier Security

§ Client-Tier Security

§ Compare/Contrast User Interface Devices

§ Application of Reuse to the Client Tier

§ Strategies for Deploying Java Desktop Applications

§ Applet Usage

JEE TECHNOLOGY SERVERS

§ Server Types in JEE

§ JEE Servers

§ Java EE 6 Profiles

§ Popular Java EE Application Servers

§ Java EE Blueprint

§ JEE Containers

§ Enterprise Information Systems

§ ERP Systems

§ Mainframe Transaction Processing Systems

§ Relational and Legacy Databases

§ Legacy Integration

§ Selecting a JEE Server

§ Packaging and Deployment Definitions

§ Roles and Responsibilities

§ EJB Modules

§ EJB Module Packaging

§ Web Modules

§ Web Module Recommendations

§ Deployment Descriptors

JEE TECHNOLOGIES

§ Major Programming Technologies of Java EE

§ Servlets

§ Servlets Do the Following

§ The Web Container

§ JSP (Java Server Pages)

§ JSP Elements

§ JSP Standard Tag Library (JSTL)

§ Servlet Filters

§ Uses for Filters

§ JavaServer Faces (JSF)

§ JSF 2.0

§ Contexts and Dependency Injection for Java (CDI)

§ CDI Example

§ Bean Validation

§ Java Message Service (JMS)

§ What are EJBs?

§ Main Characteristics of EJBs

§ EJB Container

§ Enterprise Java Beans

§ EJBs are Simple!

§ Session Beans

§ Remote vs. Local Session EJBs

§ Asynchronous EJB

§ Singleton EJB

§ Message-Driven Beans

§ Data Persistence

§ Java Persistence API

§ Entities

§ Session EJB vs JPA Entities

§ Java Web Service Implementation Choices

§ Java Architecture for XML Binding (JAXB)

§ Java SOAP Web Services with JAX-WS

§ Java REST Web Services with JAX-RS

§ JCA (JEE Connector Architecture)

JEE TECHNOLOGY CHOICES

§ Client Session State

§ Client Managed State

§ Web Tier Managed State

§ EJB Tier Managed State

§ Business Objects

§ When to Use EJB

§ Persistence Data Options

§ Client Types

§ Web Browser Clients

§ Java Clients

§ Model View Controller

§ Model View Controller in the Web-Tier

§ Web Application Frameworks

§ Web Presentation Layout

§ Java Presentation Layout

§ Message-Oriented Middleware and JMS

§ Messaging Domains

§ Characteristics of MOM

§ Advantages of Asynchronous Communication (e.g. MOM)

§ Implementing Asynchronous EJBs

§ Advantages of Synchronous Communication (e.g. RMI/IIOP)

§ Remote Access to Business Logic

SOA CONCEPTS

§ Anatomy of an Enterprise

§ IT Nightmare

§ Understanding by Analogy

§ Service Oriented Architecture

§ Componentization and Reuse

§ Benefits of Service Orientation

§ Defining SOA

§ Aligning the Enterprise

§ What’s a Service?

§ Service Actors

§ Service Layering

§ Is SOA a Flash in the Pan?

§ Service Orienting the Enterprise

§ Service Oriented Thinking

INTRODUCTION TO JAX-WS

§ What is JAX-WS?

§ Advantages of JAX-WS

§ Why Do We Need a Programming Model?

§ Basic Java to WSDL Mapping

§ Developing a Service Provider

§ The Service Implementation Class

§ The Service Endpoint Interface (SEI)

§ Service Implementation Options

§ Developing a Consumer

§ Static Client Development

§ The Service Class

§ The BindingProvider Interface

REST AND JAX-RS OVERVIEW

§ Many Flavors of Services

§ Where SOAP Shines

§ Where REST Shines

§ REST vs SOAP Summary

§ Understanding REST

§ Principles of RESTful Services

§ Example: Catalog Service

§ Create a New Product

§ Retrieve a Product

§ Update a Product

§ Delete a Product

§ Introduction to JAX-RS

§ The Resource Class

§ The Entity Class

§ Retrieve a Product

§ Create a Product

§ Update and Delete

§ Content Negotiation

§ Retrieving a JSON Representation

§ Sending a JSON Representation

§ REST Service Clients

§ AJAX and XML

§ AJAX and JSON

§ Java REST Clients

JEE SECURITY

§ JEE Authentication Mechanisms

§ Basic Authentication

§ Form-based Authentication

§ Client Certificate Authentication

§ JEE Authorization

§ Sample Role Mapping

§ Declarative Security on Web Resources

§ Programmatic Security on Web Resources

§ Security Role Reference

§ Defining Security Roles Using Annotations

§ Delegation

§ Declarative Security on EJB Resources

§ Protecting Beans Using Annotations

§ Protecting Beans Using the Deployment Descriptor

§ Programmatic Security on EJB Application

§ Delegation

WEB SERVICES SECURITY (WS-SECURITY)

§ The Challenges

§ Public Key Infrastructure (PKI)

§ Digital Signature

§ Certificates

§ Overview of Web Services Security

§ SOAP Message Security

§ Message Integrity

§ Message Confidentiality

§ Symmetric Encryption Example

§ Authentication Using Identity Token

§ Authentication

§ Transport Level Security

§ Audit Tracking

§ Identity Assertion Using SAML

§ SAML SOAP Example

PROTOTYPES

§ What is a Prototype?

§ Conceptual Prototypes

§ Architectural Prototypes

§ Advantages of Prototyping

§ Deciding Whether to Build a Prototype or Not

§ Prototypes and the Software Development Lifecycle

§ Prototype Roles and Responsibilities

§ Throw-away vs. Evolutionary Prototypes

§ Spikes

§ Testing a Prototype

DESCRIBING AND EVALUATING SOFTWARE ARCHITECTURE

§ Architecture Description

§ Architectural Views

§ Subsystems

§ Layers

§ Example: Subsystems with Layers

§ Components

§ Decomposing the System Into Components

§ Software Partitioning Strategies

§ Managing Dependencies

§ Component Diagrams

§ Deployment Diagrams

§ Tiered Architectures

§ Managing Complexity

§ Evaluating the Architecture