
At a Glance
260 Pages
Revised
24.8 x 16.0 x 2.1
Hardcover
$109.00
or 4 interest-free payments of $27.25 with
 orÂShips in 5 to 7 business days
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.
Industry Reviews
From the reviews of the second edition:
Choice - Oustanding Academic Title in 2012
"The volume is organized in three main parts, the first of which provides a comprehensive but clear definition of software architecture. The second and third parts are devoted to current and emerging practices, respectively. ... This book will be of great help to students of computer science or software engineering, but above all it will provide practitioners with a guide to architecture that they can adopt to help direct their careers and professional development. Summing Up: Highly recommended. Upper-division undergraduates and above." (L. Benedicenti, Choice, Vol. 49 (5), January, 2012)
"A subset of the software system architecture discipline is discussed in this book. ... Gorton begins with an overall description of what he calls 'the subdiscipline known as software architecture.' ... useful in the technical library of a large financial institution for those engaged in major systems development and evolution." (Mordechai Ben-Menachem, ACM Computing Reviews, January, 2012)
| Understanding Software Architecture | p. 1 |
| What is Software Architecture? | p. 1 |
| Definitions of Software Architecture | p. 2 |
| Architecture Defines Structure | p. 3 |
| Architecture Specifies Component Communication | p. 4 |
| Architecture Addresses Nonfunctional Requirements | p. 5 |
| Architecture Is an Abstraction | p. 6 |
| Architecture Views | p. 7 |
| What Does a Software Architect Do? | p. 8 |
| Architectures and Technologies | p. 9 |
| Architect Title Soup | p. 11 |
| Summary | p. 12 |
| Further Reading | p. 13 |
| General Architecture | p. 13 |
| Architecture Requirements | p. 13 |
| Architecture Patterns | p. 14 |
| Technology Comparisons | p. 14 |
| Enterprise Architecture | p. 15 |
| Introducing the Case Study | p. 17 |
| Overview | p. 17 |
| The ICDE System | p. 17 |
| Project Context | p. 19 |
| Business Goals | p. 21 |
| Constraints | p. 22 |
| Summary | p. 22 |
| Software Quality Attributes | p. 23 |
| Quality Attributes | p. 23 |
| Performance | p. 24 |
| Throughput | p. 24 |
| Response Time | p. 25 |
| Deadlines | p. 25 |
| Performance for the ICDE System | p. 26 |
| Scalability | p. 27 |
| Request Load | p. 27 |
| Simultaneous Connections | p. 29 |
| Data Size | p. 29 |
| Deployment | p. 30 |
| Some Thoughts on Scalability | p. 30 |
| Scalability for the ICDE Application | p. 30 |
| Modifiability | p. 30 |
| Modifiability for the ICDE Application | p. 33 |
| Security | p. 33 |
| Security for the ICDE Application | p. 34 |
| Availability | p. 34 |
| Availability for the ICDE Application | p. 35 |
| Integration | p. 35 |
| Integration for the ICDE Application | p. 36 |
| Other Quality Attributes | p. 36 |
| Design Trade-Offs | p. 37 |
| Summary | p. 37 |
| Further Reading | p. 38 |
| An Introduction to Middleware Architectures and Technologies | p. 39 |
| Introduction | p. 39 |
| Middleware Technology Classification | p. 40 |
| Distributed Objects | p. 41 |
| Message-Oriented Middleware | p. 43 |
| Mom Basics | p. 44 |
| Exploiting Mom Advanced Features | p. 45 |
| Publish-Subscribe | p. 50 |
| Application Servers | p. 54 |
| Enterprise JavaBeans | p. 55 |
| Ejb Component Model | p. 56 |
| Stateless Session Bean Programming Example | p. 57 |
| Message-Driven Bean Programming Example | p. 58 |
| Responsibilities of the Ejb Container | p. 59 |
| Some Thoughts | p. 60 |
| Summary | p. 61 |
| Further Reading | p. 62 |
| Corba | p. 62 |
| Message-Oriented Middleware | p. 62 |
| Application Servers | p. 63 |
| Service-Oriented Architectures and Technologies | p. 65 |
| Background | p. 65 |
| Service-Oriented Systems | p. 66 |
| Boundaries Are Explicit | p. 68 |
| Services Are Autonomous | p. 69 |
| Share Schemas and Contracts, Not Implementations | p. 69 |
| Service Compatibility Is Based on Policy | p. 70 |
| Web Services | p. 71 |
| Soap and Messaging | p. 73 |
| Uddi, Wsdl, and Metadata | p. 74 |
| Security, Transactions, and Reliability | p. 77 |
| Restful Web Services | p. 78 |
| Conclusion and Further Reading | p. 79 |
| Advanced Middleware Technologies | p. 81 |
| Introduction | p. 81 |
| Message Brokers | p. 81 |
| Business Process Orchestration | p. 87 |
| Integration Architecture Issues | p. 91 |
| What Is an Enterprise Service Bus | p. 95 |
| Further Reading | p. 95 |
| A Software Architecture Process | p. 97 |
| Process Outline | p. 97 |
| Determine Architectural Requirements | p. 98 |
| Identifying Architecture Requirements | p. 98 |
| Prioritizing Architecture Requirements | p. 99 |
| Architecture Design | p. 101 |
| Choosing the Architecture Framework | p. 102 |
| Allocate Components | p. 108 |
| Validation | p. 110 |
| Using Scenarios | p. 111 |
| Prototyping | p. 113 |
| Summary and Further Reading | p. 114 |
| Documenting a Software Architecture | p. 117 |
| Introduction | p. 117 |
| What to Document | p. 118 |
| Uml 2.0 | p. 119 |
| Architecture Views | p. 120 |
| More on Component Diagrams | p. 123 |
| Architecture Documentation Template | p. 126 |
| Summary and Further Reading | p. 127 |
| Case Study Design | p. 129 |
| Overview | p. 129 |
| ICDE Technical Issues | p. 129 |
| Large Data | p. 129 |
| Notification | p. 131 |
| Data Abstraction | p. 131 |
| Platform and Distribution Issues | p. 131 |
| Api Issues | p. 132 |
| Discussion | p. 133 |
| ICDE Architecture Requirements | p. 133 |
| Overview of Key Objectives | p. 133 |
| Architecture Use Cases | p. 134 |
| Stakeholder Architecture Requirements | p. 134 |
| Constraints | p. 136 |
| Nonfunctional Requirements | p. 136 |
| Risks | p. 137 |
| ICDE Solution | p. 137 |
| Architecture Patterns | p. 137 |
| Architecture Overview | p. 138 |
| Structural Views | p. 139 |
| Behavioral Views | p. 142 |
| Implementation Issues | p. 145 |
| Architecture Analysis | p. 145 |
| Scenario Analysis | p. 145 |
| Risks | p. 146 |
| Summary | p. 146 |
| Middleware Case Study: Medici | p. 147 |
| Medici Background | p. 147 |
| Medici Hello World | p. 148 |
| Implementing Modules | p. 151 |
| MifProcessor | p. 151 |
| MifObjectProcessor | p. 151 |
| MifMessageProcessor | p. 152 |
| Module Properties | p. 152 |
| Endpoints and Transports | p. 153 |
| Connectors | p. 153 |
| Supported Transports | p. 154 |
| Medici Example | p. 157 |
| Initialize Pipeline | p. 158 |
| Chat Component | p. 159 |
| Implementation code | p. 161 |
| Component Builder | p. 161 |
| Summary | p. 163 |
| Further Reading | p. 163 |
| Looking Forward | p. 165 |
| Introduction | p. 165 |
| The Challenges of Complexity | p. 165 |
| Business Process Complexity | p. 166 |
| Agility | p. 167 |
| Reduced Costs | p. 168 |
| What Next | p. 169 |
| The Semantic Web | p. 171 |
| ICDE and the Semantic Web | p. 171 |
| Automated, Distributed Integration and Collaboration | p. 172 |
| The Semantic Web | p. 173 |
| Creating and Using Metadata for the Semantic Web | p. 174 |
| Putting Semantics in the Web | p. 176 |
| Semantics for ICDE | p. 178 |
| Semantic Web Services | p. 180 |
| Continued Optimism | p. 181 |
| Further Reading | p. 182 |
| Aspect Oriented Architectures | p. 185 |
| Aspects for ICDE Development | p. 185 |
| Introduction to Aspect-Oriented Programming | p. 186 |
| Crosscutting Concerns | p. 186 |
| Managing Concerns with Aspects | p. 187 |
| Aop Syntax and Programming Model | p. 188 |
| Weaving | p. 189 |
| Example of a Cache Aspect | p. 190 |
| Aspect-Oriented Architectures | p. 191 |
| Architectural Aspects and Middleware | p. 192 |
| State-of-the-Art | p. 193 |
| Aspect Oriented Modeling in Uml | p. 193 |
| Aop Tools | p. 193 |
| Annotations and Aop | p. 194 |
| Performance Monitoring of ICDE with AspectWerkz | p. 195 |
| Conclusions | p. 197 |
| Further Reading | p. 198 |
| Model-Driven Architecture | p. 201 |
| Model-Driven Development for ICDE | p. 201 |
| What is Mda? | p. 203 |
| Why Mda? | p. 205 |
| Portability | p. 205 |
| Interoperability | p. 206 |
| Reusability | p. 207 |
| State-of-Art Practices and Tools | p. 208 |
| AndroMda | p. 208 |
| ArcStyler | p. 209 |
| Eclipse Modeling Framework | p. 209 |
| Mda and Software Architecture | p. 210 |
| Mda and Nonfunctional Requirements | p. 211 |
| Model Transformation and Software Architecture | p. 211 |
| Soa and Mda | p. 212 |
| Analytical Models are Models Too | p. 212 |
| Mda for ICDE Capacity Planning | p. 214 |
| Summary and Further Reading | p. 216 |
| Software Product Lines | p. 219 |
| Product Lines for ICDE | p. 219 |
| Software Product Lines | p. 220 |
| Benefiting from Spl Development | p. 222 |
| Product Lines for ICDE | p. 223 |
| Product Line Architecture | p. 223 |
| Find and Understand Software | p. 224 |
| Bring Software into the Development Context | p. 225 |
| Invoke Software | p. 225 |
| Software Configuration Management for Reuse | p. 225 |
| Variation Mechanisms | p. 227 |
| Architecture-Level Variation Points | p. 227 |
| Design-Level Variation | p. 227 |
| File-Level Variation | p. 228 |
| Variation by Software Configuration Management | p. 228 |
| Product Line Architecture for ICDE | p. 228 |
| Adopting Software Product Line Development | p. 229 |
| Product Line Adoption Practice Areas | p. 231 |
| Product Line Adoption for ICDE | p. 231 |
| Ongoing Software Product Line Development | p. 232 |
| Change Control | p. 232 |
| Architectural Evolution for Spl Development | p. 233 |
| Product Line Development Practice Areas | p. 234 |
| Product Lines with ICDE | p. 234 |
| Conclusions | p. 235 |
| Further Reading | p. 236 |
| Index | p. 239 |
| Table of Contents provided by Ingram. All Rights Reserved. |
ISBN: 9783642191756
ISBN-10: 3642191754
Published: 6th May 2011
Format: Hardcover
Language: English
Number of Pages: 260
Audience: Professional and Scholarly
Publisher: Springer Nature B.V.
Country of Publication: GB
Edition Number: 2
Edition Type: Revised
Dimensions (cm): 24.8 x 16.0 x 2.1
Weight (kg): 0.54
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

Architecture Patterns with Python
Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
Paperback
RRP $125.75
$60.99
OFF
























