Table of Contents:
  • 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
  • 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
  • Includes bibliographical references