07/11/2022 - 07/14/2022
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,395.00
Enroll
08/15/2022 - 08/18/2022
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,395.00
Enroll
09/06/2022 - 09/09/2022
10:00 AM - 06:00 PM
Online Virtual Class
USD $2,395.00
Enroll
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
    • Our course WA1136 addresses the necessary topics
  • Understand JEE
    • Our course WA1718 addresses the necessary topics
Duration
  Four days.
Download Sample Labs

Outline for Architecting and Designing Java EE 6 Applications Training

Chapter 1 - 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

Chapter 2 - 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
  • Summary

Chapter 3 - 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
  • Summary

Chapter 4 - 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
  • Summary

Chapter 5 - 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
  • Summary

Chapter 6 - 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
  • Summary

Chapter 7 - 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
  • Summary

Chapter 8 - 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)
  • Summary

Chapter 9 - 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
  • Summary

Chapter 10 - 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
  • Summary

Chapter 11 - 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
  • Summary

Chapter 12 - 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
  • Summary

Chapter 13 - 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
  • Summary

Chapter 14 - 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

Chapter 15 - 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
  • Summary

Chapter 16 - 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
  • Summary

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
  • Summary

Appendix B - Transactions in EJB

  • Need for Transactions
  • Transactions
  • ACID Properties
  • Transaction Components
  • Distributed Transactions
  • Distributed Transaction Components - Two Phase Commit
  • Java Transaction API (JTA)
  • EJB Transaction Basics
  • Transaction Propagation
  • Transaction Outcome
  • Container-Managed Transaction
  • Transaction Attributes
  • Container-Managed Transaction Settings
  • Interacting with Container-Managed Transactions
  • Container-Managed Transaction – Example
  • Application Exceptions in Container-Managed Transactions
  • Transaction Attributes Support
  • Bean-Managed Transaction Management Type
  • Summary

Appendix C - Business Tier Patterns - 1

  • Facade Pattern
  • Business Object Pattern
  • Application Service Pattern
  • Service Locator Pattern
  • Remote Service Locator Example
  • Dependency Injection in Servlets
  • Business Delegate Pattern
  • Summary

Appendix D - Business Tier Patterns - 2

  • Data Transfer Object (DTO) Pattern
  • JPA Entity as DTO
  • JPA Lazy Loading
  • Message Facade
  • Fast Lane Pattern
  • Pagination (Value List Handler) Pattern
  • Version Number Pattern
  • Read for Update Pattern
  • Primary Key Generation
  • Data Access Object (DAO)
  • Summary