It is like a regular programming language. Activities = subroutines. Workflow = a program. If-Then activities give you control of flow.
Invocation uses fancy-shmancy object oriented patterns. You invoke a workflow by raising events that pass a dictionary object full of parameters. You get return values by handling an event that returns a dictionary object full of return parameters.
Another fancy OOP pattern is that the activities behavior is established by setting properties of the activity equal to a function.
You can also write a work flow as a state machine, which makes it look like a UML state machine diagram.
It is oriented to dealing with human bureaucracy. It is expected that some activities will involve long running processes, delays and people. If the application has to hand off to a slow human, the whole work flow state can be saved and resumed later.
It is like flow charts. The workflow model looks like a flow chart that you can attach methods to. The sequential workflow especially looks a lot like a flow chart. The hope was that line of business experts would draw the charts and developers would then write the code behind the activities.
It is like a server application. However it isn’t necessarily a windows service. The work flow can have many things happening at the same time (but it runs on the same thread). Because of the server like nature, you will start a work flow, a separate client application talks to the work flow.
This is kind of like DTS & SSIS. DTS was mostly aimed at moving data from place to place, but it was graphical, had primative control of flow and it had tasks that looked just like workflow activities. DTS was not a server application. SSIS has become a better version of DTS and looks even more like Windows Work Flow– for example, they both use sequence boxes to represent iteration and SSIS has something of a server nature. DTS and SSIS graphically show you what boxes are executing as the application runs. I haven’t seen a similar feature with Work Flow.
This is kind of like BizTalk. BizTalk was all about getting the computers organizations to transact with each other. BizTalk has a somewhat graphical orientation, and used things called orchestrations to layout how computers in one organization would “talk” to computers in another organization. By “talking”, I mean, invoking a method. I believe that BizTalk used functoid for what WWF calls activities, but I may be wrong. BizTalk is an expensive product and I’ve never work at a place with a license for it.