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