Architectural patterns uncover essential patterns in the most indispensable realm of enterprise architecture

Learn the importance of architectural and design patterns in producing and sustaining next-generation IT and business-critical applications with this guide. About This Book Use patterns to tackle communication, integration, application structure, and more Implement modern design patterns such as mic...

Descripción completa

Detalles Bibliográficos
Otros Autores: Raj, Pethuru, author (author), Raman, Anupama, author, Harihara Subramanian, author
Formato: Libro electrónico
Idioma:Inglés
Publicado: Birmingham, England : Packt 2017.
Edición:1st edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630249806719
Tabla de Contenidos:
  • Cover
  • Copyright
  • Credits
  • About the Authors
  • About the Reviewer
  • www.PacktPub.com
  • Customer Feedback
  • Table of Contents
  • Preface
  • Chapter 1: Demystifying Software Architecture Patterns
  • Envisioning the software-defined world
  • Software patterns
  • Why software patterns?
  • The prime ingredients of a software pattern
  • The types of software patterns
  • Software architecture patterns
  • Object-oriented architecture (OOA)
  • Component-based assembly (CBD) architecture
  • Domain-driven design (DDD) architecture
  • Client/server architecture
  • Multi-tier distributed computing architecture
  • Layered/tiered architecture
  • Event-driven architecture (EDA)
  • The major issues with EDA
  • Service-oriented architecture (SOA)
  • Service-inspired integration (SOI)
  • Event-driven service-oriented architecture
  • The EDA fundamental principles
  • The ED-SOA composite pattern benefits
  • Microservices architecture (MSA)
  • Event-driven microservices patterns
  • Space-based architecture (SBA)
  • Combining architecture patterns
  • Special-purpose architectures
  • Real-time context-aware prediction architecture
  • Summary
  • Additional reading materials
  • Chapter 2: Client/Server Multi-Tier Architectural Patterns
  • Domain name service (DNS) server and DNS client
  • The workings of a DNS
  • Functional requirements in two-tier client-server patterns
  • Distribution of functional requirements in a client-server pattern
  • The remote data access client-server pattern
  • The remote presentation client-server pattern
  • The split logic data client-server architecture pattern
  • The three-tier pattern / multi-tier pattern client-server
  • The master-slave pattern
  • Issues in the master-slave pattern
  • Peer-to-peer patterns
  • Advantages of two-tier client-server patterns
  • Design considerations - when to use a two-tier client-server pattern?.
  • Limitations of two-tier client-server patterns
  • Three-tier client-server architecture
  • Design considerations for using three-tier architecture
  • Design considerations for n-tier architecture
  • An example of n-tier architecture (shopping cart web application)
  • The distributed client-server architecture
  • Motivation for development of web application patterns
  • Workings of the MVC pattern
  • The ASP.Net framework
  • The model view presenter (MVP) pattern
  • The model-view-viewmodel (MVVM) pattern
  • Key advantages of the MVVM pattern
  • Design considerations for using the MVVM pattern
  • Prism
  • Design patterns for web application development
  • The front controller pattern
  • Spring framework
  • Summary
  • Chapter 3: Object-Oriented Software Engineering Patterns
  • Key elements of OOD
  • Additional elements of OOD
  • Design principles
  • Single responsibility principle (SRP) - SOLID
  • Open and close principle - SOLID
  • Liskov substitution principle (LSP) - SOLID
  • Interface segregation principle (ISP) - SOLID
  • Dependency inversion principle (DIP) - SOLID
  • Other common design principles
  • OO design patterns
  • Creational design patterns
  • Factory method (virtual constructor)
  • Abstract factory (kit)
  • Builder
  • Prototype
  • Singleton
  • Structural design patterns
  • Adapter class (wrapper)
  • Adapter (object)
  • Bridge (handle/body)
  • Composite
  • Decorator
  • Façade
  • Flyweight
  • Proxy
  • Behavioral patterns
  • Chain of responsibility
  • Command (action/transaction)
  • Interpreter
  • Iterator (cursor)
  • Mediator
  • Memento
  • Observer (dependents/publish/subscribe)
  • State (objects for states)
  • Strategy (policy)
  • The template method
  • Visitor
  • Concurrency patterns
  • Concurrency design pattern
  • Producer-consumer
  • Active object
  • Monitor object
  • Concurrency architectural pattern
  • Summary
  • References.
  • Chapter 4: Enterprise Integration Patterns
  • Need for integration patterns
  • Integration scenarios in enterprises
  • Information portal
  • Data replication
  • Shared business function
  • Service-oriented architecture
  • Distributed business process management
  • The business-to-business integration
  • Main challenges in enterprise integration
  • File transfer
  • Shared database
  • Remote procedure invocation
  • Messaging
  • Getting started with messaging patterns
  • Pipe and filter pattern
  • Message router pattern
  • Message translator pattern
  • Message endpoint pattern
  • Point-to-point channel pattern
  • Publish-subscribe channel pattern
  • Datatype channel pattern
  • Message bus patterns
  • Command message patterns
  • Event message patterns
  • Request-reply pattern
  • Content-based router pattern
  • Message filter pattern
  • Resequencer pattern
  • Polling consumer pattern
  • Channel adapter
  • Mobile integration pattern
  • Request-response pattern
  • Defining a push notification pattern
  • API management pattern
  • Summary
  • Chapter 5: Domain-Driven Design (DDD) Principles and Patterns
  • Principles, characteristics, and practices of DDD
  • Principles
  • Focusing on the core domain
  • Collaborate and learn
  • Model the domain
  • Evolve
  • Talk in ubiquitous language
  • Characteristics
  • Best practices
  • DDD patterns
  • Strategic patterns
  • Ubiquitous language
  • Domain, subdomain, and core domain
  • Bounded contexts
  • Integrating bounded contexts
  • Autonomous bounded context
  • The shared-nothing architecture
  • Single responsibility codes
  • Multiple bounded contexts (within a solution)
  • Adoption of SOA principles
  • Integrating with legacy systems
  • The bubble context
  • The anti-corruption layer
  • Expose as a service
  • Distributed bounded context integration strategies
  • Database integration
  • Flat file integration.
  • Event-driven architecture and messaging
  • Tactical patterns
  • Patterns to model the domain
  • Entities
  • Value objects
  • Domain services
  • Modules
  • Aggregates
  • Factories
  • Repositories
  • Emerging patterns
  • Domain events
  • Event sourcing
  • Other patterns
  • Summary
  • References and further reading materials
  • Chapter 6: Enterprise Architecture Platforms and Tools
  • Overview of enterprise architecture frameworks
  • Getting started with TOGAF
  • Architecture development method (ADM)
  • Deliverables, artifacts, and building blocks
  • Enterprise continuum
  • Architecture repository
  • Advantages of using TOGAF
  • Limitations of TOGAF
  • Zachman framework for enterprise architecture
  • Advantages
  • Restrictions
  • Guidelines for choosing EAF
  • Enterprise architecture platforms and tools
  • Enterprise Architect from Sparx Systems
  • Dragon1
  • ABACUS from avolution software
  • Architecture of ABACUS
  • Summary
  • References
  • Chapter 7: Service-Oriented Architecture (SOA)
  • Web services and SOA
  • Introduction to SOA
  • Life cycle of SOA
  • Primary characteristics of SOA
  • Service interconnectivity with well-defined interfaces
  • Standard interfaces and Service level agreements
  • Event-driven and messaging
  • Flexible
  • Evolution
  • Principles of SOA
  • Standardized service contract
  • Service interoperability
  • Service abstraction
  • Service autonomy
  • Service composability
  • Service discoverability
  • Service loose coupling
  • Service reusability
  • Service statelessness
  • SOA design patterns
  • Service messaging
  • Message screening
  • Agnostic services
  • Atomic service transaction
  • Authentication broker
  • Message origin authentication
  • Service façade
  • Multiple service contract
  • Service callback
  • Event-driven messaging
  • Service refactoring
  • Metadata centralization
  • Principles and patterns cross reference.
  • Summary
  • Chapter 8: Event-Driven Architectural Patterns
  • Service-oriented architecture and event-driven architecture (SOA versus EDA)
  • Key characteristics of event-driven patterns
  • Components of an EDA pattern
  • Event flow layers
  • Event generators
  • Event channel
  • Event processing
  • Downstream event-driven activity
  • Design considerations for event-driven patterns
  • Implementation variants of EDA patterns
  • Simple event processing patterns
  • Event stream processing patterns
  • Complex event processing (CEP) patterns
  • Types of event-driven patterns
  • Event mediator topology pattern
  • Event broker topology pattern
  • Hub and spoke pattern
  • Broadcast pattern
  • Polling pattern
  • EDA pattern implementation in systems/processes
  • Event log
  • Event collectors
  • Reply queue
  • Improving the performance of EDA-based processes/systems
  • IBM WebSphere MQ
  • Emerging trends in EDA
  • Event-driven microservices
  • Complex event processing
  • Internet of Things (IoT) and EDA
  • References
  • Summary
  • Chapter 9: Microservices Architecture Patterns
  • Microservices patterns
  • Decomposition patterns
  • Decomposition by use case pattern
  • Decomposition by resources pattern
  • Decomposition by business capability pattern
  • Decomposition by subdomain pattern
  • Microservices deployment pattern
  • Multiple service instances per host pattern
  • Single service instance per host pattern
  • Service instance per VM pattern
  • Service instance per container pattern
  • Serverless deployment pattern
  • Service deployment platform pattern
  • Microservices design patterns
  • Aggregator microservice design pattern
  • Proxy microservice design pattern
  • Chained microservice design pattern
  • Microservice chassis pattern
  • Externalized configuration pattern
  • Microservices database patterns
  • Database per service pattern.
  • Shared data design pattern.