Real World SOA: Design and Implementation
This course is a continuation of the course 'Real World SOA: Analysis and Design.' In that course, you studied SOA analysis and overall design, here you will get more detailed about implementation.
What you'll learn
In the Analysis and Design course you covered the business aspects of SOA and SOA reference architecture building blocks. In this course, Real World SOA: Design and Implementation, you'll move into the detailed design and implementation of SOA services. First, you'll look into the design principles that drive the entire design effort and the structure and dynamics of services. Then, you'll learn the different MEPs supported by services and the management of state, sessions, and client-service interactions. Finally, you'll learn the security of services, and various other topics. By the end of this course, you'll learn all you need to know about the design and implementation of SOA.
Table of contents
- Introduction 0m
- What Is Integration? 1m
- How SOA and Integration Relate? 1m
- Integration Services 2m
- The Interface of Integration Services 1m
- Integration Services Design Tradeoffs 4m
- But What if Existing Systems Already Expose Web Services? 2m
- Bottom-up Analysis: Identify Integration Services 3m
- Case Study: Identify Integration Services 3m
- Summary 1m
- Introduction 1m
- What Are SOA Design Principles? 1m
- Principle #1: Contract Standardization 2m
- Standardization Techniques and Benefits 5m
- Principle #2: Loose Coupling 4m
- Coupling Reduction Strategies 4m
- Principle #3: Reusability 2m
- Principle #4: Abstraction 2m
- Principle #5: Autonomy 3m
- Principle #6: State Management 5m
- State Reduction Guidelines 2m
- Principle #7: Discoverability 3m
- Principle #8: Composability 1m
- Design Principles During the Analysis Phase 2m
- Where Are the Demos? 1m
- Summary 3m
- Introduction 1m
- Service Model and Channel Layer 2m
- Binding Elements 2m
- Channel Layer 2m
- Channel Factories and Channel Listeners 1m
- Channel Factories 2m
- Channel Listeners 2m
- Channel Shapes 4m
- Dispatcher 2m
- Demo: Programmatically Working with Channel Factories 3m
- Demo: Programmatically Working with Channel Shapes 4m
- Summary 1m
- Introduction 1m
- Client-service Session 3m
- Demo Preparation: RawCap and Wireshark 1m
- Demo: Transport Session 3m
- Demo: Application Session 4m
- Service State 3m
- Demo: Service State 5m
- Scalability: The Role of Session and State 3m
- Scalability Tip 1: HTTP-keep Alive 4m
- Scalability Tip 2: TCP Connection Pooling 2m
- Scalability Tip 3: Binary XML Encoding Over HTTP 2m
- Scenario Design Options: 'Unrelated' Calls 3m
- Demo: No Session with No State 2m
- Scenario Design Options: 'Related Calls' 2m
- Demo: Option1 – Session with Service State 2m
- Demo: Option2 – No Session with Persisted (Deferred) State 4m
- Demo: Option3 – No Session/State and Change Granularity 4m
- Scalability Tip 4: Separating Heavy Operations 2m
- Scalability Tip 5: Execution State (Memory) Management 1m
- Scalability Tip 6: Concurrency 1m
- Affected Design Principles 1m
- Summary 2m
- What's Next? 0m
- Introduction 1m
- What Is Message Reliability? 3m
- Reliable Messaging Protocol 2m
- Demo: Reliable Messaging 3m
- Scenario #1: Network Reliability – Lost Response 2m
- Demo: Scenario1 5m
- Scenario #2: Network Latency – Delayed Request 1m
- Demo: Scenario #2 4m
- Reliable Messaging and Concurrency 1m
- Demo: RM and Concurrency 2m
- Reliable Session and Service State 1m
- What About Guaranteed Delivery? 1m
- Reliable Messaging Pros, Cons, and Recommendations 3m
- Business Semantics 4m
- Remember: Study Your Reliability Requirements 1m
- Remember: We're in a Composition World! 1m
- Affected Design Principles 1m
- Summary 1m
- What's Next? 0m
- Introduction 1m
- Overview of Message Exchange Patterns (MEPs) 4m
- Understanding One-way 2m
- Case #1: HTTP Transport / No Application Session 1m
- Demo: Case #1 4m
- Case #2: HTTP Transport / Application Session 2m
- Demo: Case #2 3m
- Case #3: HTTP Transport / Application Session / One-way Contract 2m
- Demo: Case #3 2m
- Case #4: TCP Transport 2m
- Demo: Case #4 1m
- Case #5: TCP Transport / OneWayBindingElement 2m
- Demo: Case #5 1m
- Demo: Using Async with One-way 2m
- Recap: Recommendations for Using One-way 4m
- What’s Next? 0m
- Introduction 1m
- Datagram Pattern 4m
- Demo: Datagram 4m
- Duplex Pattern 1m
- Duplex in WCF 3m
- Demo: Duplex with NetTcpBinding 5m
- Demo: Duplex with WSDualHttpBinding 3m
- Design Recommendations for Duplex with TCP vs. HTTP 4m
- Duplex vs. Datagram vs. Async Request/Response 4m
- Publish-subscribe Pattern 2m
- Demo: Pub-sub Using Duplex 4m
- Publish-subscribe Using Datagram 1m
- 'True' Asynchronous Patterns Require Queuing 2m
- Affected Design Principles 0m
- Summary 3m
- What’s Next? 0m
- Introduction 1m
- The Security Concerns 2m
- Scenario #1: Client Authentication 4m
- Why Trust-based Authentication? 4m
- Demo Preparation 3m
- Demo: Trust-based Authentication 7m
- Scenario #2: Assigning Accounts to Clients at Large Scale SOA 6m
- Scenario #3: Tokens for Composing Multiple Services 3m
- Demo: Tokens for Composing Multiple Services 2m
- Scenario #4: Token Propagation in Multi-level Compositions 5m
- Demo: Passthrough Token 3m
- Demo: ActAs Token 4m
- Other Authentication Scenarios 3m
- Scenario #5: Authorization 2m
- Demo: Authorization 5m
- Scenario #6: Integrity and Privacy 1m
- Side Node: SSL and TLS 1m
- Transport-based Integrity and Privacy 4m
- Demo: HTTP/TCP Transport Security (with Issued Tokens) 5m
- Message-based Integrity and Privacy 3m
- Demo: HTTP Message Security (with Issued Tokens) 5m
- TCP Message Security (with Issued Tokens) 1m
- Scenario #7: Transport Security and Load Balancers SSL Offloading 3m
- Demo: Transport Security and SSL Offloading 3m
- Scenario #8: End-to-End Protection Through Intermediaries 2m
- Other Attacks: Replay, Non-repudiation, Man-in-the-Middle 5m
- Affected Design Principles 1m
- Summary 4m
- What’s Next? 0m
- Introduction 1m
- Why Routing? 3m
- Why Not the WCF Out-of-the-Box Router? 1m
- Scenario #1: Untrusted Router 1m
- Step #1: Receive Messages 1m
- Step #2: Build Routing Logic 1m
- Step #3: Customize the Dispatching Process 2m
- Step #4: Understand Request Security Header 1m
- Step #5: Route Messages 2m
- Step #6: Understand Response Security Header 1m
- Demo: Untrusted Router 5m
- What About Authenticating to the Router Itself? 2m
- Scenario #2: Trusted Router 2m
- (Unique) Steps to Build the Trusted Router 3m
- Demo: Trusted Router 3m
- What if the Service Does Not Want the Router Identity? 1m
- Scenario #3: Duplex Router 2m
- Demo: Duplex Router 3m
- Extending the Router with Guaranteed Delivery 1m
- What About ESB Routing? 1m
- Affected Design Principles 0m
- Summary 1m
- What’s Next? 0m
- Introduction 1m
- What Is Dynamic Discovery? 2m
- Discovery Models 3m
- The Discovery Service 2m
- Demo: Part 1 – The Discovery Service 3m
- Demo: Part 2 – Making the Service Discoverable 2m
- Demo: Part 3 – Client Probing 2m
- Demo: Part 4 – Running the Demo 4m
- Discovery vs. Routing 3m
- Discovery with Routing 2m
- Discovery and Composition 2m
- What About Design Time Discoverability? 2m
- Affected Design Principles 1m
- Summary 1m
- Introduction 1m
- Before You Start: Prerequisites for this Module 1m
- Basic Definitions 3m
- Demo: Atomic Distributed Transaction 5m
- Scalability and Performance: Locking and Isolation Levels 5m
- Demo: Locking and Isolation Levels 4m
- Transaction Voting 2m
- Atomic Transactions in Our SOA Reference Architecture 4m
- The Problems of Atomic Transactions 5m
- Explicit Management of Transactions 1m
- Saga (Compensation) 3m
- Business Implications You Need to Plan For 5m
- Reservation 3m
- Affected Design Principles 1m
- Summary 2m
- Introduction 1m
- What Is this Module About? 1m
- What Is an ESB? 4m
- What Is the First Thing that You Noticed? 1m
- Sample Scenario 2m
- Part 1: Messaging Services 1m
- Part 2: Business Process Services 4m
- Part 3: Transformation Services 1m
- Part 4: Business Users Services 1m
- Demo: The Sample Scenario 4m
- Shall We Always Use the Services of an ESB Product? 3m
- Summary 1m
- Introduction 1m
- Exception Handling 1m
- Logging Exceptions and Taking Corrective Actions 2m
- Reporting System Exceptions 3m
- Reporting Business Exceptions 1m
- Reporting Exceptions by Composition Controllers 1m
- How to Report Exceptions? 1m
- Versioning 2m
- Overarching Guideline: Limited Use of Version Tolerance 3m
- Scenario: Update Service And/Or Data Contracts 2m
- Scenario: Update Binding Information 1m
- Scenario: Update Service Implementation and SLAs 2m
- Scenario: Update Fault Contracts 3m
- Summary 1m