WCF4_WF4_Dublin_Tutorial

Download Report

Transcript WCF4_WF4_Dublin_Tutorial

Michele Leroux Bustamante, IDesign Zoiner Tejada, Hershey Technologies Session Code: PRC07

Michele Leroux Bustamante

Chief Architect IDesign: www.idesign.net

Microsoft Regional Director, MVP Connected Systems Published Author: ASP.NET Pro (WCF Column), MSDN, CoDe Learning WCF (O’Reilly 2007/2008/2009) Speaker: Tech Ed, PDC, Dev Connections, other international events Blogs: www.dasblonde.net

(main) www.thatindigogirl.com

(book)

Zoiner Tejada

Chief Software Architect Hershey Technologies: www.hersheytech.com

Microsoft Influencer & Advisor Published Author: WF Whitepaper on MSDN Monthly WF Article Series on MSDN Speaker: Tech Ed, PDC, Dev Connections, San Diego .NET User Group ArchSig Instructor: UCSD Extensions Blog: www.theworkflowelement.com

Agenda

The New Middle Tier: WCF 4 + WF 4 + Dublin Introducing WCF 4 Introducing WF 4 WF 4 Activity Development WCF Workflow Services Hosting WCF and WF in Dublin

Session Objectives And Takeaways

Session Objective(s): Review features of new middle tier functionality of Windows Server 2008 Discuss supporting tools and features in WCF 4, WF 4 and Dublin The new middle tier improves reliability, availability and scalability Includes enhancements for configuration, deployment, tracking, monitoring, persistence, and instance management

Enterprise Applications and the Middle Tier

The concept of a middle tier evolved as systems became more complex Need to distribute functionality Secure that functionality Improve productivity working with object models instead of direct database calls Middle tier is also referred to as an application server or container Most enterprise application scenarios rely on the middle tier to host and manage services

Intranet Applications

Classic client-server deployments The middle tier supplies services to remote clients All tiers belong to a particular Windows domain Intranet Client TCP Services Active Directory App Server Database Server

Web Services

The middle tier exposes interoperable services to remote clients Services based on SOAP and WS* protocols Internet Client (Basic Profile) HTTPS Services Internet Client (WS*) HTTP Web Server Database Server

HTTP Resources

The middle tier exposes resources over HTTP through a web programming model Protocols include POX, REST, AtomPub Browser AJAX HTTPS Services HTTP Browser Silverlight Web Server Database Server

Distributed Services

Services hosted in the middle tier may live behind the DMZ Web applications communicate with business services behind the firewall Browser HTTPS Web Application TCP Services Web Server App Server Database Server

Workflow Services

Middle tier functionality may be distributed across multiple physical tiers May expose workflow services to the internet, which coordinate calls to business services behind the firewall Browser HTTPS Workflow Services TCP Services Web Server App Server Database Server

Typical Middle Tier Characteristics

Development platform and runtime host for components and services Deployment, updates and versioning Instance lifecycle management Persistence and data access Security Monitoring and tracking Configuration and management tools Availability and scalability

The Application Server Role

What do we have today?

Windows Server 2008 supplies the Application Server Role for middle tier functionality Enables features and management tools Features include: Internet Information Services (IIS) 7 Windows Process Activation Service (WAS) .NET 3.0 ASP.NET

Microsoft Message Queuing (MSMQ) COM+ Services

The Application Server Role

What do we have today?

IIS Manager Management Tools WAS IIS 7 MSMQ WCF COM+ Services .NET Framework WF ASP.NET

ADO.NET

Windows Server 2008

The New Middle Tier

WCF 4 + WF 4 + Dublin

Collectively improves the application server role for Windows Server 2008 Provides much needed tools specifically for managing WCF and WF services Easier deployment Centralized configuration Visibility into application functionality Durable instance management Service discovery and routing Improved reliability, availability and scalability

The New Middle Tier

Middle Tier Features - Before

