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.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Getting Architecture Just Right: Detailed Practical Guidance for Architecting Any Real-World IT Project
To build effective architectures, software architects must tread a fine line between precision and ambiguity (a.k.a. big animal pictures). This is difficult but crucial: Failure to achieve this balance often leads directly to poor systems design and implementation. Now, pioneering IBM Distinguished Engineer and Chief Technology Officer Tilak Mitra offers the first complete guide to developing end-to-end solution architectures that are “just enough”--identifying and capturing the most important artifacts, without over-engineering or excessive documentation, and providing a practical approach to consistent and repeated success in defining software architectures.
Practical Software Architecture provides detailed prescriptive and pragmatic guidance for architecting any real-world IT project, regardless of system, methodology, or environment. Mitra specifically identifies the artifacts that require emphasis and shows how to communicate evolving solutions with stakeholders, bridging the gap between architecture and implementation.
Through a real-world case study, Mitra guides you iteratively through building an end-to-end solution architecture. Step by step, he addresses key topics in developing system contexts, architecture overviews, architecture decisions, functional models, operational models, integration patterns for systems design, infrastructure matters, and more. Throughout, you’ll find clear, crisp, and accurate guidance for crafting architectures that can be confidently delivered on time and budget.
Coverage Includes
Foreword xv
Preface xvi
Chapter 1: Case Study 1
The Business Problem 1
Summary 5
Chapter 2: Software Architecture: The What and Why 7
Some Background 7
The What 8
The Why 10
Architecture Views and Viewpoints 14
Summary 17
References 18
Chapter 3: Capturing Just Enough 19
Architecture Aspects in Focus 19
Summary 21
Chapter 4: The System Context 23
The Business Context Versus System Context Conundrum 23
Capturing the System Context 25
Case Study: System Context for Elixir 30
Summary 36
References 37
Chapter 5: The Architecture Overview 39
What It Is 39
Why We Need It 41
The Enterprise View 42
The Layered View 47
The IT System View 52
Case Study: Architecture Overview of Elixir 57
Summary 63
References 63
Chapter 6: Architecture Decisions 65
Why We Need It 65
How to Get Started 66
Creating an Architecture Decision 67
Case Study: Architecture Decisions for Elixir 72
Summary 75
Chapter 7: The Functional Model 77
Why We Need It 77
A Few Words on Traceability 79
Developing the Functional Model 81
Case Study: Functional Model for Elixir 99
Summary 107
References 108
Chapter 8: The Operational Model 109
Why We Need It 110
On Traceability and Service Levels 111
Developing the Operational Model 113
Case Study: Operational Model for Elixir 141
Summary 149
References 150
Chapter 9: Integration: Approaches and Patterns 151
Why We Need It 151
Approaches to Integration 152
Integration Patterns 161
Case Study: Integration View of Elixir 166
Summary 169
References 170
Chapter 10: Infrastructure Matters 171
Why We Need It 172
Some Considerations 172
Case Study: Infrastructure Considerations for Elixir 192
Summary 194
So Where Do We Stand? 195
References 196
Chapter 11: Analytics: An Architecture Introduction 199
Why We Need It 200
Dimensions of Analytics 201
Analytics Architecture: Foundation 205
Architecture Building Blocks 216
Summary 228
References 230
Chapter 12: Sage Musings 231
Agility Gotta Be an Amalgamate 231
Traditional Requirements-Gathering Techniques Are Passe 233
The MVP Paradigm Is Worth Considering 234
Do Not Be a Prisoner of Events 235
Predictive Analytics Is Not the Only Entry Point into Analytics 235
Leadership Can Be an Acquired Trait 236
Technology-Driven Architecture Is a Bad Idea 237
Open Source Is Cool but to a Point 238
Write Them Up However Trivial They May Seem 239
Baseline Your Architecture on Core Strengths of Technology Products 240
Summary 241
References 241
Appendix A: 25 Topic Goodies 243
What Is the Difference Between Architecture and Design? 243
What Is the Difference Between Architectural Patterns, Design Patterns, and a Framework? 243
How Can We Compare a Top-Down Functional Decomposition Technique and an Object-Oriented Analysis and Design (OOAD) Technique? 244
What Is the Difference Between Conceptual, Specified, and Physical Models? 245
How Do Architecture Principles Provide Both Flexibility and Resilience to Systems Architecture? 245
Why Could the Development of the Physical Operational Model (POM) Be Broken into Iterations? 246
What Is a Service-Oriented Architecture? 246
What Is an Event-Driven Architecture? 246
What Is a Process Architecture? 247
What Is a Technology Architecture? 248
What Is an Adapter? 248
What Is a Service Registry? 249
What Is a Network Switch Block? 249
What Are Operational Data Warehouses? 249
What Is the Difference Between Complex Event Processing (CEP) and Stream Computing? 250
What Is the Difference Between Schema at Read and Schema at Write Techniques? 251
What Is a Triple Store? 251
What Is a Massively Parallel Processing (MPP) System? 252
IBM Watson Is Built on DeepQA Architecture. What Is DeepQA? 252
What Is the Difference Between Supervised and Unsupervised Learning Techniques? 253
What Is the Difference Between Taxonomy and Ontology? 253
What Is Spark and How Does It Work? 254
What Are Some of the Advantages and Challenges of the Cloud Computing Platform and Paradigm? 256
What Are the Different Cloud Deployment Models? 257
What Is Docker Technology? 258
Summary 259
References 259
Appendix B: Elixir Functional Model (Continued) 261
Logical Level 261
Specified Level 264
Physical Level 267
Index 269