Declarative Services in.NET 4.0 Alan Smith SDC 2010 – 16 th March 2010.

Post on 19-Dec-2015

215 views 0 download

Tags:

Transcript of Declarative Services in.NET 4.0 Alan Smith SDC 2010 – 16 th March 2010.

Declarative Services in .NET 4.0Alan 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 ConceptsConcept 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

Warehouse Database

AppFabric

Order Manager Service

Client

RegisterRegisterId = 123Id = 123

OrderID State

RegisterRegisterId = 456Id = 456ConformConformId = 123Id = 123RegisterRegisterId = 789Id = 789CancelCancel

Id = 789Id = 789ConfirmConfirmId = 456Id = 456

OrderID State

123 Registered

OrderID State

123 Registered

456 Registered

OrderID State

123 Confirmed

456 Registered

OrderID State

123 Confirmed

456 Registered

789 Registered

OrderID State

123 Confirmed

456 Registered

789 Cancelled

OrderID State

123 Confirmed

456 Confirmed

789 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)

AppFabric Persistence Database

AppFabric

Order Manager Service

Client

RegisterRegisterId = 123Id = 123

ConfirConfirmm

CanceCancell

123123

ConfirConfirmm

CanceCancell

123123

Register (456)

AppFabric Persistence Database

AppFabric

Order Manager Service

Client

RegisterRegisterId = 456Id = 456

ConfirConfirmm

CanceCancell

456456

ConfirConfirmm

CanceCancell

123123

ConfirConfirmm

CanceCancell

456456

AppFabric Persistence Database

ConfirConfirmm

CanceCancell

123123

Confirm (123)AppFabric

Order Manager Service

Client

ConformConformId = 123Id = 123

ConfirConfirmm

CanceCancell

123123

ConfirConfirmm

CanceCancell

123123

ConfirConfirmm

CanceCancell

456456

ConfirConfirmm

CanceCancell

123123

Register (789)

AppFabric Persistence Database

AppFabric

Order Manager Service

Client

RegisterRegisterId = 789Id = 789

ConfirConfirmm

CanceCancell

789789

ConfirConfirmm

CanceCancell

123123

ConfirConfirmm

CanceCancell

456456

ConfirConfirmm

CanceCancell

789789

AppFabric Persistence Database

ConfirConfirmm

CanceCancell

789789

Cancel (789)AppFabric

Order Manager Service

Client

CancelCancelId = 789Id = 789

ConfirConfirmm

CanceCancell

789789

ConfirConfirmm

CanceCancell

789789

ConfirConfirmm

CanceCancell

456456

ConfirConfirmm

CanceCancell

123123

ConfirConfirmm

CanceCancell

789789

AppFabric Persistence Database

ConfirConfirmm

CanceCancell

456456

Confirm (456)AppFabric

Order Manager Service

Client

ConfirmConfirmId = 456Id = 456

ConfirConfirmm

CanceCancell

456456

ConfirConfirmm

CanceCancell

456456

ConfirConfirmm

CanceCancell

456456

ConfirConfirmm

CanceCancell

123123

ConfirConfirmm

CanceCancell

789789

Demo…

IIS Manager

AppFabric Hosting ArchitectureVisual Studio

System Centre

IIS / WAS

App Fabric Tools

Runtime Services & Components

Persistence Hosting Monitoring

ASP.NET

WCF ETWWF

SQL Server

Monitoring Persistence

PowerShell

App Cmdlets

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!