Page flow persistence in a SOA

Topics: Web Client Software Factory
Feb 26, 2007 at 12:24 PM
For one of our customers, I've been in the progress of combining WCSF en WSSF into a nicely structured service oriented architecture based on WCF services. Unfortunately, Oracle is a non-negotiable requirement. That isn't a real problem for the WSSF, but I'm wondering how to deal with the persistence of page flows from both an architectural and a technical viewpoint.

From an architectural viewpoint, persisting the workflows directly to the Oracle database does not feel right. I'm considering creating dedicated service interfaces and constructing a corresponding WF Persistence Service that uses those service interfaces.

What is the preferred approach? And is usage of the Page flow AppBlock required for WCSF?

Dennis Doomen 
Feb 27, 2007 at 8:36 PM
Let me answer the easy question first:
And is usage of the Page flow AppBlock required for WCSF?
No. You can use WCSF without PageFlow. Just make sure you do not add a PageFlow project to your solution. If you do not reference the PageFlow Dlls, you would not need to reference or deploy them.

As far as using Oracle for the Workflow Persistence store, you could do it. It might require looking into the WorkFlow Foundation documentation and writing a custom persistence provider. (Not that I am recommending the use of Oracle: that is an unsupported and untested scenario for the WCSF). Another option would be to write a new PageFlow provider that does not rely on Workflow Foundation.

And for this: persisting the workflows directly to the Oracle database does not feel right
Why not? The current implementation basically does the same thing to SQL. It might hide it a bit, and do some caching, but it is basically the same idea.
Feb 28, 2007 at 6:35 AM
The reason for not persisting directly to the database is that my customer doesn't want to allow the website in the DMZ to get access to the Oracle database in the intranet. On the other hand, writing dedicated SOA interfaces for storing/loading page flows on the application server is weird as well. Why would the application server bother with presentation-related stuff!?

But I do like to use page flow though. I'm setting up a full-blown software factory for my customer (architecture, tools, proces, infrastructure,t raining), and although the pilot project does not involve complex page navigation, future projects may do.

Assuming I don't need to persist the page flow over sessions, and therefore, I don't need to store anything in a database, what options do I have then? Can I configure the PFAB to store data somewhere in the current request or the current session? If so, are there any other drawbacks of that scenario other then loosing the current navigation state over sessions.

Sorry for all these questions, but I've been reading all the docs and the discussions here, and even though the PFAB is most discussed topic, this hasn't shed enought light yet (hmm, is that a real expression?).