280 likes | 429 Views
FT14. Workflow Services and Windows Server AppFabric (formerly codename “Dublin”). Mark Fussell Program Manager Microsoft Corporation. Challenges. Work is increasingly distributed “I want the benefits of service-orientation and help with managing the complexity”
E N D
FT14 Workflow Services andWindows Server AppFabric(formerly codename “Dublin”) Mark Fussell Program Manager Microsoft Corporation
Challenges • Work is increasingly distributed • “I want the benefits of service-orientation and help with managing the complexity” • This leads to complex code for coordination • “I want to focus on solving the business problem” • Configuring an environment to deploy and run services is difficult • “I want to get my WF and WCF services up and running” • Minimal management and visibility into the operation of services in production • “I want to easily monitor and control running WF and WCF services”
WCF and WF in .NET 4 Workflow Service Host Management Endpoint Persistence (Instances) Persistence Behavior Activity Library message Receive Monitoring Send Tracking Behavior ...
Windows Server AppFabric(formerly codename “Dublin”) Evolution of WAS/IIS and Windows Application Server role to run and manage WCF and WF services Ships as part of 2010Wave IIS Manager Modules Windows Server Windows Server AppFabric Management Tools PowerShell Services Workflows Hosting Persistence Monitoring Caching .NET Framework IIS/WAS Runtime Databases Persistence Monitoring
Building and Managing Workflow Services with Visual Studio 2010and Windows Server AppFabric demo
Coordination of WorkAsynchronous Messaging Coordinate multiple service calls Best Price Workflow Service Get Price Supplier One Service Add/Remove Item Calculate Best Price Get Price Supplier Two Service Purchase Service
Context Based Correlation Content Based Correlation <-New in .NET 4 Message CorrelationThe mechanism for relating messages to each other or to application instance state Persistence DB (Instances) Workflow Service create correlation key3 2. Save (key 3) 1. Start Receive 3. Send (key 3) Send Key Instance 123 | key 1 123 | data 5. Load (key 3) 4. Receive (key 3) 456 | data 456 | key 2 Receive 789 | data 789 | key 3 A11 | key 4 A11 | data 6.Complete
Message CorrelationThe mechanism for relating messages to each other or to application instance state Content Based Correlation Persistence DB (Instances) create correlation 1. Add item (userId 3) 2. Save (userId 3) Receive 3. View items (userId 3) 4. Load (userId 3) Receive Key Instance 123 | userid 1 123 | data 5. Best Price (userId 3) 6. Load (userId 3) 456 | data 456 | userid 2 Receive 789 | data 789 | userid 3 A11 | userid4 A11 | data
Message Correlation demo
Monitoring IIS Manager Modules Windows Server Windows Server AppFabric Management Tools PowerShell Services Workflows Hosting Persistence Monitoring Caching .NET Framework IIS/WAS Runtime Databases Persistence Monitoring
Monitoring • Consistent WCF and WF instrumentation integrated with Event Tracing for Windows (ETW) • WCF trace events • WF tracking events • Improved performance means less impact on your applications • Visibility into the operation of services • Scenarios • Health monitoring – “How well is my app running?” • Troubleshooting – “What has failed with my app?”
Monitoring Windows Server AppFabric Monitoring Tools Workflow Service WCF Trace ETW Tracking Participant Monitoring Database Event Collector Service Tracking Profile • Event Collector Service • A Windows Service installed with the Windows Server AppFabric • Collects WCF and WF instrumentation events into the Monitoring DB
Health Monitoring and Troubleshooting Workflow Services demo
Persistence IIS Manager Modules Windows Server Windows Server AppFabric Management Tools PowerShell Services Workflows Hosting Persistence Monitoring Caching .NET Framework IIS/WAS Runtime Databases Persistence Monitoring
Persistence • Storing WF Application State • Ensures that durable Workflows can be recovered and processing resumed • Scenarios • Reliability - Long running workflows • Availability - Recovery when application or machine crashes • Scalability - A workflow unloads idle instances from memory; the retry loading of locked instances
Persistence • Workflow Management Service for IIS/WAS • A Windows Service installed with the Windows Server AppFabric that monitors the Persistence DB • Instance restart including graceful shutdown • Activates durable timers • Executes instance control commands Windows Server AppFabric Workflow Service Management Endpoint Workflow Management Service Persistence DB Instance 123 | data 456 | data 789 | data 011 | data
Workflow Service User Model • Suspended • Reason: • Exception code • Exception text Running Active - In Memory Idle – Persisted Suspend Resume • Successful Completion • Terminate • Cancel • Terminate • Cancel Completed • Operator Commands: • Suspend, Resume, Terminate and Cancel
Instance Availability in a Farm Load Balancer Windows Server AppFabric • Windows • Server • AppFabric • Windows • Server • AppFabric Workflow Service Workflow Service Workflow Service Workflow Management Service Workflow Management Service Workflow Management Service Persistence DB Instance 123 | data 456 | data 789 | data 011 | data
Summary • Workflow is ideally suited for business services • Workflow services handle complex coordination • Composition of services • Message correlation to instances • The Windows Server AppFabric supports WCF and Workflow services by • Providing runtime databases • Capabilities for monitoring, persistence, hosting and caching • Tooling and scripting to manage and monitor WCF and WF services
Call to Action • Download Visual Studio 2010 and .NET 4 Beta 2 • http://msdn.microsoft.com/vstudio • Download Windows Server AppFabric Beta 1 • http://msdn.microsoft.com/appfabric
YOUR FEEDBACK IS IMPORTANT TO US! Please fill out session evaluation forms online at MicrosoftPDC.com
Learn More On Channel 9 • Expand your PDC experience through Channel 9 • Explore videos, hands-on labs, sample code and demos through the new Channel 9 training courses channel9.msdn.com/learn Built by Developers for Developers….