IIS Manager Configuration Monitoring Management Tools Hosting Security Security MSMQ WCF Security WAS IIS 7 Security COM+ Instance Mgt Security .NET Framework WF Security Windows Server 2008

.NET 4 Features Dublin Features

The New Middle Tier

Middle Tier Features - After

Hosting Instance Mgt Persistence Tracking Monitoring Discovery Routing Configuration Deployment IIS Manager Deployment Monitoring Instance Mgt Monitoring Management Tools Security IIS 7 Security Security MSMQ Security Security Discovery Routing Tracking .NET Framework Microsoft Confidential WAS COM+ Instance Mgt Security Tracking Persistence

The New Middle Tier

Dublin-Related Tools and Features

Quadrant

Model Deployment to Dublin

Visual Studio

WF and WCF Project Templates

IIS Manager

WF and WCF Management Modules

Dublin-Related Enhancements Dublin-Related Features Management APIs (PowerShell cmdlets) Hosting

Availability, Deployment, Control Durable Timer Service Discovery Service AutoStart Service

Persistence

Reliablility, Scalablity Instance Restart Behavior SQL Persistence Provider

Monitoring

Application Monitoring WF SQL Tracking WCF SQL Tracking

Messaging

Versioning, Partitioning, Routing Router Service

Persistence schema Runtime Databases WCF and WF Frameworks IIS/WAS Microsoft Confidential Windows Server 2008 Monitoring schema

The New Middle Tier

What are the core benefits?

Easier Deployment Improve developer productivity deploying from Visual Studio Make it easier to import and export applications in IIS with both UI and PowerShell Centralized Configuration Empower IT administrators to configure relevant settings for services Enable and configure new features for persistence, tracking, automatic start, exception handling, instance restart

The New Middle Tier

What are the core benefits?

Instance Management Built-in persistence model and instance management UI Can suspend, resume, abort or terminate workflow instances Tracking and Monitoring Increased visibility into WCF Workflow Services Useful for troubleshooting problems, report generation

The Buzz Shoppe

Order Fulfillment Service Submit Order Client Web App Labeling Service Create Label Check Inventory Approve Label Check Credit Finalize Order Orders Service Inventory Service Credit Card Processing Service

A Tour of Features

The New Middle Tier

The New Middle Tier

Reliability and Availability

The new middle tier supplies a platform with increased reliability and availability for WCF and WF Services Message-based activation Automatic start improves host responsiveness Persistence Improved lock management Restarting failed WF Service instances

The New Middle Tier

Scalability

New middle tier supports various scalability strategies Asynchronous messaging with WF Services Load balancing through persistence RouterService supports load balancing, content based, and other routing heuristics Improved lock management reduces contention across machines for an instance

Release and Requirements

The new middle tier is available to the following platforms: Windows Server 2008 + IIS7/WAS Vista + IIS7/WAS Windows 7 Intended for WCF 4 and WF 4 services Can host .NET 3.5 services, limited features .NET Framework 4 will release with VS 2010 Dublin to be released initially as a web download approximately 2-3 months later Eventually part of the operating system

Summary: The New Middle Tier

New features shipped with WCF 4, WF 4 and Dublin collectively extend the Application Server role on Windows Server 2008 The new middle tier is the standard hosting environment for WCF and WF Services Enhances deployment, configuration, tracking and monitoring, persistence, instance management Also improves overall application reliability, availability and scalability

Session Objectives And Takeaways

Session Objective(s): Understand the scenarios supported by WCF Learn new features to be released with WCF 4 WCF is a rich platform supporting many distributed computing scenarios WCF 4 introduces enhancements and new features related to configuration, tracing, messaging, serialization, discovery and routing Combined with the power of WF 4, workflow services and asynchronous programming models are more compelling

What Is WCF?

Windows Communication Foundation (WCF) WCF is a feature-rich platform for building distributed, interoperable, available, and scalable service-oriented applications Unifies programming models for remote communications: ASP.NET Web Services (ASMX), .NET Remoting, and Enterprise Services/COM+ Supports n-tier, simple web services, a rich set of WS* protocols, and web programming models (POX, REST, JSON, AtomPub)

