A session at Udi Dahan's Advanced Distributed Systems Design with SOA

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.

Topics include:

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:

One way
Correlated Request/Response

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.

Business Services
Business Components
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.

Topics include:

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.

About the speaker

This person is speaking at this event.

The Software Simplist - Enterprise Development Expert and SOA Specialist bio from Twitter

Sign in to add slides, notes or videos to this session

Tell your friends!

View the schedule


See something wrong?

Report an issue with this session