Essential Software Architecture
Format: PDF / Kindle (mobi) / ePub
Job titles like "Technical Architect" and "Chief Architect" nowadays abound in the 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 helps resolve this predicament. 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 software structure and quality attributes, through technical issues like middleware components and documentation techniques, to emerging technologies like model-driven architecture, software product lines, aspect-oriented design, service-oriented architectures, and the Semantic Web, all of which will influence future software system architectures.
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 source of knowledge.
"Ian's book helps us to head in the right direction through the various techniques and approaches... An essential guide to computer science students as well as developers and IT professionals who aspire to become an IT architect". (Anna Liu, Architect Advisor, Microsoft Australia)
when thinking about the qualities an application that you’re working on must possess. 3.2 Performance Although for many IT applications, performance is not a really big problem, it gets most of the spotlight in the crowded quality attribute community. I suspect this is because it is one of the qualities of an application that can often be readily quantified and validated. Whatever the reason, when performance matters, it really does matter. Applications that perform poorly in some critical
that an ESB provides fundamental mechanisms for complex integration architectures via an event-driven and standards-based messaging engine. There’s some debate about whether an ESB is a technology or a software integration design pattern, but some debates really aren’t worth getting involved in. You can buy or download products called ESBs, and these typically provide a messaging-based middleware infrastructure that has the ability to connect to external system endpoints over a variety of
instruments, and networks is naturally processed by software applications structured as a pipeline.1 Pipelines comprise a sequence of software components that progressively process discrete units of data to produce a desired outcome. For example, in a Web crawler that is extracting semantics from text on Web sites, the first stage in the pipeline might be to remove all HTML tags to leave only the raw text of the document. The second step may parse the raw text to break it down into its
two entities. For example, consider the XML fragment in Fig. 12.2. It describes a Person in terms of Name, Email_Address, and Phone_Number, and a Transaction in terms of Type, Client, and AccountNumber. The example also shows the use of attributes to create unique identifiers (id) for each entity. XML is however not adequate for easy identification of relationships between pieces of information. For example, using only the XML tag metadata in the figure, the identification of the email address of
created. The current state of Semantic Web Services shows promise for enterprise integration, but they currently lack the capacity for automated discovery and composition of services. Nonetheless, it seems inevitable that Semantic Web Services will soon define an automated mechanism for finding and composing services and change the way we think about software systems. 12.8 Continued Optimism The Semantic Web has enjoyed immense publicity in the past few years. Many research project