Intranet Applications

WCF supports classic client-server deployments Services distributed across process or machine boundaries Characteristics: TCP/binary messaging Mutual Windows authentication NetTcpBinding Intranet Client TCP Service Business Components DALC Windows Active Directory

Web Services

WCF supports SOAP/WS* protocols to build interoperable services Characteristics: HTTP/Text messaging Transfer security via SSL or message security Username and password authentication (typical, but many options exist) Internet Client (Basic Profile) Internet Client (WS*) HTTPS UserName HTTP credentials BasicHttpBinding WSHttpBInding Service Business Components DALC

Distributed Services

WCF services can encapsulate business functionality for web applications Security boundary Distribution across boundaries Characteristics: TCP/binary messaging Mutual certificate authentication Browser HTTPS ASP.NET Application UserName credentials TCP NetTcpBinding Service Business Components DALC Certificate Certificate Store

SOA

WCF is a strategic part of a service-oriented application Services represent the boundary to all business logic Internet Client (Basic Profile) HTTPS Internet Client (WS*) HTTP Browser HTTPS ASP.NET Application WSHttp BasicHttp NetTcp Service Business Components Data Access

Web Programming

Browser AJAX WCF supports web programming models Useful for AJAX and Silverlight clients Characteristics: POX, REST, Atom/Pub Typically secured by URL with web application security WebHttpBinding HTTP/HTTPS Service Business Components DALC Browser Silverlight WebHttpBinding

WCF Platform Support

Released with the .NET Framework 3.0

Installed with Windows Vista, Windows Server 2008 Supported on Windows XP/SP2, Windows Server 2003 Enhanced with .NET Framework 3.5 + SP1 New features coming with .NET Framework 4 .NET Framework 4 WPF WF .NET Framework 3.5 / SP1 .NET

Framework 3.0

.NET Framework 2.0

Windows XP SP2 Windows Server 2003 Windows Vista WCF Windows Server 2008 CardSpace ..

WCF Fundamentals

Client App Proxy Endpoint Client Process ServiceHost Endpoint Endpoint Service Host Process

WCF Fundamentals

Client App Proxy C B A Client Process Endpoint A B C Address => where?

Binding => how?

Contract => what?

ServiceHost A B C A B C Service Host Process

WCF 101

WCF 3.0

Supplies core functionality Contracts and serialization Exception handling Protocol support via binding configuration Hosting with IIS, WAS, Windows Services, and any managed application host Control over instancing models, throttling Security scenarios from username/password to federated security Reliable messaging, queued calls, transactions

WCF 3.5

Support for partial trust scenarios such as Silverlight clients Productivity improvements VS 2008 templates, Add Service Reference WCF Service Host and WCF Test Client AJAX integration Updated for the latest WS* protocols Support for the web programming model POX, JSON, REST, Syndication Persistence with durable and workflow services

WCF 3.5 SP1

POCO data contracts, ADO.NET Entities Web programming enhancements Improved URI template support Improved object model for syndication Better productivity with VS 2008 Silverlight templates, improved WCF Test Client, deployment wizard Performance improvements Automatic channel factory caching Asynchronous support for IIS7 Diagnostics for partial trust scenarios

WCF 4

Configuration defaults, automatic endpoints New serialization features Features from the WCF REST Starter Kit Queued messaging enhancements Support for new protocols Service discovery based on WS-Discovery Content-based routing WCF Workflow Services High performance tracing with ETW

Service Discovery

WS-Discovery implementation SOAP over UDP using well-known endpoints Services announce joining/leaving network Discovery clients can receive announcements or probe for services Discovery Client Discovery Client Probe Announcements (hello/goodbye) Service A Service B Service A Service B

Discovery

Routing Service

Easy to configure routing implementation Routing and filtering based on predefined or custom heuristics Filter by action, address, header or body content Useful for: Content-based routing Versioning Partitioning Client Routing Service ServiceA ServiceB Filter Tables Config Filters

