2 options
Architectural patterns : uncover essential patterns in the most indispensable realm of enterprise architecture / Pethuru Raj, Anupama Raman, Harihara Subramanian.
- Format:
- Book
- Author/Creator:
- Raj, Pethuru, author.
- Raman, Anupama, author.
- Harihara Subramanian, author.
- Language:
- English
- Subjects (All):
- Software architecture.
- Physical Description:
- 1 online resource (1 volume) : illustrations
- Edition:
- 1st edition
- Place of Publication:
- Birmingham, England : Packt, 2017.
- System Details:
- text file
- Summary:
- 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 microservices to build resilient and highly available applications Choose between the MVP, MVC, and MVVM patterns depending on the application being built Who This Book Is For This book will empower and enrich IT architects (such as enterprise architects, software product architects, and solution and system architects), technical consultants, evangelists, and experts. What You Will Learn Understand how several architectural and design patterns work to systematically develop multitier web, mobile, embedded, and cloud applications Learn object-oriented and component-based software engineering principles and patterns Explore the frameworks corresponding to various architectural patterns Implement domain-driven, test-driven, and behavior-driven methodologies Deploy key platforms and tools effectively to enable EA design and solutioning Implement various patterns designed for the cloud paradigm In Detail Enterprise Architecture (EA) is typically an aggregate of the business, application, data, and infrastructure architectures of any forward-looking enterprise. Due to constant changes and rising complexities in the business and technology landscapes, producing sophisticated architectures is on the rise. Architectural patterns are gaining a lot of attention these days. The book is divided in three modules. You'll learn about the patterns associated with object-oriented, component-based, client-server, and cloud architectures. The second module covers Enterprise Application Integration (EAI) patterns and how they are architected using various tools and patterns. You will come across patterns for Service-Oriented Architecture (SOA), Event-Driven Architecture (EDA), Resource-Oriented Architecture (ROA), big data analytics architecture, and Microservices Architecture (MSA). The final module talks about advanced topics such as Docker containers, high performance, and reliable application architectures. The key takeaways include understanding what architectures are, why they're used, and how and where architecture, design, and integration patterns are being leveraged to build better and bigger systems. Style and Approach This book adopts a hands-on approach with re...
- Contents:
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- Notes:
- Includes index.
- Description based on online resource; title from PDF title page (ebrary, viewed February 5, 2018).
- ISBN:
- 9781787287495
- 1787287491
- 9781787288348
- 178728834X
- OCLC:
- 1021185681
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.