When we describe Dublin we talk about WAS-hosted WCF services. Our team thinks of WCF services along two pivots:
Stateless versus durable services.
A stateless service is a transient one. When the service is processing a request it keeps that service instance in memory until it's finished, and there's no state kept between requests. Think of a service that sends text messages. This service receives a request, sends the text message, and finishes. Each request is independent; the service does not need to maintain any state.
Durable services, on the other hand, maintain state between requests and are often long-running. Service instance state is persisted, to a database, for example. This allows the instance to be removed from memory when it's not active and allows the state to be reconstructed if the host process should die. Think of a loan processing service. There are many steps, and the process takes weeks.
Imperative versus declarative services.
Imperative programs use a series of commands to change the program's state. The programmer says explicitly what should happen. Imperative WCF services are those written in a .Net Framework language, like C#.
In declarative programs the programmer defines what the program should do; he declares the intent of the program. This abstracts him from the program's runtime, which translates the program declaration into actions. As far as Dublin is concerned, declarative WCF services are those that are implemented using WF. These are "workflow services" that were enabled in .Net 3.5 and will be enhanced in the 4.0 release.
We are building Dublin to provide value for all WCF services that are hosted in WAS. Our "sweet spot," though, will be for durable workflow services. Here is a very informal representation of the value for each type of service. Don't spend too much time trying to interpret the number of stars; I just made this up.
| Stateless | Durable |
| .Net code (imperative) | *** | **** |
| WF (declarative) | **** | ****** |
For all WCF services Dublin will enhance configuration, deployment, and monitoring.
For workflow services Dublin adds workflow activity-level monitoring.
For durable WCF services Dublin adds support for viewing and controlling persisted instances, scale out, and other reliability features.