Essential Software Architecture (eBook)
XVI, 242 Seiten
Springer Berlin (Verlag)
978-3-642-19176-3 (ISBN)
Job titles like 'Technical Architect' and 'Chief Architect' nowadays abound in software industry, yet many people suspect that 'architecture' is one of the most overused and least understood terms in professional software development.
Gorton's book tries to resolve this dilemma. It concisely describes the essential elements of knowledge and key skills required to be a software architect. The explanations encompass the essentials of architecture thinking, practices, and supporting technologies. They range from a general understanding of structure and quality attributes through technical issues like middleware components and service-oriented architectures to recent technologies like model-driven architecture, software product lines, aspect-oriented design, and the Semantic Web, which will presumably influence future software systems. This second edition contains new material covering enterprise architecture, agile development, enterprise service bus technologies, RESTful Web services, and a case study on how to use the MeDICi integration framework.
All approaches are illustrated by an ongoing real-world example. So if you work as an architect or senior designer (or want to someday), or if you are a student in software engineering, here is a valuable and yet approachable knowledge source for you.
Ian Gorton is a Laboratory Fellow at the Pacific Northwest National Lab in Washington State, USA. He leads multiple projects that create advanced tools and reusable architectures for use in scientific and data analysis applications. Prior to this, he was a member of the Empirical Software Engineering group at National ICT Australia (NICTA), based in Sydney, Australia. In over 20 years of experience, Ian has worked in both academia and industry, and held various senior positions, including Chief Architect, in Government research labs in Australia and the USA. He has also consulted to major organizations including Fujitsu, Borland, the Australian Stock Exchange, IBM and the Australian Tax office, and served as Program Chair for both WICSA and COMPARCH, the two leading international conferences in Software Architecture.
'I'm basically a software {architect, researcher, engineer}. I work on a whole range of projects, including new middleware technology R&D, designing architectures for enterprise applications, and carrying out software architecture research. I guess I must enjoy the variety!'
Ian Gorton is a Laboratory Fellow at the Pacific Northwest National Lab in Washington State, USA. He leads multiple projects that create advanced tools and reusable architectures for use in scientific and data analysis applications. Prior to this, he was a member of the Empirical Software Engineering group at National ICT Australia (NICTA), based in Sydney, Australia. In over 20 years of experience, Ian has worked in both academia and industry, and held various senior positions, including Chief Architect, in Government research labs in Australia and the USA. He has also consulted to major organizations including Fujitsu, Borland, the Australian Stock Exchange, IBM and the Australian Tax office, and served as Program Chair for both WICSA and COMPARCH, the two leading international conferences in Software Architecture."I'm basically a software {architect, researcher, engineer}. I work on a whole range of projects, including new middleware technology R&D, designing architectures for enterprise applications, and carrying out software architecture research. I guess I must enjoy the variety!"
Preface 6
Motivation 6
Outline 7
Acknowledgments 10
Contents 12
Chapter 1: Understanding Software Architecture 18
1.1 What is Software Architecture? 18
1.2 Definitions of Software Architecture 19
1.2.1 Architecture Defines Structure 20
1.2.2 Architecture Specifies Component Communication 21
1.3 Architecture Addresses Nonfunctional Requirements 22
1.3.1 Architecture Is an Abstraction 23
1.3.2 Architecture Views 24
1.4 What Does a Software Architect Do? 25
1.5 Architectures and Technologies 26
1.6 Architect Title Soup 28
1.7 Summary 29
1.8 Further Reading 30
1.8.1 General Architecture 30
1.8.2 Architecture Requirements 30
1.8.3 Architecture Patterns 31
1.8.4 Technology Comparisons 31
1.8.5 Enterprise Architecture 32
Chapter 2: Introducing the Case Study 33
2.1 Overview 33
2.2 The ICDE System 33
2.3 Project Context 35
2.4 Business Goals 37
2.5 Constraints 38
2.6 Summary 38
Chapter 3: Software Quality Attributes 39
3.1 Quality Attributes 39
3.2 Performance 40
3.2.1 Throughput 40
3.2.2 Response Time 41
3.2.3 Deadlines 41
3.2.4 Performance for the ICDE System 42
3.3 Scalability 43
3.3.1 Request Load 43
3.3.2 Simultaneous Connections 45
3.3.3 Data Size 45
3.3.4 Deployment 46
3.3.5 Some Thoughts on Scalability 46
3.3.6 Scalability for the ICDE Application 46
3.4 Modifiability 46
3.4.1 Modifiability for the ICDE Application 49
3.5 Security 49
3.5.1 Security for the ICDE Application 50
3.6 Availability 50
3.6.1 Availability for the ICDE Application 51
3.7 Integration 51
3.7.1 Integration for the ICDE Application 52
3.8 Other Quality Attributes 52
3.9 Design Trade-Offs 53
3.10 Summary 53
3.11 Further Reading 54
Chapter 4: An Introduction to Middleware Architectures and Technologies 55
4.1 Introduction 55
4.2 Middleware Technology Classification 56
4.3 Distributed Objects 57
4.4 Message-Oriented Middleware 59
4.4.1 MOM Basics 60
4.4.2 Exploiting MOM Advanced Features 61
4.4.2.1 Message Delivery 62
4.4.2.2 Transactions 63
4.4.2.3 Clustering 63
4.4.2.4 Two-Way Messaging 65
4.4.3 Publish-Subscribe 66
4.4.3.1 Understanding Topics 68
4.5 Application Servers 70
4.5.1 Enterprise JavaBeans 71
4.5.2 EJB Component Model 72
4.5.3 Stateless Session Bean Programming Example 73
4.5.4 Message-Driven Bean Programming Example 74
4.5.5 Responsibilities of the EJB Container 75
4.5.6 Some Thoughts 76
4.6 Summary 77
4.7 Further Reading 78
4.7.1 CORBA 78
4.7.2 Message-Oriented Middleware 78
4.7.3 Application Servers 79
Chapter 5: Service-Oriented Architectures and Technologies 80
5.1 Background 80
5.2 Service-Oriented Systems 81
5.2.1 Boundaries Are Explicit 83
5.2.2 Services Are Autonomous 84
5.2.3 Share Schemas and Contracts, Not Implementations 84
5.2.4 Service Compatibility Is Based on Policy 85
5.3 Web Services 86
5.4 SOAP and Messaging 88
5.5 UDDI, WSDL, and Metadata 89
5.6 Security, Transactions, and Reliability 92
5.7 RESTful Web Services 93
5.8 Conclusion and Further Reading 94
Chapter 6: Advanced Middleware Technologies 96
6.1 Introduction 96
6.2 Message Brokers 96
6.3 Business Process Orchestration 102
6.4 Integration Architecture Issues 106
6.5 What Is an Enterprise Service Bus 110
6.6 Further Reading 110
Chapter 7: A Software Architecture Process 112
7.1 Process Outline 112
7.1.1 Determine Architectural Requirements 113
7.1.2 Identifying Architecture Requirements 113
7.1.3 Prioritizing Architecture Requirements 114
7.2 Architecture Design 116
7.2.1 Choosing the Architecture Framework 117
7.2.1.1 N-Tier Client Server 117
7.2.1.2 Messaging 118
7.2.1.3 Publish-Subscribe 120
7.2.1.4 Broker 121
7.2.1.5 Process Coordinator 122
7.2.2 Allocate Components 123
7.3 Validation 125
7.3.1 Using Scenarios 126
7.3.2 Prototyping 128
7.4 Summary and Further Reading 129
Chapter 8: Documenting a Software Architecture 131
8.1 Introduction 131
8.2 What to Document 132
8.3 UML 2.0 133
8.4 Architecture Views 134
8.5 More on Component Diagrams 137
8.6 Architecture Documentation Template 140
8.7 Summary and Further Reading 141
Chapter 9: Case Study Design 143
9.1 Overview 143
9.2 ICDE Technical Issues 143
9.2.1 Large Data 143
9.2.2 Notification 145
9.2.3 Data Abstraction 145
9.2.4 Platform and Distribution Issues 145
9.2.5 API Issues 146
9.2.6 Discussion 147
9.3 ICDE Architecture Requirements 147
9.3.1 Overview of Key Objectives 147
9.3.2 Architecture Use Cases 148
9.3.3 Stakeholder Architecture Requirements 148
9.3.3.1 Third Party Tool Producers 148
9.3.3.2 ICDE Programmers 149
9.3.3.3 ICDE Development Team 150
9.3.4 Constraints 150
9.3.5 Nonfunctional Requirements 150
9.3.6 Risks 151
9.4 ICDE Solution 151
9.4.1 Architecture Patterns 151
9.4.2 Architecture Overview 152
9.4.3 Structural Views 153
9.4.4 Behavioral Views 156
9.4.5 Implementation Issues 159
9.5 Architecture Analysis 159
9.5.1 Scenario Analysis 159
9.5.2 Risks 160
9.6 Summary 160
Chapter 10: Middleware Case Study: MeDICi 161
10.1 MeDICi Background 161
10.2 MeDICi Hello World 162
10.3 Implementing Modules 165
10.3.1 MifProcessor 165
10.3.2 MifObjectProcessor 165
10.3.3 MifMessageProcessor 166
10.3.4 Module Properties 166
10.4 Endpoints and Transports 167
10.4.1 Connectors 167
10.4.2 Supported Transports 168
10.4.2.1 VM 168
10.4.2.2 STDIO 169
10.4.2.3 Java Messaging Service 169
10.4.2.4 HTTP 170
10.4.2.5 HTTPS 170
10.4.2.6 TCP 170
10.5 MeDICi Example 171
10.5.1 Initialize Pipeline 172
10.5.2 Chat Component 173
10.5.3 Implementation code 175
10.6 Component Builder 175
10.7 Summary 177
10.8 Further Reading 177
Chapter 11: Looking Forward 179
11.1 Introduction 179
11.2 The Challenges of Complexity 179
11.2.1 Business Process Complexity 180
11.3 Agility 181
11.4 Reduced Costs 182
11.5 What Next 183
Chapter 12: The Semantic Web 184
12.1 ICDE and the Semantic Web 184
12.2 Automated, Distributed Integration and Collaboration 185
12.3 The Semantic Web 186
12.4 Creating and Using Metadata for the Semantic Web 187
12.5 Putting Semantics in the Web 189
12.6 Semantics for ICDE 191
12.7 Semantic Web Services 193
12.8 Continued Optimism 194
12.9 Further Reading 195
Chapter 13: Aspect Oriented Architectures 197
13.1 Aspects for ICDE Development 197
13.2 Introduction to Aspect-Oriented Programming 198
13.2.1 Crosscutting Concerns 198
13.2.2 Managing Concerns with Aspects 199
13.2.3 AOP Syntax and Programming Model 200
13.2.4 Weaving 201
13.3 Example of a Cache Aspect 202
13.4 Aspect-Oriented Architectures 203
13.5 Architectural Aspects and Middleware 204
13.6 State-of-the-Art 205
13.6.1 Aspect Oriented Modeling in UML 205
13.6.2 AOP Tools 205
13.6.3 Annotations and AOP 206
13.7 Performance Monitoring of ICDE with AspectWerkz 207
13.8 Conclusions 209
13.9 Further Reading 210
Chapter 14: Model-Driven Architecture 212
14.1 Model-Driven Development for ICDE 212
14.2 What is MDA? 214
14.3 Why MDA? 216
14.3.1 Portability 216
14.3.2 Interoperability 217
14.3.3 Reusability 218
14.4 State-of-Art Practices and Tools 219
14.4.1 AndroMDA 219
14.4.2 ArcStyler 220
14.4.3 Eclipse Modeling Framework 220
14.5 MDA and Software Architecture 221
14.5.1 MDA and Nonfunctional Requirements 222
14.5.2 Model Transformation and Software Architecture 222
14.5.3 SOA and MDA 223
14.5.4 Analytical Models are Models Too 223
14.6 MDA for ICDE Capacity Planning 225
14.7 Summary and Further Reading 227
Chapter 15: Software Product Lines 229
15.1 Product Lines for ICDE 229
15.2 Software Product Lines 230
15.2.1 Benefiting from SPL Development 232
15.2.2 Product Lines for ICDE 233
15.3 Product Line Architecture 233
15.3.1 Find and Understand Software 234
15.3.2 Bring Software into the Development Context 235
15.3.3 Invoke Software 235
15.3.4 Software Configuration Management for Reuse 235
15.4 Variation Mechanisms 237
15.4.1 Architecture-Level Variation Points 237
15.4.2 Design-Level Variation 237
15.4.3 File-Level Variation 238
15.4.4 Variation by Software Configuration Management 238
15.4.5 Product Line Architecture for ICDE 238
15.5 Adopting Software Product Line Development 239
15.5.1 Product Line Adoption Practice Areas 241
15.5.2 Product Line Adoption for ICDE 241
15.6 Ongoing Software Product Line Development 242
15.6.1 Change Control 242
15.6.2 Architectural Evolution for SPL Development 243
15.6.3 Product Line Development Practice Areas 244
15.6.4 Product Lines with ICDE 244
15.7 Conclusions 245
15.8 Further Reading 246
Index 248
Erscheint lt. Verlag | 27.4.2011 |
---|---|
Zusatzinfo | XVI, 242 p. |
Verlagsort | Berlin |
Sprache | englisch |
Themenwelt | Mathematik / Informatik ► Informatik |
Schlagworte | Aspect-Oriented Software Development • Component-Based Software • Middleware • Model-Driven Architecture • semantic web • Service-Oriented Architecture • software architecture • software product line • Software Quality |
ISBN-10 | 3-642-19176-2 / 3642191762 |
ISBN-13 | 978-3-642-19176-3 / 9783642191763 |
Haben Sie eine Frage zum Produkt? |
Größe: 8,0 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich