Workflows, Services and Models
In his new whitepaper, David Chappell from Chappell & Associates takes a first look at the latest Microsoft technologies - WF 4.0, Dublin, and Oslo. He explains what these technologies are and more importantly, how they can be used together to create and run workflow-based, service-oriented, and model-driven applications.
While WF is already used in a range of applications today, the intent of WF 4.0 is to make it easier to use. This is achieved through inclusion of a number of new features:
- A new WF workflow designer with a more effective user experience. This designer runs inside Visual Studio, and it allows developers to create workflows and activities graphically. Using the designer isn’t required, however - a developer is free to create workflows and activities entirely in code or in the XML-based Extensible Application Markup Language (XAML). This designer can also be re-hosted in other environments, such as products from ISVs, something that gets simpler in the WF 4.0 release.
- A larger set of built-in activities. WF’s Base Activity Library was originally focused on control flow and communication. With WF 4.0, Microsoft will also provide activities for things such as accessing data and invoking PowerShell cmdlets. The intent is to make it easier to create useful applications by assembling existing activities into workflows.
- A new Flowchart workflow type. In its original incarnation, WF provided two built-in workflow types: Sequential, useful for relatively simple processes, and State Machine, which is more broadly applicable but harder to use. Adding Flowchart as a third built-in workflow type is meant to combine the advantages of Sequential and State Machine while still being straightforward to use.
In addition, WF 4.0 includes a healthy amount of improvement, including performance improvements, simplification of the data handling, etc.
The Dublin extensions to Windows Server are built on the foundation provided by Internet Information Server (IIS) and Windows Process Activation Service (WAS). In addition to "wrapping" foundational services, provided by these underlying technologies, Dublin adds a number of new functions:
- Auto start: By default, a WCF service starts running when the first message is received for this service. The Dublin auto start function allows one or more services to be automatically loaded as soon as the service is configured. This is useful for services that use non-activating channels, i.e., WCF communication mechanisms that don’t automatically start a service, such as FTP or SMTP. Auto start can also improve response time for services that must carry out initialization tasks before handling their first request.
- Instance restart: An application might require that one or more service instances always be available. To provide this, the instance restart function monitors a heartbeat from all Dublin services. Any service that doesn’t respond within the heartbeat expiration interval is automatically restarted. For a WF-based service, the workflow will resume from the last time its persistent state was saved.
- Message forwarding: This function provides content-based routing, letting a developer define a set of routing rules based on a message’s contents. Once this is done, Dublin can route messages to different services based on what they contain.
- Tracking: It’s often useful for a service to write events to a store to track what it’s doing. The Dublin tracking service allows any service, whether or not it’s built using WF, to do this. For WF-based services, Dublin builds on WF’s existing support, adding tooling and other capabilities.
When it comes to Oslo, a lot of people seem to be confused what exactly this thing is. Typical questions are:
- Oslo - is that Microsoft’s next Web services platform?
- How does Oslo integrate with and/or replace BizTalk Server?
- Is Oslo Microsoft’s answer to ESB?
- Does Oslo become Microsoft’s BPM platform?
According to Don's Box post
With Oslo, we’re doing two things:
To make the first one as fluid an experience as possible, we’ve built a language that makes it natural to express models in text, which is medium that a lot of people (especially developers) feel comfortable with. Visual design ["Quadrant"] surfaces are another medium a lot of people feel comfortable with, so we’ve built a design tool for working with the same information our text-centric friends produce and consume.
- We’re making it easier for people to write things down in ways that make sense for the domain they are working in - the common term for this in the wild is modeling.
- We’re making the things people wrote down accessible to platform components during program execution.
The importance of Oslo is emphasized by Doug Purdy
As simple as that story is, the impact of this platform on software development and management will be transformational...
Dave Chappell explains that:
[Oslo’s] goal is to provide a foundation that can make model-driven applications and other uses of models central to how IT organizations work. Oslo can be used in a variety of ways... Initially, the most important use of Oslo is likely to be working with WF-based applications... A technically oriented business analyst might use Quadrant to create and modify a WF workflow.... Another possibility is for a technically oriented business analyst and a developer to work together on a single WF workflow, each using a different tool...
Even though each of the described technologies can be used on its own, getting a feel for the vision that underlies them requires seeing how they can work together. An example given by Dave Chappell describes a scenario of enterprise business processes improvement, using Oslo as a repository of business processes and applications and their relationships and a design tooling for new processes definition; WF as an implementation technology for new processes and Dublin as a deployment platform.
The technologies described in the article are still evolving and have many moving parts and are not expected to be released all at once. A tentative release schedule is:
As these new technologies become available, organizations can adopt them in any combination they’d like. For example, a WF 4.0 application might be created using Oslo or solely with Visual Studio. Once it’s written, the application can be deployed in a user-written host or in Dublin
- WF 4.0 will ship with the .NET Framework 4.0 and Visual Studio 2010. These new releases of the Framework and Visual Studio will also contain other things, such as an updated version of WCF.
- Dublin will appear first as an independent download, then be included as part of Windows Server. It’s likely to be available not long after the release of the .NET Framework 4.0 and Visual Studio 2010.
- The Oslo modeling technologies will be released together, including the repository, language M, and Quadrant.
In his whitepaper, Dave describes an impressive Microsoft’s vision for the next generation of distributed SOA-based systems. In this vision, repository contains the existing enterprise services, which can be orchestrated together using workflows, defined through models and monitored by the execution environment. The only missing piece in this vision seems to be simulation environment, allowing to evaluate the impact of model changes even before deploying them.
For people or machines?