Module 1: Distributed Systems Theory
Decades of distributed systems development have taught us many lessons. In this module we’ll cover many historical mistakes as well as proven best practices for scalable and robust design.
8 fallacies of distributed systems
Module 2: Coupling: Platform, Temporal, & Spatial
Loose coupling has become the watchword of complex systems development, yet few understand its multiple dimensions. In the module we’ll be covering the three different dimensions of coupling as well as patterns for dealing with them.
Platform Coupling – XML/SOAP
Temporal Coupling – Synchronous/Asynchronous
Spatial Coupling – Endpoints/Topics
Module 3: Asynchronous Messaging Patterns
Although scalability is achieved through the use of asynchronous message passing, more advanced message exchange patterns are required to handle today’s complex integration scenarios. This module will cover the most commonly used patterns:
Module 4: Bus & Broker Architectural Styles
Enterprise Service Buses are all the rage these days. In this module we’ll be covering what’s the difference between the Bus architectural style, and the more well-known Broker, found commonly in many EAI projects.
Topics will include:
Architectural advantages and disadvantages
Technological advantages and disadvantages
Module 5: SOA Building Blocks
One of the goals of SOA is to develop systems which are more closely aligned with Business. In this module we’ll be covering an analysis methodology from moving from the business domain to executable systems that comply with all the principles of loose- coupling.
Autonomous components & Queues
Module 6: Scalability and Flexibility
In order to enable agility, services must be able to scale up, out, and down quickly. In this module we’ll see how autonomous components can be configured including transactional and durable aspects of message handling.
Configuring autonomous components
Scaling up and out
Module 7: Long running processes
The distributed communications patterns would not be complete without a discussion on orchestration. In this module we’ll see how to manage the state of long-running distributed communication flows as well as:
Encapsulating process logic
Advantages & disadvantages of orchestration
Module 8: Service / Autonomous Component Solution Structure
As developers go to implement autonomous components, guidance is required as to which concepts need to implemented in which project, what dependencies are there between projects, and how to bridge the worlds of messaging, business logic and reporting.
Messages + Handlers
Module 9: Service Layer – Domain Model Interaction
Logic-rich services require the use of advanced techniques for logic componentization. The Domain Model Pattern enforces a high level of Separation of Concerns, yet it must eventually be connected with Service Layer code that supports many concurrent users.
In this module, the topics covered will include:
Domain Model introduction
Testing Domain Models
Optimistic, Pessimistic, and Realistic Concurrency Models
Module 10: Creating High-Performance Domain Models
The strong separation between the Domain Model and the database which stores and retrieves its data may enable a high level of testability, yet often causes performance problems. In this module, we’ll see the various aspects impacting the performance of persistence:
Transactions and Isolation Levels
Lazy Loading, Eager Fetching
Databases Tips & Tricks
Module 11: Web Services and User Interfaces
The ease of interacting with users over the web drives the need for service to UI interactions. Also, many integrations require exposing synchronous web services to customers. In this module, we’ll see what is required in both cases:
ASP.NET 2.0 Asynchronous Tasks
Rich Internet Applications and Services
Web Services for integration
Module 12: Case Study
This course will wrap up with an enterprise case study that draws upon all lessons showing students how all the patterns and principles work together in a solution.
Each day will end with a general discussion, review and wrap up.
The Software Simplist - Enterprise Development Expert and SOA Specialist bio from Twitter
Sign in to add slides, notes or videos to this session