Sun Certified Enterprise Architect for Java EE Study Guide 2nd Edition Mark Cade 2024 scribd download
Sun Certified Enterprise Architect for Java EE Study Guide 2nd Edition Mark Cade 2024 scribd download
https://ebookgate.com
https://ebookgate.com/product/sun-certified-
enterprise-architect-for-java-ee-study-guide-2nd-
edition-mark-cade/
https://ebookgate.com/product/sun-certified-enterprise-architecture-
for-j2ee-technology-study-guide-mark-cade/
ebookgate.com
https://ebookgate.com/product/sun-certified-programmer-developer-for-
java-2-study-guide-exam-310-035-310-027-1st-edition-kathy-sierra/
ebookgate.com
https://ebookgate.com/product/scja-sun-certified-java-associate-study-
guide-exam-cx-310-019-certification-press-1st-edition-robert-liguori/
ebookgate.com
https://ebookgate.com/product/sun-certified-web-component-developer-
study-guide-exams-310-081-310-082-oracle-press-1st-edition-david-
bridgewater/
ebookgate.com
https://ebookgate.com/product/cissp-certified-information-systems-
security-professional-study-guide-2nd-edition-ed-tittle/
ebookgate.com
https://ebookgate.com/product/oca-oracle-certified-associate-java-
se-8-programmer-i-study-guide-exam-1z0-808-1st-edition-jeanne-
boyarsky/
ebookgate.com
https://ebookgate.com/product/togaf-9-certified-study-guide-first-
edition-impression-edition-rachel-harrison/
ebookgate.com
https://ebookgate.com/product/cbap-ccba-certified-business-analysis-
study-guide-1st-edition-susan-weese/
ebookgate.com
Sun Certified Enterprise Architect
for Java™ EE Study Guide
Second Edition
I wish the reader of this book the very best toward passing the SCEA exam,
and in the process, becoming a better architect. Better architects create better
designs and code—and that’s what we all strive to do.
—Humphrey Sheil
This page intentionally left blank
Contents
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Authors . . . . . . . . . . . . . . . . . . . . . . . xvii
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
Contents ix
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
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
xii Contents
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Acknowledgments
Mark wishes to thank all of his past colleagues who have been great
sounding boards in developing material for creating architectures.
Humphrey would like to thank the Java EE community, inside and out-
side Sun Microsystems, for building and growing the JEE platform to
where it is today. A rich, vibrant programming platform needs good
design leadership to take it forward, and that is what the SCEA certifica-
tion, and this book, strives to engender.
The authors would also like to thank all those who provided great feed-
back to help improve this book, including Ken Saks and Chris Herron.
This page intentionally left blank
About the Authors
Mark Cade is a lead developer and assessor for the Sun Certified Enterprise
Architect for Java EE exam. He has more than 20 years of experience as a software
engineer and has extensive experience creating architectures for Java EE solutions
for Fortune 500 companies. He worked at the Sun Microsystems Java Center as a
Senior Java Architect until 2006. He is currently employed at BigFix.
Humphrey Sheil is a lead developer and assessor for the Sun Certified Enterprise
Architect for Java EE exam. With a background specializing in enterprise architec-
ture and integration in the United States and Europe, he holds a M.Sc. and B.Sc. in
Computer Science from University College Dublin. He is currently the CTO at
Comtec Group.
This page intentionally left blank
C H A P T E R 1
What Is Architecture?
Introduction
Prerequisite Review
This book assumes a certain level of knowledge for the readers. If you do
not have the prerequisite knowledge, you must gain this knowledge else-
where before proceeding with this book. Each chapter will have a list of
prerequisite knowledge for the objectives covered in that chapter. This
set of prerequisites covers the entire book:
1
2 Chapter 1 What Is Architecture?
Discussion
The best starting point for this book is to make sure that you are on the
same page as the exam developers. Having this common vocabulary will
reduce confusion in the later chapters. A clear and concise definition of
architecture is imperative to your success on this exam. Once you under-
stand the definition, you must understand your role in creating architec-
ture. You must realize what your tasks are. Finally, you must understand
the purpose of creating architecture. You create architecture to support
the service-level requirements of a system. Without service-level
requirements, your systems cannot meet customer demand for availabil-
ity, reliability, and scalability. These service-level requirements keep a
company from having a “CNN” moment, which occurs when the failure
of your computer systems makes headline news on CNN.
Understanding Architecture
According to the Rational Unified Process:
Updated editions will replace the previous one—the old editions will
be renamed.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the terms
of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
• You pay a royalty fee of 20% of the gross profits you derive from
the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
1.F.4. Except for the limited right of replacement or refund set forth in
paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.