This course provides the students with the prerequisite knowledge necessary to use J2EE in order to architect robust and maintainable enterprise applications.
Target Audience
Architects
Senior Designers
Development and Product Managers
Key Topics
- Fundamental Architectural Concepts
- - What is Architecture?
- - Architecture vs. Design
- - Qualities of Service (QoS)
- - Common Mechanisms
- - Architectural Description
- - What Architecture is Not
- - 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
- The Software Development Process
- - Software Development Methodologies
- - Waterfall Development Methodology
- - Iterative Development Methodology
- - Low Ceremony/High Ceremony
- - Comparison of Some Software Methodologies
- - Spirit of RUP: Well-Defined Software Engineering
- - Two Dimensions of the RUP Process
- - Dynamic Dimension of RUP: Lifecycle Phases & Milestone
- - Static Dimension of RUP: Modeling Elements
- - Static Dimension of RUP: Disciplines
- - Spirit of RUP: Iterative & Risk-Driven Approach
- - Inception Phase
- - Elaboration Phase
- - Develop Executable Architecture
- - Construction Phase
- - Transition Phase
- Data Transfer, Transactions and Security in Distributed Computing
- - Data Transfer in Java Local Computing
- - Data Transfer in Java Distributed Computing
- - Comparing Data Transfer in Local and Distributed Computing
- - Transaction Participants
- - Distributed Transactions
- - Two-Phase Commit
- - Transactions in J2EE
- - Transactions with Many Resources
- - JTA Java Transaction API
- - Client Tier Transactions
- - Web Tier Transactions
- - EJB Tier Transactions
- - CMT Transaction Attributes
- - Local Transactions
- - Compensating Transactions
- - Performance of Multiple Resource Managers
- - Isolation Levels
- - Security
- - Authentication
- - Protection Domains
- - Authentication in the Web Tier
- - Authentication in the EJB Tier
- - Component Identity
- - Authentication to the EIS Tier
- - Authorization
- - Declarative Authorization
- - Programmatic Authorization
- - Authorization in the Web Tier
- - Authorization in the EJB Tier
- - Mapping the Security Model
- - Message Protection
- - Message Integrity
- - Message Confidentiality
- - Auditing
- Optimizing for Scalability and Maintenance
- - What is Scalability?
- - Capacity Planning
- - Scalability in J2EE
- - Architecture and Scalability
- - Separate Web and EJB Servers
- - Throttling
- - Profiling and Monitoring
- - Clustering
- - Hardware, O/S, Network
- - Use of EJBs
- - SSL/TLS
- - Web Sessions
- - Clients
- - Concurrency Control
- - Technology Service Providers
- - Maintenance Goals
- - Java Service Provider Technologies
- - JDBC
- - JAXP
- - JNDI
- 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
- 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
- J2EE Technology Servers
- - Server Types in J2EE
- - J2EE Servers
- - J2EE Containers
- - Enterprise Information Systems
- - ERP Systems
- - Mainframe Transaction Processing Systems
- - Relational and Legacy Databases
- - Legacy Integration
- - Selecting a J2EE Server
- - Selecting a J2EE Server (Cont)
- - Packaging and Deployment Definitions
- - Roles and Responsibilities
- - EJB Modules
- - EJB Module Packaging
- - EJB Module Recommendations
- - Web Modules
- - Web Module Recommendations
- - Deployment Descriptors
- J2EE Technologies
- - Servlets
- - Servlets do the following
- - 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 J2EE
- - Web Service Deployment in J2EE
- - JCA (J2EE Connector Architecture)
- - Application Level Contract
- - System Level Contracts
- J2EE 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)
- Requirements Workflow
- - Requirements Workflow
- - What Is A Requirement?
- - Requirements Gathering
- - What Is Requirements Management?
- - Requirements Management
- - Timing of Requirements Workflow
- - The Cost Of Requirement Errors
- - The Game Plan Towards Building Quality Software
- - Problem Analysis and Understanding User Needs
- - Problem Analysis Steps
- - Business Models
- - Gather Requirements
- - Interviewing
- - Requirements Workshop
- - Brainstorming
- - Storyboarding
- - Use Cases
- - Prototyping
- - Requirements and the Unified Process
- - Recall: Inception Phase
- - Example of Use Cases
- - Recall: Elaboration Phase
- - Example of a Use Case Diagram
- - Delivery
- Analysis Workflow
- - Analysis Workflow
- - Motivation
- - Analysis Deliverables
- - Good Analysis Characteristics
- - Analysis in the Rational Unified Process
- - Analysis Workflow Steps
- - Class Analysis
- - What is an Analysis Class?
- - Analysis Class Relationships
- - Use Case Analysis
- - Interaction Diagrams
- - Example Analysis Sequence Diagram
- - Example Analysis Collaboration Diagram
- - Architectural Analysis
- - Packages
- - Package Practicality
- - Example Package Diagram
- - Post Analysis
- Design Workflow
- - Analysis and Design
- - Design Time
- - Design in RUP
- - Design vs. Analysis Model
- - One Model Or Two?
- - Design Workflow
- - Design Classes
- - Design Class Refinement
- - Class Removal
- - Refining Relationships
- - Example Design Class Diagram
- - Use Case Design
- - Example Design Sequence Diagram
- - Construction
- 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
- J2EE Technology Patterns
- - Patterns
- - Intercepting Filter Pattern
- - Front Controller Pattern
- - Command and Controller Strategy
- - Advantages of command and controller strategy
- - View Helper Pattern
- - Composite View Pattern
- - Solution 1 - use jsp:include
- - Solution 2 - use Struts templates
- - Solution 2 continued
- - How Business Delegate Works
- - Transfer Object Pattern
- - Role of TO in MVC
- - Composite Entity Pattern
- - An example
- - Class Diagram
- - Transfer Object Assembler Pattern
- - Value List Handler Pattern
- - Design Considerations for Value List Handler
- - Service Locator Pattern
- - Data Access Object (DAO) Pattern
- - DAO Implementation Guidelines
- - Session Façade Pattern
Objectives
- Upon completion of this course, you should be able to:
- - Use J2EE to solve common architectural problems
- - Apply J2EE 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
Required Skills/Experience
- To succeed fully in this course, students should be able to:
- - Understand OOAD
- - Understand J2EE
Fee: $2,000.00
Course Schedule:
Back to Course Description
Austin
Charlotte
Columbia
Hunt Valley
Lansing
Madison
Milwaukee
Minneapolis
Oak Brook
Oklahoma City
Phoenix
Raleigh
San Antonio
Schaumburg
Tulsa
Washington DC