Routing

WCF Workflow Services

.NET 4 brings compelling reasons to build WCF services as Workflow Services Increased visibility through correlated tracking and tracing events Simplified implementation of asynchronous programming models Significantly improved performance of the WF runtime Declarative (XAMLX) services increase deployment and versioning options

WCF Workflow Services

High-Performance Tracing

WCF tracing based on Event Tracing for Windows (ETW) High-performance tracing, much improved over configuration WCF becomes an ETW event provider Dublin ships tooling to ETW controller and consumer to retrieve real-time events and push to monitoring store WF tracking and WCF tracing models are unified in .NET Framework 4

Summary: WCF 4

Solves pain points related to configuration, serialization, messaging and tracing Popular WCF REST Starter Kit features will be built-in to simplify web programming Discovery and routing provide much needed enterprise-ready features WCF Workflow Services simplify designing services, enable powerful asynchronous exchanges and increase visibility through tracking and tracing

Session Objectives And Takeaways

Session Objective(s): Understand reasons to use WF Know how to design, debug and run workflows Workflow has been greatly enhanced to minimize the need for code Workflow consists of activities, runtime and tools support

Why WF?

Implementation translucency Business users can visualize complex process Enables domain specific vocabulary Results in audit friendly logic Efficiently support long running processes Simplifies scalable handling of state data Composition based approach Composing reusable logic easier than with code

Scenarios

Human Workflow Computational Workflows Orchestration of Services

Workflow is ART

Activities Activity Library Out of the box Custom Runtime Extensible Execution Environment Tooling OOB & Build to Suit Runtime Workflow Extensions Scheduler Persistence Provider Tracking Participant Custom Extension VS Designer Rehosted Designer WF Debugger

Workflow Types

Sequential Top to bottom Linear execution Flow Chart “Natural” diagramming approach Directed Graph (where arrows point, execution goes) State Machine**

Sequential Diagram

Use for linear execution patterns where simplicity is key. Activity layout is rigid.

Loops must be structured and rely on child composite activity (e.g., While activity).

Flowchart Diagram

Best choice for representing arbitrary cycles. Activity layout is free floating.

Loops formed from directed graph.

Workflow Activities

Out of the box activities for: Control Flow WCF Messaging Variables & Collections Expressions Invoking Methods Exception Handling Transactions & Compensation Legacy Interop

Visual Studio Design Experience

Project Templates Declarative Flowchart/Sequential Service Library Flowchart/Sequential Workflow Console Application Activity Library & Activity Designer Library Item Templates Activity, Workflow Element & Activity Designer Flowchart & Sequence Declarative Flowchart & Sequence Graphical WF Debugging

Designing Workflows

Design with Drag & Drop XAML Generating Workflows in Code Coded activity graph can serialize to XAML

Declarative Workflows

XAML x:class allows definition of new activity type w/custom arguments default used in Visual Studio non x:class composition using known types cannot define new arguments XAMLX Tool support only for “non x:class” form Used by Workflow Services Neither format allows for a code behind.

VS Design Experience

Building a simple workflow from scratch

Data Flow

WorkToDo

DoWork

Result WorkToDo

DoWork

Result

OutArgument

WorkToDo

DoWork 2

Result

Result

WorkToDo

DoWork

Result WorkToDo

DoWork 2

Result

Data Flow

Declarative Arguments & Variables Eliminate need to write code for data storage Simplifies data exchange patterns between activities Application of scope reduces serialized size of persisted workflow instances Expressions Expression support within Arguments Assign activity for declarative assignment

Data Flow

Building a simple data-driven workflow

Running a Workflow

• Unit Testing Workflow Invoker Workflow Instance • Simple executable • Robust Hosting Workflow ServiceHost Simple Complex

Communicating with Workflows

