Consulting Training Blog Careers About Us Contact Us

Architecting and Designing Java EE Applications Training

Course ID: WAS1280
Duration: 4 Days

Upcoming Classes

Sorry, nothing scheduled right now. Click the Get Notified button below to be alerted when a class is scheduled.

Get Notified

On Site/Private

Can't find a class that fits right for you? Contact us to inquire about scheduling your own private class

Contact Us

Description

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

Bring This Course To You

For groups of 5 or more, let Intertech bring this course to your location. Customized versions tailored towards your objectives are also available.

Learn More

Learning Objectives

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

  • Use Java EE to solve common architectural problems
  • Apply Java EE 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

Prerequisites

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

  • Understand OOAD
  • Understand Java EE

Course 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
  • Present Day
  • Client-Server Computing
  • Client-Server Pros/Cons
  • Tiered Architectures
  • Single-tier Architecture
  • Single-tier Pros/Cons
  • Two-tier Architecture
  • Two-tier Pros/Cons
  • Three-tier Architecture
  • three-tier Pros/Cons
  • N-Tier Architecture
  • N-Tier Pros/Cons

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
  • Compare/contrast user interface devices
  • Application of reuse to the client tier
  • Strategies for deploying Java desktop applications

Java EE Technology Servers

  • Server Types in Java EE
  • Java EE Servers
  • Java EE Containers
  • Enterprise Information Systems
  • ERP Systems
  • Mainframe Transaction Processing Systems
  • Relational and Legacy Databases
  • Legacy Integration
  • Selecting a Java EE Server
  • Packaging and Deployment Definitions
  • Roles and Responsibilities
  • EJB Modules
  • EJB Module Packaging
  • EJB Module Recommendations
  • Web Modules
  • Web Module Recommendations
  • Deployment Descriptors

Java EE Technologies

  • Servlets
  • The Web Container
  • Servlet API
  • Session Management
  • Servlet Thread Issues
  • JSP (Java Server Pages)
  • How JSPs Work
  • JSP Elements
  • Using JavaBeans in JSP
  • Custom Tags
  • Filters
  • Filters and the Processing Pipeline
  • Filter API
  • Uses for Filters
  • Event Listeners
  • What are EJBs?
  • Main Characteristics of EJBs
  • EJB Architecture Components
  • EJB Container
  • EJB Container - Persistence
  • EJB Container - Transactions
  • Enterprise Java Beans
  • Session Beans
  • Entity Beans
  • Message-Driven Beans
  • EJB Classes and Interfaces
  • EJB Container - Relationships
  • How Remote EJBs Work
  • Remote vs. Local EJBs
  • Web Services
  • Web Service Implementation in Java EE
  • Web Service Deployment in J2EE
  • JCA (Java EE Connector Architecture)
  • Application Level Contract
  • System Level Contracts 

Java EE Technology Choices

  • Client Session State
  • Client Managed State
  • Web Tier Managed State
  • EJB Tier Managed State
  • Business Objects
  • When to Use EJB
  • When to Use Entity Beans
  • CMP vs. BMP
  • 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)
  • Advantages of Synchronous Communication (e.g. RMI/IIOP)

Java Connector Architecture (JCA)

  • JCA Overview
  • Resource Adapter
  • System Contracts
  • Outbound Contracts
  • Inbound Contracts
  • Lifecycle Contracts
  • Common Client Interface (CCI)
  • Advantages of JCA
  • Resource Adapter Packaging
  • Connection Management
  • Transaction Management
  • Transaction Scenario
  • Client Interaction

SOA Concepts

  • Anatomy of an Enterprise
  • IT Nightmare
  • Understanding by Analogy
  • Service Oriented Architecture
  • Componentizaton and Reuse
  • Benefits of Service Orientation
  • Defining SOA
  • Aligning the Enterprise
  • What is a Service?
  • Service Actors
  • Service Layering
  • Is SOA a Flash in the Pan?
  • Service Orienting the Enterprise
  • Service Oriented Thinking

JAX-WS Introduction

  • JAX Attack
  • JAX-WS Origins
  • JAX-WS Architecture and Tools
  • Providing a Service
  • Service Source (Option 1)
  • Service-enabling Java
  • Service Source (Option 2)
  • Calling a Service
  • Client Source (Option 1)
  • Client Source (Option 2)
  • Advanced Features

Java EE Security

  • JEE Authentication mechanisms
  • Basic authentication
  • Form-based authentication
  • Client certificate authentication
  • JEE Authorization
  • 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 Applications
  • 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
  • Components
  • Decomposing the System Into Components
  • Software Partitioning Strategies
  • Managing Dependencies
  • Component Diagrams
  • Deployment Diagrams
  • Tiered Architectures
  • Managing Complexity
  • Evaluating the Architecture

Appendix A: Data Transfer in Distributed Computing

  • Data Transfer in Java Local Computing
  • Data Transfer in Java Distributed Computing
  • Comparing Data Transfer in Local and Distributed Computing

Appendix B: Transactions

  • Need for Transactions
  • Transactions
  • ACID Properties
  • Transaction Components
  • Distributed Transactions
  • Distributed Transaction Components - Two Phase Commit
  • Java Transaction API (JTA)
  • Object Transaction
  • EJB Transactions Basics
  • Transaction Propagation
  • Transaction Outcome
  • Container Managed Transaction
  • Container Managed Transaction Settings
  • Interacting with Container Managed Transactions
  • Transaction Attributes Support
  • Bean Managed Transaction
  • Client Managed Transaction
  • Transaction Isolation
  • Isolation Level

Appendix C: Business and Integration Tier Patterns

  • Business Delegate Pattern
  • How it Works
  • Data Transfer Object Pattern
  • DTO Example (Output)
  • DTO Example (Input)
  • Role of DTO in MVC
  • Access Beans
  • Types of Access Beans
  • Data Class Access Bean
  • Data Class Programming Model
  • Access Bean Constructor
  • Generating Access Beans
  • Generating a Data Class
  • Generating an EJB Factory
  • Using EJB Factory and Data Class
  • Deleting the Access Bean
  • Value Object Pattern
  • Multiple Value Objects
  • Best Practice derive EJB from the value object
  • Composite Entity Pattern
  • Class Diagram
  • How the client interacts
  • Value Object Assembler
  • Value List Handler
  • How Does it Work?
  • Design Considerations
  • Service Locator
  • Data Access Object (DAO)
  • DAO Implementation Guidelines
  • Service Activator
  • MDB - Integrating JMS and EJB
  • Message-Driven Beans are Different from other EJBs
  • Message-Driven Beans are Stateless
  • Message-Driven Bean Interfaces
  • Message Counter
  • Class Message Counter
  • Processing the Message
  • Deployment Descriptor Entry

Free Resources from Intertech

Complete Guide to Becoming a Full Stack Developer

Free Book Chapter: Spring Web

Free Book Chapter: Java

X