Developing WCF Workflow Services & Windows Server AppFabric

advertisement
Declarative Services in .NET 4.0
Alan Smith
SDC 2010 – 16th March 2010
Alan Smith
• Developer, Trainer, Mentor, Evangelist
– Know IT Consulting
• “Connected Systems Developer” MVP
• Microsoft “Connected Technology Advisor”
• Contact:
– www.CloudCasts.net
– geekswithblogs.net/asmith
– bloggersguidetobiztalk@gmail.com
.NET 4.0 at your Service
• Windows Communication Foundation (WCF)
– Simplified Configuration
– WS-Discovery
– Routing Service
– Improved REST support
.NET 4.0 at your Service
• Windows Workflow Foundation (WF)
– New workflow runtime
– New workflow designer
– New activity model
– New WCF integration capabilities
.NET 4.0 at your Service
• WCF Workflow Services
– Workflow designer used to create WCF services
– Workflow exposed through WCF endpoint
– Powerful integration with WCF
– One of many uses for WF
.NET 4.0 at your Service
• Windows Server AppFabric Application Server
Extensions (AppFabric)
– Formally “Codename Dublin”
– Enhanced WCF and WF hosting capabilities
– Workflow persistence
– Workflow and service management
– Distributed in-memory cache (formally
“Codename Velocity”)
Workflow Service Concepts
Concept
Description
Declarative
Service implementation is declared using XAML
Persistent
State of workflow can be serialized to data store
Long-Running
Service lifetime can be longer than first call duration
Durable
Service instances can survive host restarts
Classic WCF Service
• Client can call methods in any
order
• Service is instanced on per-call
basis
• Order state is maintained in LOB
Database
[ServiceContract(Name = "OrderManagement")]
public interface IOrderManagement
{
[OperationContract]
void RegisterOrder(Order newOrder);
[OperationContract]
void ConfirmOrder(Order newOrder);
[OperationContract]
void CancelOrder(Order newOrder);
}
Classic WCF Implementation
Client
AppFabric
Register
Confirm
Cancel
Conform
Id = 456
789
123
Order Manager Service
Warehouse Database
OrderID
State
123
Registered
Confirmed
456
Registered
Confirmed
789
Registered
Cancelled
Stateful Services – Classic WCF
• Client maintains session with service
– Secure session
– Reliable session
– Transport session
• Service instancing configured appropriately
– Per call
– Per session
– Single
WCF Workflow Service
• RegisterOrder creates workflow
instance
• Order state is maintained in
workflow instance
• ConformOrder or CancelOrder is
then called
• Correlation needed between
service calls
Register (123)
Client
AppFabric
Register
Id = 123
Order Manager Service
123
Confirm
Cancel
AppFabric Persistence Database
123
Confirm
Cancel
Register (456)
Client
AppFabric
Register
Id = 456
Order Manager Service
456
Confirm
Cancel
AppFabric Persistence Database
123
Confirm
456
Cancel
Confirm
Cancel
Confirm (123)
Client
AppFabric
Conform
Id = 123
Order Manager Service
123
Confirm
Cancel
AppFabric Persistence Database
123
Confirm
456
Cancel
Confirm
Cancel
Register (789)
Client
AppFabric
Register
Id = 789
Order Manager Service
789
Confirm
Cancel
AppFabric Persistence Database
123
Confirm
456
Cancel
Confirm
789
Cancel
Confirm
Cancel
Cancel (789)
Client
AppFabric
Cancel
Id = 789
Order Manager Service
789
Confirm
Cancel
AppFabric Persistence Database
123
Confirm
456
Cancel
Confirm
789
Cancel
Confirm
Cancel
Confirm (456)
Client
AppFabric
Confirm
Id = 456
Order Manager Service
456
Confirm
Cancel
AppFabric Persistence Database
456
123
Confirm
Cancel
Confirm
789
Cancel
Confirm
Cancel
Demo…
AppFabric Hosting Architecture
Visual
Studio
IIS Manager
PowerShell
App Fabric Tools
App Cmdlets
Runtime Services & Components
Persistence
WCF
Hosting
WF
Monitoring
ETW
ASP.NET
IIS / WAS
SQL Server
Monitoring
Persistence
System
Centre
Services Going 4ward…
• WCF
– Clean migration path for projects and developer
skills
– Additional features simplifies configuration and
enhances functionality
Services Going 4ward…
• WCF Workflow Services
– New implementation of WF
– Will not replace traditional service development
• Evaluate and use where appropriate
– Should the service be implemented as a process?
Services Going 4ward…
• Windows Server AppFabric
– Great to have for tracing, monitoring and
management of traditional WCF services
– Must-have for WCF Workflow Services
– Distributed in-memory cache features are
powerful (formally “Codename Velocity”)
Further Development
• Bits
– Visual Studio 2010 RC
– Windows Server AppFabric Beta 2
• Webcasts
– www.CloudCasts.net
• Questions
– bloggersguidetobiztalk@gmail.com
• User Groups
– SweNug has many events planned for 2010
• Training
– WCF, WF and AppFabric courses at Informator
Tack!
Download