Input/Output Arguments on Workflow Not available on XAML workflows Exchanged via Dictionaries Bookmarks Primary mechanism for a workflow to request and a host to provide data Synonymous with available "actions“ OOB Communication Activities

Communicating with Workflows

Using WorkflowInstance to pass data in and out of a workflow

Exception Handling

Activity Local Exception Handling TryCatch activity Catch activity Workflow Unhandled Exceptions WorkflowInstance.

OnUnhandledException delegate

Workflow Tracking

.NET 4.0 provides ETWTrackingParticipant Can build own TrackingParticipant (e.g. to SQL) Tracking Profiles control verbosity, content Logs the following events: Workflow status changes Activity status changes Custom user data Variable values Runtime Workflow Extensions Scheduler Persistence Provider Tracking Participant Custom Extension

Workflow Persistence

OOB provides SqlPersistenceProvider Can build own PersistenceProvider Controlled by host or by Persist activity in a workflow No-Persist Zones Enables efficient resource use and load balancing Runtime Workflow Extensions Scheduler Persistence Provider Tracking Participant Custom Extension

Workflow & Activity Lifecycle

Running Created Completed

Persistence & Tracking

Visualizing workflow execution progress using a custom monitoring application

Comparing WF 4.0 to WF 3.5

Improvements 10-100x Runtime Performance Improvement Significantly less code required because of declarative nature Greatly enhanced designer Seamless composability across workflow types Migration Side by side support Interop activity

Session Objectives And Takeaways

Session Objective: Understand workflow & activity lifecycle Be able to build rich custom activities Understand how to build custom activity designers Know how to rehost the workflow designer Custom activities can be built composition and by derivation There is new approach to activity designer registration that applies to both VS and re hosted environments

Developing Custom Activities

Why?

Model custom control flow, Implement logic not available OOB Expand vocabulary of activities with domain specific activities. Approaches: Composition with Activity Imperative Activities

Activity Class Hierarchy

WorkflowElement NativeActivity Lowest Level CodeActivity Activity Highest Level

Composition With Activity

