| |
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
|
| |
- Objectives
- 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
- Summary
|
| |
3. Quality of Service Requirements
|
| |
- Objectives
- 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
|
| |
4. Software Architecture Tiers
|
| |
- Objectives
- 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
- Single-tier Architecture
- Single-tier Pros/Cons
- Single-tier Example
- Two-tier Architecture
- Two-tier Pros/Cons
- Two-tier Example
- Three-tier Architecture
- Three-tier Pros/Cons
- Three-tier Example
- N-Tier Architecture
- N-Tier Pros/Cons
- N-Tier Example
- Summary
|
| |
5. Managing Client Tier Considerations
|
| |
- Topics
- 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 (continued)
- Compare/contrast user interface devices
- Application of reuse to the client tier
- Strategies for deploying Java desktop applications
- Strategies - continued
- Summary
|
| |
6. JEE Technology Servers
|
| |
- Objectives
- Server Types in JEE
- JEE Servers
- JEE Servers (Cont )
- JEE Containers
- Enterprise Information Systems
- ERP Systems
- Mainframe Transaction Processing Systems
- Relational and Legacy Databases
- Legacy Integration
- Selecting a JEE Server
- Selecting a JEE 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 )
- Summary
|
| |
7. JEE Technologies
|
| |
- Objectives
- 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
- Remote vs. Local EJBs
- Web Services
- Web Service Implementation in JEE
- Web Service Deployment in JEE
- JCA (JEE Connector Architecture)
- Application Level Contract
- System Level Contracts
- Summary
|
| |
8. JEE Technology Choices
|
| |
- Objectives
- 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)
- Summary
|
| |
9. Java Connector Architecture (JCA)
|
| |
- Objectives
- 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
- Summary
|
| |
10. SOA Concepts
|
| |
- Objectives
- 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
|
| |
11. JAX-WS Introduction
|
| |
- Objectives
- 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
- Summary
|
| |
12. JEE Security
|
| |
- Objectives
- 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 Application
- Delegation
- Summary
|
| |
13. 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
|
| |
14. Prototypes
|
| |
- Objectives
- 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
- Summary
|
| |
15. Describing and Evaluating Software Architecture
|
| |
- Objectives
- 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 )
- Summary
|
| |
Appendix A. Data Transfer 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 )
|
| |
Appendix B. Transactions
|
| |
- Objectives
- Need for Transactions
- Transactions
- ACID Properties
- Transaction Components
- Distributed Transactions
- Distributed Transaction Components - Two Phase Commit
- Java Transaction API (JTA)
- Object Transaction
- EJB Transaction Basics
- Transaction Propagation
- Transaction Outcome
- Container Managed Transaction
- Container Managed Transaction Settings
- Interacting with Container Managed Transactions
- Container Managed Transaction - Example
- Transaction Attributes Support
- Bean Managed Transaction
- Bean Managed Transaction - Example
- Client Managed Transaction
- Transaction Isolation
- Isolation Level
- Summary
|
| |
Appendix C. Business and Integration Tier Patterns
|
| |
- Objectives
- 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
- An example
- Class Diagram
- How the client interacts
- Value Object Assembler
- Value List Handler
- How does it work?
- How does it work - continued
- 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
- Example: Message Counter
- Class MessageCounter
- Processing the Message
- Deployment Descriptor Entry
- Summary
|