WA1280 Architecting and Designing J2EE Applications Training and Courseware Course Outline

1. Fundamental Architectural Concepts

  • Topics
  • What is Architecture?
  • Architecture vs. Design
  • Qualities of Service (QoS)
  • Common Mechanisms
  • Architectural Description
  • What Architecture is Not
  • The Need for Architecture (Cont…)
  • The Architect
  • Roles of the Architect
  • Roles of the Architect (Cont…)
  • Skills of the Architect
 

2. System Architecture Development Guidelines

  • Topics
  • Security Risks
  • Security Risks (Cont...)
  • 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
  • Firewall Navigation (Cont...)
  • Secure Communication
  • Distributed Object Technologies
  • Distributed Object Technologies (Cont...)
  • What is a Transaction?
  • Bank Example
  • Multiple Users Sharing Data
  • ACID Properties of Transactions
  • Architecture
  • Reference Architecture
  • Patterns
  • Development Methodologies
  • Open Standards
  • Frameworks
 

3. The Software Development Process

  • Topics
  • 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
  • Inception Phase (Cont…)
  • Elaboration Phase
  • Elaboration Phase (Cont…)
  • Develop Executable Architecture
  • Construction Phase
  • Construction Phase (Cont…)
  • Transition Phase
  • Transition Phase (Cont…)
 

4. Data Transfer, Transactions and Security in Distributed Computing

  • Topics
  • Data Transfer in Java Local Computing
  • Data Transfer in Java Distributed Computing
  • Comparing Data Transfer in Local and Distributed Computing
  • Comparing Data Transfer in Local and Distributed Computing (Cont…)
  • 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
  • Isolation Levels (Cont…)
  • 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
 

5. Optimizing for Scalability and Maintenance

  • Topics
  • What is Scalability?
  • Capacity Planning
  • Scalability in J2EE
  • Architecture and Scalability
  • Separate Web and EJB Servers
  • Throttling
  • Profiling and Monitoring
  • Clustering
  • Clustering (Cont…)
  • 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
 

6. Quality of Service Requirements

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

7. Prototypes

  • Topics
  • What is a Prototype?
  • Conceptual Prototypes
  • Architectural Prototypes
  • Advantages of Prototyping
  • Advantages of Prototyping (Cont…)
  • 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
 

8. J2EE Technology Servers

  • Topics
  • Server Types in J2EE
  • J2EE Servers
  • J2EE Servers (Cont…)
  • 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
  • Deployment Descriptors (Cont…)
 

9. J2EE Technologies

  • Topics
  • 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
  • Event Listeners (Cont…)
  • 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
 

10. J2EE Technology Choices

  • Topics
  • 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
  • Model View Controller in the Web-Tier (Cont…)
  • Web Application Frameworks
  • Web Presentation Layout
  • Web Presentation Layout (Cont…)
  • Java Presentation Layout
  • Message-Oriented Middleware and JMS
  • Messaging Domains
  • Messaging Domains (Cont…)
  • Characteristics of MOM
  • Advantages of Asynchronous Communication (e.g. MOM)
  • Advantages of Synchronous Communication (e.g. RMI/IIOP)
 

11. Requirements Workflow

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

12. Analysis Workflow

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

13. Design Workflow

  • Topics
  • Analysis and Design
  • Design Time
  • Design in RUP
  • Design vs. Analysis Model
  • One Model Or Two?
  • Design Workflow
  • Design Classes
  • Design Class Refinement
  • Design Class Refinement
  • Class Removal
  • Refining Relationships
  • Example Design Class Diagram
  • Use Case Design
  • Example Design Sequence Diagram
  • Construction
 

14. Software Architecture

  • Topics
  • Architecture Description
  • Architectural Views
  • Architectural Views (Cont…)
  • Subsystems
  • Layers
  • Example: Subsystems with Layers
  • Components
  • Decomposing the System Into Components
  • Software Partitioning Strategies
  • Software Partitioning Strategies (Cont…)
  • Managing Dependencies
  • Managing Dependencies (Cont…)
  • Component Diagrams
  • Component Diagrams (Cont…)
  • Deployment Diagrams
  • Deployment Diagrams (Cont…)
  • Tiered Architectures
  • Tiered Architectures (Cont…)
  • Managing Complexity
  • Evaluating the Architecture
  • Evaluating the Architecture (Cont…)
 

15. J2EE Technology Patterns

  • Topics
  • 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
  • Business Delegate Pattern
  • 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