HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Definitive, Comprehensive SCEA Exam Prep–Straight from Sun’s Exam Developers!
This book delivers complete, focused review for Sun’s new Sun Certified Enterprise Architect (SCEA) for Java EE certification exam–straight from two of the exam’s creators! SCEA lead developer/assessor Mark Cade and SCEA lead developer/assessor Humphrey Sheil offer powerful insights, real-world architectural case studies, and challenging sample questions that systematically prepare you for the actual exam. For every question, the authors show why the right answers are right–and why the other answers are wrong. Cade and Sheil cover every SCEA exam topic, skill, and technique, including:
The authors also present detailed guidance for handling every element of the SCEA exam–including your development and defense of a complete real-world architectural solution.
SCEA for Java EE Exam Prep: Web Tier Technologies
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