DoWork1 DoWork2 DoWork3 } { public class MyActivity: Activity { protected override WorkflowElement CreateBody() return new Sequence() { Activities = } { new DoWork1(), new DoWork2(), new DoWork3() }; }

Composition With Activity

Building a simple composite activity

Imperative Activities

Derive from CodeActivity Override Execute method Use the Code Activity Execution Context { public class SimpleActivity: CodeActivity { protected override void Execute(CodeActivityExecutionContext context) //activity logic goes here context.Track(new UserTrackingRecord("Custom activity executed!“)); } … }

The Buzz Shoppe

Order Fulfillment Service Submit Order Client Web App Labeling Service Create Label Check Inventory Approve Label Check Credit Finalize Order Orders Service Inventory Service Credit Card Processing Service

The Buzz Shoppe

Implementing the LabelGenerator custom activity

Using Arguments & Variables in Custom Activities

Arguments get data in or out of a custom activity Variables provide the means for a composite custom activity to share data with its children

Unit Testing

Use WorkflowInvoker Pass in required init argument values Set breakpoints if attached with debugger Get data out via return value MyActivity activityInstance = new MyActivity(); Dictionary input = … Dictionary ouput = WorkflowInvoker.Invoke(activityInstance, input);

Unit Testing

Using WorkflowInvoker to Unit Test LabelGenerator Custom Activity

Custom Activity Designers

Why?

Provide intuitive, domain specific user interfaces for configuring activity properties and for controlling activity display on the design surface.

Enable loose coupling between activity implementation and activity configuration

Designer Registration in VS

DesignerAttribute Applied to Activity Class IRegisterMetaData – In Activity Assembly Activities.dll

IRegisterMetaData – In Separate Assembly Activities.Design.dll

WPF Based Activity Designers

Workflow Activity Designer item template WorkflowElementDesigner – Design surface WorkflowItemPresenter – Atomic activity WorkflowItemsPresenter – Composite Activity ExpressionTextBox Model Item binding explained ModelItem.Activities, ModelItem.Body

In designers, DataContext is set to control itself

The Buzz Shoppe

Order Fulfillment Service Submit Order Client Web App Labeling Service Create Label Check Inventory Approve Label Check Credit Finalize Order Orders Service Inventory Service Credit Card Processing Service

The Buzz Shoppe

Building a designer for the LabelGeneratorActivity

Designer Rehosting

Why?

For Authoring For Analysis Designer View Property Inspector View Registering Activity Designers Building the Experience Self hosting & executing workflows Overlaying tracking data Inspecting instance state data

Session Objectives And Takeaways

Session Objective: Understand the structure of a Workflow Service Learn how to design, host, run and debug Workflow Services effectively Workflow Services are a powerful way to implement declarative services using activities Workflow Services offer two forms of message to workflow instance correlation Message correlation empowers useful asynchronous messaging scenarios

Why WCF Workflow Services?

WCF Services provide the industry accepted invocation mechanisms Workflows provide the service implementations in an easier to understand, reduced code way Coordinate asynchronous tasks Compose service calls into new services Utilize robust tracking infrastructure Use Workflow Services!

Introducing Workflow Services

Define service implementation with workflows Service.xamlx

Contracts Endpoints Workflow Implementation web.config or app.config

Steps to Build a Workflow Service

Add & Configure Receive Activities Create SendReply Activities by copying from Receive Optionally, adjust service settings in *.config

Host the Workflow Service

Workflow Implementation

One Way Service Activities Receive Send Request/Reply Template Activities ReceiveAndSendReply SendAndReceiveReply Reply Activities

Introducing Workflow Services

Building a Simple Workflow Service

Creating Service Contracts

Workflow Services Service contracts defined implicitly by Receive activity settings: ServiceContractName OperationName ValueType

Defining Multiple Service Contracts

Single workflow can implement multiple service contracts ManufacturingService.xamlx

Inventory Contract GetQuantityInStock ReserveItem 1 Receive ReserveItem Assembly Line Contract ScheduleAssembly QueryProgress 2 Receive ScheduleAssembly

Instance Creating Service Operations

Workflow Instances can be created and launched in response to service call: CanCreateInstance = true

Creating Service Client Activities

Send activities used in outgoing calls to external services Add Service Reference supported Contracts for Send activities are automatically defined Drag and drop from toolbox

Hosting Workflow Services

WorkflowServiceHost XAMLX Endpoints Activity Library SendMessage ReceiveMessage ClientOperation ServiceOperation ServiceHostBase IIS | Dublin | EXE Config WF Control Endpoint Extensions Persistence Tracking Metadata

WorkflowControlEndpoint

Provides following methods: Abandon Cancel Create / CreateWithInstanceId Run Suspend / Unsuspend Terminate Transacted versions of above Acts on a single workflow service instance identified by GUID

Configuration (*.config)

XAMLX’s WorkflowServiceImplementation ConfigurationName maps to *.config’s Service

Name

Defines Service Declares service Provides additional config for service defined in XAMLX via behaviors Service Behaviors Include exception details in faults Expose service metadata (WSDL) Persistence & Tracking

The Buzz Shoppe

Order Fulfillment Service Submit Order Client Web App Labeling Service Create Label Check Inventory Approve Label Check Credit Finalize Order Orders Service Inventory Service Credit Card Processing Service

The Buzz Shoppe

Implementing the Inventory Workflow Service

Introducing Correlation

Map messages to specific workflow instance Uses correlation queries Two types of correlation Context based Content based Can use both within single workflow service ID = 42 Correlation Query Instance Store ID = 42

Context Based Correlation

Correlating on the GUID instance ID of the workflow Other Service Workflow GUID Send Correlation Query Receive GUID Instance Store Correlation Query GUID Calls Back

Content Based Correlation

XPath extraction of correlation value, run against entire message envelope Other Service Workflow Id = 42 Send Correlation Query Receive Id = 42 Instance Store Correlation Query Id = 42 Calls Back

Asynchronous Operations

One way operations using correlation provides simple async infrastructure Workflow Send Other Service Id = 42 Do Work Do Work Do Work Receive Id = 42 Calls Back

The Buzz Shoppe

Order Fulfillment Service Submit Order Client Web App Labeling Service Create Label Check Inventory Approve Label Check Credit Finalize Order Orders Service Inventory Service Credit Card Processing Service

The Buzz Shoppe

Building the Order Fulfillment Orchestrating Workflow Service

Session Objectives And Takeaways

Session Objective(s): Become acquainted with Dublin’s core features Learn how Dublin-related features improve deployment, configuration, management, and monitoring of WCF and WF services Dublin offers enterprise-ready features for hosting, persistence, monitoring and messaging Dublin includes templates, management tools, PowerShell automation, and OOB services supporting common requirements

What is "Dublin"?

Dublin comprises many tools and features: Enhanced database schemas to support persistence and monitoring Features installed via extensions to IIS Manager and to the .NET Framework PowerShell APIs support automation Dublin, along with WCF 4 and WF 4, enhances the Application Server role on Windows Server 2008 Collectively, the new middle tier

Dublin Goals

Makes it easier to host and manage WCF and WF Services “It just works” is the Dublin tag line Provide much needed tooling and scripting for deployment, management, tracking and monitoring Tooling in Visual Studio and IIS Manager Automation with PowerShell Extends the .NET Framework with a rich set of OOB functionality that satisfies common requirements

The New Middle Tier

Dublin-Related Tools and Features

Quadrant

Model Deployment to Dublin

Visual Studio

WF and WCF Project Templates

IIS Manager

WF and WCF Management Modules

Dublin-Related Enhancements Dublin-Related Features Management APIs (PowerShell cmdlets) Hosting

Availability, Deployment, Control Durable Timer Service Discovery Service AutoStart Service

Persistence

Reliablility, Scalablity Instance Restart Behavior SQL Persistence Provider

Monitoring

Application Monitoring WF SQL Tracking WCF SQL Tracking

Messaging

Versioning, Partitioning, Routing Router Service

Persistence schema Runtime Databases WCF and WF Frameworks IIS/WAS Microsoft Confidential Windows Server 2008 Monitoring schema

Dublin and IIS Manager

Dublin adds features to IIS Manager Can configure for machine, web site or application Hierchical inheritance of settings Export/Import are MSDeploy features

Dublin and PowerShell

Management API

Dublin supplies a collection of PowerShell cmdlets to automate access to features Execute cmdlets from: Windows Application Server PowerShell Console Custom PowerShell scripts MSBuild scripts

IIS Manager WF and WCF Management Modules Management APIs (PowerShell Cmdlets) MSDeploy MSBuild Custom PowerShell Scripts

Dublin and Visual Studio

Enhancing WCF and WF Service templates Generate IIS application Sample service and config Enable Dublin behaviors F5 debugging experience Microsoft Confidential

Dublin Features

Features that support configuration, deployment, hosting, persistence, monitoring and messaging Extensions to the .NET Framework Supporting database schemas WCF/WF Management Modules in IIS Configure features Track and monitor services Control persisted service instances Tight integration with WCF 4 and WF 4 features

Centralized Configuration

Accessibility of WCF and WF Service configuration settings relevant to IT administrators Control service throttling behaviors Configure service certificates Enable new persistence and tracking behaviors to facilitate state management and monitoring Enable new hosting behaviors for exception handling, automatic start and instance restart

Easier Deployment

From Visual Studio: Developers can create new applications that are hosted in Dublin Developers can publish and debug applications From IIS: Can refine application configurations and export packages Can import packages to set up new machines MSDeploy features Can automate with PowerShell

Managing Deployments

Visual Studio templates set up application directories with default configuration F5 debugging support in Visual Studio Publishing from Visual Studio Application export and import through IIS Manager or PowerShell Export/Import are MSDeploy features Dublin installs MSDeploy

Managing Deployments

Deploy services from VS or with PowerShell Export and import applications and services Automate service updates Disable messaging protocols for updates Application Dublin Development Server Export Package.zip

Import Application Dublin Test Server

Managing Deployments

AutoStart

Services hosted in Dublin use message-based activation The AutoStart feature improves host responsiveness Initializes the worker process before the first message is received Important availability feature for services hosted in the Cloud

Persistence

Dublin supplies database schema and configuration WF 4 supplies persistence behavior for durable WF Services Unifies persistence configuration and storage format for WCF and WF Can configure via IIS or PowerShell cmdlets Can use SQL Express or SQL Server Improved persistence schema with smaller footprint

Persistence

Durable services have the service persistence behavior enabled Services can persist on Unload or when Persist activities are executed Improved lock management improves availability of services Requests to an instance in use will be retried, not rejected

Instance Management

WF Services are more compelling with .NET 4 and Dublin Previously developers had to build a management UI to interact with WF instances Dublin supplies instance management controls via IIS Manager or PowerShell Can suspend, resume, abort or terminate workflow instances Can report on workflow instances

Instance Management

Durable instances traverse a variety of states during execution: Running, Blocked, Suspended, ReadyToRun Dublin tools provide control through a workflow control endpoint Can suspend, resume or terminate InstanceRestartService resets state of orphaned WF services DurableTimerService triggers WF service to wakeup after delay

Locking Issues

Client A WFService Instance (Running) Locked Client B

Locking Issues

Client A WFService Instance (Running) Locked Client B Exception

Improved Lock Management

Client A Client B WFService Instance (Running) WFService Instance (Running)

Instance Restart

Client A Client B Instance Restart WFService Instance (Running) WFService Instance (Running)

Tracking and Monitoring

WCF 4, WF 4 and Dublin together supply features for tracking and monitoring Increased visibility into WCF and WF Services Configure profiles to control tracking events emitted by WCF and WF Services Troubleshoot problems by monitoring tracking events via IIS Manager Generate tracking reports using PowerShell cmdlets or SQL views

Tracking and Monitoring

Enable/disable tracking on services Tracking profiles describe what to track Basic WF events, verbose WF events, or WCF activity tracing for correlation Custom profiles can add variable tracking Defined in XAML or code Tracking configurations associate profiles with tracking participants Configures service tracking behavior By default tracking data stored in the configured monitoring database

Tracking and Monitoring

WF Service Config Tracking Behavior XAML Profile Tracking Configuration Tracking Participant Monitoring Database Tracking Profile XAML Profile Workflow Definition

Additional Points

Dublin features are useful to durable and non durable WCF services Deployment, monitoring, auto start Dublin provides model deployment from Quadrant (“Oslo”) solutions Dublin does not replace BizTalk Server Use BizTalk for integration adapters, transformations, analysis Dublin can host services accessible through the cloud (Azure)

Summary: Hosting WCF and WF in Dublin

Dublin provides an extensive tools and features to support WCF and WF services Enhances packaging, deployment, management, and monitoring Improves reliability, availability, and scalability Simple to use extensions to IIS Manager Powerful scripting capabilities

Resources

Michele’s Blog: http://www.dasblonde.net

See post-conference blog posts for samples from this and other sessions at Tech Ed!

Zoiner’s Blog: http://www.theworkflowelement.com

Resources

www.microsoft.com/teched Sessions On-Demand & Community www.microsoft.com/learning Microsoft Certification & Training Resources http://microsoft.com/technet Resources for IT Professionals http://microsoft.com/msdn Resources for Developers www.microsoft.com/learning Microsoft Certification and Training Resources

Related Content

Breakout Sessions (session codes and titles) Interactive Theater Sessions (session codes and titles) Hands-on Labs (session codes and titles) Hands-on Labs (session codes and titles)

Track Resources

Resource 1 Resource 2 Resource 3 Resource 4

Complete an evaluation on CommNet and enter to win!

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.