Gorton | Essential Software Architecture | E-Book | www.sack.de
E-Book

E-Book, Englisch, 242 Seiten

Gorton Essential Software Architecture


2. Auflage 2011
ISBN: 978-3-642-19176-3
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark

E-Book, Englisch, 242 Seiten

ISBN: 978-3-642-19176-3
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark



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!'

Gorton Essential Software Architecture jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


1;Preface;6
2;Motivation;6
3;Outline;7
4;Acknowledgments;10
5;Contents;12
6;Chapter 1: Understanding Software Architecture;18
6.1;1.1 What is Software Architecture?;18
6.2;1.2 Definitions of Software Architecture;19
6.2.1;1.2.1 Architecture Defines Structure;20
6.2.2;1.2.2 Architecture Specifies Component Communication;21
6.3;1.3 Architecture Addresses Nonfunctional Requirements;22
6.3.1;1.3.1 Architecture Is an Abstraction;23
6.3.2;1.3.2 Architecture Views;24
6.4;1.4 What Does a Software Architect Do?;25
6.5;1.5 Architectures and Technologies;26
6.6;1.6 Architect Title Soup;28
6.7;1.7 Summary;29
6.8;1.8 Further Reading;30
6.8.1;1.8.1 General Architecture;30
6.8.2;1.8.2 Architecture Requirements;30
6.8.3;1.8.3 Architecture Patterns;31
6.8.4;1.8.4 Technology Comparisons;31
6.8.5;1.8.5 Enterprise Architecture;32
7;Chapter 2: Introducing the Case Study;33
7.1;2.1 Overview;33
7.2;2.2 The ICDE System;33
7.3;2.3 Project Context;35
7.4;2.4 Business Goals;37
7.5;2.5 Constraints;38
7.6;2.6 Summary;38
8;Chapter 3: Software Quality Attributes;39
8.1;3.1 Quality Attributes;39
8.2;3.2 Performance;40
8.2.1;3.2.1 Throughput;40
8.2.2;3.2.2 Response Time;41
8.2.3;3.2.3 Deadlines;41
8.2.4;3.2.4 Performance for the ICDE System;42
8.3;3.3 Scalability;43
8.3.1;3.3.1 Request Load;43
8.3.2;3.3.2 Simultaneous Connections;45
8.3.3;3.3.3 Data Size;45
8.3.4;3.3.4 Deployment;46
8.3.5;3.3.5 Some Thoughts on Scalability;46
8.3.6;3.3.6 Scalability for the ICDE Application;46
8.4;3.4 Modifiability;46
8.4.1;3.4.1 Modifiability for the ICDE Application;49
8.5;3.5 Security;49
8.5.1;3.5.1 Security for the ICDE Application;50
8.6;3.6 Availability;50
8.6.1;3.6.1 Availability for the ICDE Application;51
8.7;3.7 Integration;51
8.7.1;3.7.1 Integration for the ICDE Application;52
8.8;3.8 Other Quality Attributes;52
8.9;3.9 Design Trade-Offs;53
8.10;3.10 Summary;53
8.11;3.11 Further Reading;54
9;Chapter 4: An Introduction to Middleware Architectures and Technologies;55
9.1;4.1 Introduction;55
9.2;4.2 Middleware Technology Classification;56
9.3;4.3 Distributed Objects;57
9.4;4.4 Message-Oriented Middleware;59
9.4.1;4.4.1 MOM Basics;60
9.4.2;4.4.2 Exploiting MOM Advanced Features;61
9.4.2.1;4.4.2.1 Message Delivery;62
9.4.2.2;4.4.2.2 Transactions;63
9.4.2.3;4.4.2.3 Clustering;63
9.4.2.4;4.4.2.4 Two-Way Messaging;65
9.4.3;4.4.3 Publish-Subscribe;66
9.4.3.1;4.4.3.1 Understanding Topics;68
9.5;4.5 Application Servers;70
9.5.1;4.5.1 Enterprise JavaBeans;71
9.5.2;4.5.2 EJB Component Model;72
9.5.3;4.5.3 Stateless Session Bean Programming Example;73
9.5.4;4.5.4 Message-Driven Bean Programming Example;74
9.5.5;4.5.5 Responsibilities of the EJB Container;75
9.5.6;4.5.6 Some Thoughts;76
9.6;4.6 Summary;77
9.7;4.7 Further Reading;78
9.7.1;4.7.1 CORBA;78
9.7.2;4.7.2 Message-Oriented Middleware;78
9.7.3;4.7.3 Application Servers;79
10;Chapter 5: Service-Oriented Architectures and Technologies;80
10.1;5.1 Background;80
10.2;5.2 Service-Oriented Systems;81
10.2.1;5.2.1 Boundaries Are Explicit;83
10.2.2;5.2.2 Services Are Autonomous;84
10.2.3;5.2.3 Share Schemas and Contracts, Not Implementations;84
10.2.4;5.2.4 Service Compatibility Is Based on Policy;85
10.3;5.3 Web Services;86
10.4;5.4 SOAP and Messaging;88
10.5;5.5 UDDI, WSDL, and Metadata;89
10.6;5.6 Security, Transactions, and Reliability;92
10.7;5.7 RESTful Web Services;93
10.8;5.8 Conclusion and Further Reading;94
11;Chapter 6: Advanced Middleware Technologies;96
11.1;6.1 Introduction;96
11.2;6.2 Message Brokers;96
11.3;6.3 Business Process Orchestration;102
11.4;6.4 Integration Architecture Issues;106
11.5;6.5 What Is an Enterprise Service Bus;110
11.6;6.6 Further Reading;110
12;Chapter 7: A Software Architecture Process;112
12.1;7.1 Process Outline;112
12.1.1;7.1.1 Determine Architectural Requirements;113
12.1.2;7.1.2 Identifying Architecture Requirements;113
12.1.3;7.1.3 Prioritizing Architecture Requirements;114
12.2;7.2 Architecture Design;116
12.2.1;7.2.1 Choosing the Architecture Framework;117
12.2.1.1;7.2.1.1 N-Tier Client Server;117
12.2.1.2;7.2.1.2 Messaging;118
12.2.1.3;7.2.1.3 Publish-Subscribe;120
12.2.1.4;7.2.1.4 Broker;121
12.2.1.5;7.2.1.5 Process Coordinator;122
12.2.2;7.2.2 Allocate Components;123
12.3;7.3 Validation;125
12.3.1;7.3.1 Using Scenarios;126
12.3.2;7.3.2 Prototyping;128
12.4;7.4 Summary and Further Reading;129
13;Chapter 8: Documenting a Software Architecture;131
13.1;8.1 Introduction;131
13.2;8.2 What to Document;132
13.3;8.3 UML 2.0;133
13.4;8.4 Architecture Views;134
13.5;8.5 More on Component Diagrams;137
13.6;8.6 Architecture Documentation Template;140
13.7;8.7 Summary and Further Reading;141
14;Chapter 9: Case Study Design;143
14.1;9.1 Overview;143
14.2;9.2 ICDE Technical Issues;143
14.2.1;9.2.1 Large Data;143
14.2.2;9.2.2 Notification;145
14.2.3;9.2.3 Data Abstraction;145
14.2.4;9.2.4 Platform and Distribution Issues;145
14.2.5;9.2.5 API Issues;146
14.2.6;9.2.6 Discussion;147
14.3;9.3 ICDE Architecture Requirements;147
14.3.1;9.3.1 Overview of Key Objectives;147
14.3.2;9.3.2 Architecture Use Cases;148
14.3.3;9.3.3 Stakeholder Architecture Requirements;148
14.3.3.1;9.3.3.1 Third Party Tool Producers;148
14.3.3.2;9.3.3.2 ICDE Programmers;149
14.3.3.3;9.3.3.3 ICDE Development Team;150
14.3.4;9.3.4 Constraints;150
14.3.5;9.3.5 Nonfunctional Requirements;150
14.3.6;9.3.6 Risks;151
14.4;9.4 ICDE Solution;151
14.4.1;9.4.1 Architecture Patterns;151
14.4.2;9.4.2 Architecture Overview;152
14.4.3;9.4.3 Structural Views;153
14.4.4;9.4.4 Behavioral Views;156
14.4.5;9.4.5 Implementation Issues;159
14.5;9.5 Architecture Analysis;159
14.5.1;9.5.1 Scenario Analysis;159
14.5.2;9.5.2 Risks;160
14.6;9.6 Summary;160
15;Chapter 10: Middleware Case Study: MeDICi;161
15.1;10.1 MeDICi Background;161
15.2;10.2 MeDICi Hello World;162
15.3;10.3 Implementing Modules;165
15.3.1;10.3.1 MifProcessor;165
15.3.2;10.3.2 MifObjectProcessor;165
15.3.3;10.3.3 MifMessageProcessor;166
15.3.4;10.3.4 Module Properties;166
15.4;10.4 Endpoints and Transports;167
15.4.1;10.4.1 Connectors;167
15.4.2;10.4.2 Supported Transports;168
15.4.2.1;10.4.2.1 VM;168
15.4.2.2;10.4.2.2 STDIO;169
15.4.2.3;10.4.2.3 Java Messaging Service;169
15.4.2.4;10.4.2.4 HTTP;170
15.4.2.5;10.4.2.5 HTTPS;170
15.4.2.6;10.4.2.6 TCP;170
15.5;10.5 MeDICi Example;171
15.5.1;10.5.1 Initialize Pipeline;172
15.5.2;10.5.2 Chat Component;173
15.5.3;10.5.3 Implementation code;175
15.6;10.6 Component Builder;175
15.7;10.7 Summary;177
15.8;10.8 Further Reading;177
16;Chapter 11: Looking Forward;179
16.1;11.1 Introduction;179
16.2;11.2 The Challenges of Complexity;179
16.2.1;11.2.1 Business Process Complexity;180
16.3;11.3 Agility;181
16.4;11.4 Reduced Costs;182
16.5;11.5 What Next;183
17;Chapter 12: The Semantic Web;184
17.1;12.1 ICDE and the Semantic Web;184
17.2;12.2 Automated, Distributed Integration and Collaboration;185
17.3;12.3 The Semantic Web;186
17.4;12.4 Creating and Using Metadata for the Semantic Web;187
17.5;12.5 Putting Semantics in the Web;189
17.6;12.6 Semantics for ICDE;191
17.7;12.7 Semantic Web Services;193
17.8;12.8 Continued Optimism;194
17.9;12.9 Further Reading;195
18;Chapter 13: Aspect Oriented Architectures;197
18.1;13.1 Aspects for ICDE Development;197
18.2;13.2 Introduction to Aspect-Oriented Programming;198
18.2.1;13.2.1 Crosscutting Concerns;198
18.2.2;13.2.2 Managing Concerns with Aspects;199
18.2.3;13.2.3 AOP Syntax and Programming Model;200
18.2.4;13.2.4 Weaving;201
18.3;13.3 Example of a Cache Aspect;202
18.4;13.4 Aspect-Oriented Architectures;203
18.5;13.5 Architectural Aspects and Middleware;204
18.6;13.6 State-of-the-Art;205
18.6.1;13.6.1 Aspect Oriented Modeling in UML;205
18.6.2;13.6.2 AOP Tools;205
18.6.3;13.6.3 Annotations and AOP;206
18.7;13.7 Performance Monitoring of ICDE with AspectWerkz;207
18.8;13.8 Conclusions;209
18.9;13.9 Further Reading;210
19;Chapter 14: Model-Driven Architecture;212
19.1;14.1 Model-Driven Development for ICDE;212
19.2;14.2 What is MDA?;214
19.3;14.3 Why MDA?;216
19.3.1;14.3.1 Portability;216
19.3.2;14.3.2 Interoperability;217
19.3.3;14.3.3 Reusability;218
19.4;14.4 State-of-Art Practices and Tools;219
19.4.1;14.4.1 AndroMDA;219
19.4.2;14.4.2 ArcStyler;220
19.4.3;14.4.3 Eclipse Modeling Framework;220
19.5;14.5 MDA and Software Architecture;221
19.5.1;14.5.1 MDA and Nonfunctional Requirements;222
19.5.2;14.5.2 Model Transformation and Software Architecture;222
19.5.3;14.5.3 SOA and MDA;223
19.5.4;14.5.4 Analytical Models are Models Too;223
19.6;14.6 MDA for ICDE Capacity Planning;225
19.7;14.7 Summary and Further Reading;227
20;Chapter 15: Software Product Lines;229
20.1;15.1 Product Lines for ICDE;229
20.2;15.2 Software Product Lines;230
20.2.1;15.2.1 Benefiting from SPL Development;232
20.2.2;15.2.2 Product Lines for ICDE;233
20.3;15.3 Product Line Architecture;233
20.3.1;15.3.1 Find and Understand Software;234
20.3.2;15.3.2 Bring Software into the Development Context;235
20.3.3;15.3.3 Invoke Software;235
20.3.4;15.3.4 Software Configuration Management for Reuse;235
20.4;15.4 Variation Mechanisms;237
20.4.1;15.4.1 Architecture-Level Variation Points;237
20.4.2;15.4.2 Design-Level Variation;237
20.4.3;15.4.3 File-Level Variation;238
20.4.4;15.4.4 Variation by Software Configuration Management;238
20.4.5;15.4.5 Product Line Architecture for ICDE;238
20.5;15.5 Adopting Software Product Line Development;239
20.5.1;15.5.1 Product Line Adoption Practice Areas;241
20.5.2;15.5.2 Product Line Adoption for ICDE;241
20.6;15.6 Ongoing Software Product Line Development;242
20.6.1;15.6.1 Change Control;242
20.6.2;15.6.2 Architectural Evolution for SPL Development;243
20.6.3;15.6.3 Product Line Development Practice Areas;244
20.6.4;15.6.4 Product Lines with ICDE;244
20.7;15.7 Conclusions;245
20.8;15.8 Further Reading;246
21;Index;248



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.