dan eshner product unit manager microsoft soa202
TRANSCRIPT
Session OverviewIn today’s session we will cover -
“Dublin”: what is it, where does it fit, and why do I care?
Scenario-driven walk through of “Dublin” – the evolution of a customer management app
Scenario: Contoso Rugs – leverage existing apps Stage 1: Consolidate using a single web service managed with “Dublin”Stage 2: Use a simple coordinated workflow managed with “Dublin”Stage 3: Add a self-service customer portal interacting with a long-running workflow managed with “Dublin”
Adding additional enterprise-ready capabilities to services and workflows
Reliability, availability/scalability, routing
“Dublin” component overview
Windows Application Server
Evolution of WPAS/IIS and Windows App Server role to run and manage WF and WCF servicesContinually ship app server value as quickly as possible – first installment: Dev10 waveAdd additional releases through web downloads
It Just WorksMonitoring and Control
Tooling and ScriptingEnterprise-Ready extensions
Windows Server
.NET Framework
“Dublin”
Visual Studio
WF and WCF services
Administration Tools
System Center
IIS/WPAS
Extensions(Codename “Dublin”)
Runtime Services & Components
.NET Framework
“Dublin” Software Stack
Runtime Databases
HostingPersistence Monitoring
Management APIs (PowerShell command-lets)
IIS Manager
IIS/WAS
WCF and WF IIS Manager Modules
Syste
m C
en
ter
“Du
blin” M
an
ag
em
en
t Pack
WCF WF
SaaS CRM App
Web Service(WS-*)
Web UI(ASP.NET)
Database(SQL)
Billing Application
Web UI(?)
Customer Sales
Scenario: Leveraging Existing AppsContoso Rugs - Customer onboarding process today
IssuesScaleVisibility and Control
SaaS CRM App
Customer
Customer Service App
Front End(ASP.NET)
Web Service(WCF)
Database(SQL)
Billing Application
Step 1 – ConsolidateCreate UI that calls a single service
ChangesMoved ASP.NET front end to cover both apps Put WCF web service in front of billing appCreate new WCF service that calls CRM and billing services, and returns an e-mail to the customer
Sales
Web Service(WS-*).NET 4 WCF Service
...string cID =
myCRMClient.AddCucstomer(clientEmail, clientName);
string billingID = myBillingClient.AddCustomer(cID, clientBillingAddress);
myEmailer.SendConfirmation (clientEmail, cID);
...
Web Service(WCF)
BenefitsUsers are shielded from basic errorsWorkflows are automatically suspended on exceptionDublin tools assist in troubleshooting and fixing problemsDublin allows for resuming workflows easily with tools and scripts
"Dublin"
Database
Web Service(WCF)
Step 2 - CoordinateUse workflow to coordinate Web service activities
"Dublin"
Web Service
Customer Sales
Customer Service App
Front End(ASP.NET)
Web Service(WCF)
Workflow Service
Billing Application
SaaS CRM App
Step 2 - CoordinateUse workflow to coordinate Web service activities
"Dublin"
SaaS CRM App
Web Service
Customer Sales
Customer Service App
Front End(ASP.NET)
Service(WCF)
"Dublin"
Web Service(WCF) Database
Billing Application
Workflow Service
App limitationsScale: sales person still required for each new customerInvalid customer e-mail addresses
Customer Service Application
confirmation number
Front-End(ASP.NET)
"Dublin"
Workflow Service
Validate
Step 3i – Self ServiceObtain and validate contact information
ChangesAdded a new customer portal front end (ASP.NET)Added e-mail validation to workflow
Receive
Send mail
Receivename, email,
billing addressconfirmation
number
Add to CRM
Add to billing
Send mail
SaaS CRM App
Web Service
"Dublin"
Web Service(WCF) Database
Billing Application
Customer
Front-End(ASP.NET)
Customer Service Application
"Dublin"
Workflow Service
Validate
Step 3i – Self ServiceObtain and validate contact information
It Just WorksMonitoring and control
Receive
Send mail
Receive
Add to CRM
Add to billing
Send mail
.NET 4 WF Service
Tooling and scriptingEnterprise-ready extensions
Persist
Receive registration & send response
IfElse(Validated)
Receive validation
Delay(5 days)
Send Email
Customer
Enterprise-ready Extensions
Availability and scaleMultiple hosts sharing stores
Instance resumeDurable timersRouting service
Availability and Scale
"Dublin"
Workflow Service
"Dublin"
Workflow Service
Persistence Database
Monitoring Database
Network Load Balancer
Workflow Management
Service
Workflow Management
Service
Administration Tool or Script
instance
Resume All
1
2
3
4
5
6
7
89
10
10
"Dublin"
SaaS CRM Application
WCF Service Database
Web Service
Billing Application
Front End
Customer Service Application
Customer "Dublin"
Regular Customer Workflow Service
Step 4 – RoutingPartition customers based on # or rugs sold per month
"Dublin"
Premium Customer Workflow Service
Routing Service
It just worksMonitoring and control
Tooling and scriptingEnterprise-ready extensions
app.config<?xml version=<configuration<appSettings
Sales
Instance Resume
"Dublin"
Workflow Service
Persistence Database
Workflow Management
Service
instance
3
persist
activity
activity
1
2
4
6 5
3
"Dublin"
Workflow Service Host
Durable Timer
Workflow
SQL Persistence Database
Delay
SQL Instance Store
Workflow Management
Service
1
2 3
4
Runtime Services & Components
.NET Framework
“Dublin” Component Overview
Runtime DatabasesPersistence
schemaMonitoring schema
HostingPersistence Monitoring
Management APIs (PowerShell command-lets)
IIS Manager
IIS/WAS
XAML & Config
Activation
Service Hosting
Environment
Auto-Start Provider
Workflow Mgmt
Service
SQL Persistence Provider
Instance Control
Endpoint
WCF Message Logger
WCF Analytic
Trace
Event Collector
ETW Tracking
Routing Service
WCF and WF IIS Manager Modules
Syste
m C
en
ter
“Du
blin” M
an
ag
em
en
t Pack
ASP.NET
WCF WF
Challenges Using WCF And WF TodayCustomer feedback
“I want to get my WF and WCF services up and running easily - Why doesn’t it just work?”
“I want to easily monitor and control running WF and WCF services.”
“I really want better tooling and scripting.”
“I want built-in extensions for enterprise-readiness.” – Availability, Scalability, Routing
Summary
The "Dublin" project is extending IIS/WAS and App Server role in Windows to enhance the support for WF and WCF services
It just worksExtends monitoring and control capabilityAdds scripting and toolingAdds scale, reliability, and routing for enterprise-readiness
Simple and powerfulValue for all WCF services
Discovery, control, monitoring
www.microsoft.com/teched
Sessions On-Demand & Community
http://microsoft.com/technet
Resources for IT Professionals
http://microsoft.com/msdn
Resources for Developers
www.microsoft.com/learningMicrosoft Certification and Training Resources
www.microsoft.com/learning
Microsoft Certification & Training Resources
Resources
Related ContentBreakout Sessions
SOA204 The Microsoft Developer Platform for Building Software-Plus-Services Applications
Mon | 1:00-2:15 PM
ARC201 A Lap around Team System 2010 Architecture Edition Mon | 2:45-4:00 PM
SOA201 A First Look at WCF and WF in the Microsoft .NET Framework 4 Tue | 8:30-9:45 AM
SOA202 A Lap around Microsoft Code Name “Dublin” Tue | 2:45-4:00 PM
SOA310 Managing, Tracking, and Troubleshooting Services in “Dublin” Tue | 4:30-5:45 PM
SOA401 Developing Service Oriented Workflows Wed | 8:30-9:45 AM
SOA309 Load Balancing and Scaling Your WCF Services Today and Tomorrow Wed | 4:30-5:45 PM
SOA302 Building RESTful Services Using WCF Thu | 10:15-11:30 AM
SOA206 Every Class As a Service: WCF As the New Microsoft .NET Thu | 2:45-4:00 PM
SOA313 StockTrader Sample Application Case Study: Performance and Java Interop Fri | 10:45-12:00 PM
SOA303 Busy Microsoft .NET Developer's Guide to WCF, SOA, and Success Fri | 1:00-2:15 PM
Plus… Checkout Interactive theater sessions in the TLC area and hands-on-labs
Track ResourcesSOA
www.microsoft.com/soa
msdn.microsoft.com/biztalkwww.microsoft.com/biztalk
“Dublin”www.microsoft.com/net/dublin
“Oslo”msdn.microsoft.com/oslowww.microsoft.com/net/oslo.aspx
msdn.microsoft.com/wcfmsdn.microsoft.com/wfwww.microsoft.com/net
msdn.microsoft.com/azure/netserviceswww.microsoft.com/azure/netservicestwitter.com/dotnetservices
© 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.