Online Sample Chapter
SCEA for Java EE Exam Prep: Web Tier Technologies
Table of Contents
Acknowledgments . . . xv
About the Authors . . . xvii
Chapter 1 What Is Architecture? . . . 1
Introduction . . . 1
Prerequisite Review . . . 1
Discussion . . . 2
Understanding Architecture . . . 2
Role of the Architect . . . 5
More Detail on the Exam Itself . . . 6
Part I: Multiple Choice . . . 7
Part II: Solving the Business Problem . . . 8
Part III: Defending Your Solution . . . 9
Preparing for the Exam . . . 10
Preparing for Part I . . . 10
Preparing for Part II . . . 11
Preparing for Part III . . . 11
Essential Points . . . 11
Review Your Progress . . . 11
Chapter 2 Architecture Decomposition . . . 13
Introduction . . . 13
Prerequisite Review . . . 14
Discussion . . . 14
Decomposition Strategies . . . 14
Layering . . . 15
Distribution . . . 15
Exposure . . . 16
Functionality . . . 16
Generality . . . 16
Coupling and Cohesion . . . 16
Volatility . . . 16
Configuration . . . 16
Planning and Tracking . . . 17
Work Assignment . . . 17
Tiers . . . 17
Client . . . 17
Web . . . 18
Business . . . 18
Integration . . . 18
Resource . . . 18
Layers . . .18
Application . . . 19
Virtual Platform (Component APIs) . . . 19
Application Infrastructure (Containers) . . . 19
Enterprise Services (OS and Virtualization) . . . 19
Compute and Storage . . . 19
Networking Infrastructure . . . 20
Service-Level Requirements . . . 20
Performance . . . 20
Scalability . . . 20
Reliability . . . 21
Availability . . . 21
Extensibility . . . 22
Maintainability . . . 22
Manageability . . . 22
Security . . . 22
Impact of Dimensions on Service-Level Requirements . . . 23
Capacity . . . 23
Redundancy . . . 23
Modularity . . . 23
Tolerance . . . 24
Workload . . . 24
Heterogeneity . . . 24
Common Practices for Improving Service-Level Requirements . . . 24
Introducing Redundancy to the System Architecture . . . 24
Improving Performance . . . 27
Improving Availability . . . 28
Improving Extensibility . . . 29
Improving Scalability . . . 30
Tiers in Architecture . . . 30
Two-Tier Systems . . . 31
Advantages . . . 31
Disadvantages . . . 31
Three- and Multi-Tier Systems . . . 31
Advantages . . . 32
Disadvantages . . . 32
Essential Points . . . 32
Review Your Progress . . . 33
Chapter 3 Web Tier Technologies . . . 35
Introduction . . . 35
Prerequisite Review . . . 36
Model View Controller (MVC) . . . 36
Web Container . . . 36
Servlets . . . 37
Filters . . . 38
Listeners . . . 39
JavaServer Pages (JSP) . . . 39
Java Standard Tag Library (JSTL) . . . 40
Unified Expression Language (EL) . . . 40
Managing Sessions . . . 40
JavaServer Faces (JSF) . . . 41
Templating Frameworks . . . 41
Web Frameworks . . . 42
Discussion . . . 42
JSPs and Servlets–Standard Uses . . . 42
JSF–Standard Uses . . . 43
Web-Centric Implementations . . . 43
EJB-Centric Implementations . . . 44
Rationale for Choosing Between EJB-Centric and Web-Centric Implementations . . . 45
The Future of Client-Server Communication . . . 46
Essential Points . . . 46
Review Your Progress . . . 47
Chapter 4 Business Tier Technologies . . . 51
Introduction . . . 51
Prerequisite Review . . . 52
Enterprise Java Bean . . . 53
Session Bean . . . 54
Stateless Session Bean . . . 54
Stateful Session Bean . . . 55
Entity Beans . . . 56
CMP Entity Bean . . . 56
BMP Entity Bean . . . 57
Entity Class . . . 57
Persistence Strategies . . . 58
Message-Driven Bean . . . 58
Discussion . . . 59
EJB Advantages and Disadvantages . . . 59
Scalability . . . 59
Security . . . 60
Contrasting Persistence Strategies . . . 60
Ease of Development . . . 60
Performance . . . 60
Extensibility . . . 61
EJB and Web Services . . . 61
EJBs as Web Service End Points . . . 61
EJBs Consuming Web Services . . . 61
Advantages and Disadvantages . . . 62
EJB 3 . . . 62
Ease of Development . . . 63
Container in EJB 3 . . . 63
JPA in EJB 3 . . . 63
Essential Points . . . 64
Review Your Progress . . . 65
Chapter 5 Integration and Messaging . . . 69
Introduction . . . 69
Prerequisite Review . . . 70
Web Services . . . 71
SOAP . . . 71
WSDL . . . 72
JAX-RPC . . . 72
JAX-WS . . . 72
JAXB . . . 72
JAXR . . . 73
JMS . . . 73
JCA . . . 74
Discussion . . . 75
Java to Java Integration . . . 75
Java Messaging Service (JMS) . . . 76
Java to Non-Java Integration . . . 76
Web Services . . . 76
Java Connector Architecture (JCA) . . . 77
Essential Points . . . 78
Review Your Progress . . . 78
Chapter 6 Security . . . 83
Introduction . . . 83
Prerequisite Review . . . 84
JRE . . . 85
JAAS . . . 85
Credential . . . 85
Principal . . . 86
Authentication . . . 86
Authorization . . . 86
Discussion . . . 86
Client-Side Security . . . 87
Server-Side Security . . . 88
EJB Container . . . 88
Web Container . . . 88
Putting the EJB Container and Web Container Together . . . 89
Web Service Security . . . 90
How Security Behavior Is Defined . . . 91
Declarative Security . . . 91
Programmatic Security . . . 92
Commonly Encountered Security Threats . . . 93
Defining a Security Model . . . 94
Essential Points . . . 95
Review Your Progress . . . 95
Chapter 7 Applying Patterns . . . 99
Introduction . . . 99
Prerequisite Review . . . 100
Discussion . . . 101
Creational Patterns . . . 101
Abstract Factory Pattern . . . 101
Builder Pattern . . . 103
Factory Method Pattern . . . 104
Prototype Pattern . . . 105
Singleton Pattern . . . 106
Structural Patterns . . . 107
Adapter Pattern . . . 107
Bridge Pattern . . . 108
Composite Pattern . . . 109
Decorator Pattern . . . 111
Façade Pattern . . . 112
Flyweight Pattern . . . 113
Proxy Pattern . . . 114
Behavioral Patterns . . . 115
Chain of Responsibility Pattern . . . 115
Command Pattern . . . 116
Interpreter Pattern . . . 117
Iterator Pattern . . . 118
Mediator Pattern . . . 119
Memento Pattern . . . 120
Observer Pattern . . . 121
State Pattern . . . 122
Strategy Pattern . . . 123
Template Method Pattern . . . 124
Visitor Pattern . . . 125
Core Java EE Patterns . . . 126
Presentation Tier . . . 126
Intercepting Filter . . . 126
Context Object . . . 127
Front Controller . . . 128
Application Controller . . . 129
View Helper . . . 129
Composite View . . . 130
Dispatcher View . . . 131
Service to Worker . . . 132
Business Tier . . . 132
Business Delegate . . . 133
Service Locator . . . 133
Session Façade . . . 134
Application Service . . . 135
Business Object . . . 136
Composite Entity . . . 136
Transfer Object . . . 137
Transfer Object Assembler . . . 138
Value List Handler . . . 139
Integration Tier . . . 139
Data Access Object . . . 140
Service Activator . . . 140
Domain Store . . . 141
Web Service Broker . . . 142
Essential Points . . . 143
Review Your Progress . . . 146
Chapter 8 Documenting an Architecture . . . 149
Introduction . . . 149
Prerequisite Review . . . 149
Discussion . . . 150
Building Blocks of UML . . . 150
Elements . . . 151
Structural Elements . . . 151
Behavioral Elements . . . 152
Grouping Element . . . 153
Annotational Elements . . . 153
Relationships . . . 154
Common Mechanisms . . . 155
Specifications . . . 155
Adornments . . . 155
Common Divisions . . . 156
Extensibility Mechanisms . . . 156
UML Diagrams . . . 157
Structure Diagrams . . . 157
Class Diagram . . . 157
Component Diagram . . . 157
Deployment Diagram . . . 159
Package Diagram . . . 159
Behavior Diagrams . . . 160
Activity Diagram . . . 160
Statechart Diagram . . . 161
Use-Case Diagram . . . 162
Interaction Diagrams . . . 163
Essential Points . . . 164
Review Your Progress . . . 164
Chapter 9 Tackling Parts II and III . . . 167
Introduction . . . 167
Prerequisite Review . . . 167
Discussion . . . 168
Scenario . . . 168
Worked Solution . . . 170
Class Diagram . . . 170
Component Diagram . . . 173
Deployment Diagram . . . 174
Sequence Diagrams . . . 176
Comments on Diagrams . . . 178
Identified Risks and Mitigations . . . 178
Part III–Defending Your Architecture . . . 179
Essential Points . . . 180
Index . . . 181