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...
Otros Autores: | , , |
---|---|
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.