Java Application Architecture: Modularity Patterns With Examples Using OSGi Upplaga 1
Foreword by Robert C. Martin xix Foreword by Peter Kriens xxi
Acknowledgments xxv
About the Author xxvii
Introduction 1
Object-Oriented Design 2
Logical versus Physical Design 3
Modularity 4
Who This Book Is For 6
How This Book Is Organized 7
Pattern Form 10
Pattern Catalog 12
The Code 13
An Opening Thought on the Modularity Patterns 14
Reference 14
Part I: The Case for Modularity 15
Chapter 1: Module Defined 17
1.1 Defining a Module 17
1.2 Succinct Definition of a Software Module 20
1.3 Conclusion 20
Chapter 2: The Two Facets of Modularity 21
2.1 The Runtime Model 21
2.2 The Development Model 22
2.3 Modularity Today 25
2.4 Conclusion 27
Chapter 3: Architecture and Modularity 29
3.1 Defining Architecture 29
3.2 A Software Architecture Story 30
3.3 The Goal of Architecture 33
3.4 Modularity: The Missing Ingredient 36
3.5 Answering Our Questions 43
3.6 Conclusion 44
3.7 References 44
Chapter 4: Taming the Beast Named Complexity 45
4.1 Enterprise Complexity 46
4.2 Technical Debt 47
4.3 Design Rot 48
4.4 Cyclic Dependencies–The Death Knell 50
4.5 Joints, Modules, and SOLID 56
4.6 Managing Complexity 57
4.7 Benefits of Modularity 59
4.8 Conclusion 60
4.9 References 60
Chapter 5: Realizing Reuse 61
5.1 The Use/Reuse Paradox 62
5.2 The Reuse Disclaimer 63
5.3 Reuse or Use 64
5.4 Modular Tension 65
5.5 Modular Design 66
5.6 Conclusion 67
5.7 Reference 68
Chapter 6: Modularity and SOA 69
6.1 All the Way Down, Revisited 69
6.2 Granularity–Architecture’s Nemesis 72
6.3 An Alternate View 79
6.4 Conclusion 80
Chapter 7: Reference Implementation 83
7.1 Why No OSGi? 83
7.2 Background on This Exercise: Building the System 84
7.3 Version 1 85
7.4 First Refactoring 87
7.5 Second Refactoring 90
7.6 Third Refactoring 93
7.7 Fourth Refactoring 95
7.8 Fifth Refactoring 98
7.9 Sixth Refactoring 99
7.10 Seventh Refactoring 102
7.11 The Postmortem 103
7.12 Conclusion 110
7.13 Reference 110
Part II: The Patterns 111
Chapter 8: Base Patterns 115
Manage Relationships 116
Module Reuse 125
Cohesive Modules 139
Chapter 9: Dependency Patterns 145
Acyclic Relationships 146
Levelize Modules 157
Physical Layers 162
Container Independence 170
Independent Deployment 178
Reference 185
Chapter 10: Usability Patterns 187
Published Interface 188
External Configuration 200
Default Implementation 206
Module Facade 212
Chapter 11: Extensibility Patterns 221
Abstract Modules 222
Implementation Factory 229
Separate Abstractions 237
Reference 244
Chapter 12: Utility Patterns 245
Colocate Exceptions 246
Levelize Build 253
Test Module 263
Part III: Poma and OSGi 271
Chapter 13: Introducing OSGi 273
13.1 Some History 273
13.2 Benefits of OSGi 274
13.3 Digesting OSGi 276
13.4 OSGi Bundle 277
13.5 OSGi Runtime Management 279
13.6 The Two Facets of Modularity, Revisited 279
13.7 OSGi and the Patterns 279
Chapter 14: The Loan Sample and OSGi 283
14.1 Getting Started 283
14.2 The Manifests 285
14.3 µServices 286
14.4 Installation and Execution 292
14.5 Conclusion 293
Chapter 15: OSGi and Scala 295
15.1 Getting Started 295
15.2 The Scala Code 296
15.3 Scala Bean Configuration 299
15.4 Scala µService Configuration 299
15.5 Building the Scala Module 300
15.6 Installation and Execution 300
15.7 Conclusion 301
Chapter 16: OSGi and Groovy 303
16.1 Getting Started 303
16.2 The Groovy Code 304
16.3 Groovy Bean Configuration 306
16.4 Groovy Service Configuration 307
16.5 Building the Groovy Module 307
16.6 Installation and Execution 308
16.7 Conclusion 309
Chapter 17: Future of OSGi 311
17.1 OSGi as an Enabler 312
17.2 The Disruption 312
17.3 The Power of Ecosystems 314
17.4 The Ecosystem 316
17.5 Conclusion 317
Appendix: SOLID Principles of Class Design 319
Single Responsibility Principle (SRP) 320
Open Closed Principle (OCP) 320
Liskov Substitution Principle (LSP) 323
Dependency Inversion Principle (DIP) 325
Interface Segregation Principle 327
Composite Reuse Principle (CRP) 329
References 335
Index 337
Upplaga: 1a upplagan
Utgiven: 2012
ISBN: 9780321247131
Förlag: PRENTICE-HALL
Format: Häftad
Språk: Engelska
Sidor: 384 st
Foreword by Robert C. Martin xix Foreword by Peter Kriens xxi
Acknowledgments xxv
About the Author xxvii
Introduction 1
Object-Oriented Design 2
Logical versus Physical Design 3
Modularity 4
Who This Book Is For 6
How This Book Is Organized 7
Pattern Form 10
Pattern Catalog 12
The Code 13
An Opening Thought on the Modularity Patterns 14
Reference 14
Part I: The Case for Modularity 15
Chapter 1: Module Defined 17
1.1 Defining a Module 17
1.2 Succinct Definition of a Software Module 20
1.3 Conclusion 20
Chapter 2: The Two Facets of Modularity 21
2.1 The Runtime Model 21
2.2 The Development Model 22
2.3 Modularity Today 25
2.4 Conclusion 27
Chapter 3: Architecture and Modularity 29
3.1 Defining Architecture 29
3.2 A Software Architecture Story 30
3.3 The Goal of Architecture 33
3.4 Modularity: The Missing Ingredient 36
3.5 Answering Our Questions 43
3.6 Conclusion 44
3.7 References 44
Chapter 4: Taming the Beast Named Complexity 45
4.1 Enterprise Complexity 46
4.2 Technical Debt 47
4.3 Design Rot 48
4.4 Cyclic Dependencies–The Death Knell 50
4.5 Joints, Modules, and SOLID 56
4.6 Managing Complexity 57
4.7 Benefits of Modularity 59
4.8 Conclusion 60
4.9 References 60
Chapter 5: Realizing Reuse 61
5.1 The Use/Reuse Paradox 62
5.2 The Reuse Disclaimer 63
5.3 Reuse or Use 64
5.4 Modular Tension 65
5.5 Modular Design 66
5.6 Conclusion 67
5.7 Reference 68
Chapter 6: Modularity and SOA 69
6.1 All the Way Down, Revisited 69
6.2 Granularity–Architecture’s Nemesis 72
6.3 An Alternate View 79
6.4 Conclusion 80
Chapter 7: Reference Implementation 83
7.1 Why No OSGi? 83
7.2 Background on This Exercise: Building the System 84
7.3 Version 1 85
7.4 First Refactoring 87
7.5 Second Refactoring 90
7.6 Third Refactoring 93
7.7 Fourth Refactoring 95
7.8 Fifth Refactoring 98
7.9 Sixth Refactoring 99
7.10 Seventh Refactoring 102
7.11 The Postmortem 103
7.12 Conclusion 110
7.13 Reference 110
Part II: The Patterns 111
Chapter 8: Base Patterns 115
Manage Relationships 116
Module Reuse 125
Cohesive Modules 139
Chapter 9: Dependency Patterns 145
Acyclic Relationships 146
Levelize Modules 157
Physical Layers 162
Container Independence 170
Independent Deployment 178
Reference 185
Chapter 10: Usability Patterns 187
Published Interface 188
External Configuration 200
Default Implementation 206
Module Facade 212
Chapter 11: Extensibility Patterns 221
Abstract Modules 222
Implementation Factory 229
Separate Abstractions 237
Reference 244
Chapter 12: Utility Patterns 245
Colocate Exceptions 246
Levelize Build 253
Test Module 263
Part III: Poma and OSGi 271
Chapter 13: Introducing OSGi 273
13.1 Some History 273
13.2 Benefits of OSGi 274
13.3 Digesting OSGi 276
13.4 OSGi Bundle 277
13.5 OSGi Runtime Management 279
13.6 The Two Facets of Modularity, Revisited 279
13.7 OSGi and the Patterns 279
Chapter 14: The Loan Sample and OSGi 283
14.1 Getting Started 283
14.2 The Manifests 285
14.3 µServices 286
14.4 Installation and Execution 292
14.5 Conclusion 293
Chapter 15: OSGi and Scala 295
15.1 Getting Started 295
15.2 The Scala Code 296
15.3 Scala Bean Configuration 299
15.4 Scala µService Configuration 299
15.5 Building the Scala Module 300
15.6 Installation and Execution 300
15.7 Conclusion 301
Chapter 16: OSGi and Groovy 303
16.1 Getting Started 303
16.2 The Groovy Code 304
16.3 Groovy Bean Configuration 306
16.4 Groovy Service Configuration 307
16.5 Building the Groovy Module 307
16.6 Installation and Execution 308
16.7 Conclusion 309
Chapter 17: Future of OSGi 311
17.1 OSGi as an Enabler 312
17.2 The Disruption 312
17.3 The Power of Ecosystems 314
17.4 The Ecosystem 316
17.5 Conclusion 317
Appendix: SOLID Principles of Class Design 319
Single Responsibility Principle (SRP) 320
Open Closed Principle (OCP) 320
Liskov Substitution Principle (LSP) 323
Dependency Inversion Principle (DIP) 325
Interface Segregation Principle 327
Composite Reuse Principle (CRP) 329
References 335
Index 337
Varje vecka tillkommer tusentals nya säljare. Bevaka boken så får du meddelande när den finns tillgänglig igen.