我们基于自定义框架(库)运行多个相同的ASP.NET应用程序(每个客户一个)。每个应用程序都使用自己的数据库(连接字符串中的初始目录)。现在我们想要为应用程序添加工作流功能(当然是4.0;)。因此,对于所有应用程序,特定工作流程将是相同的,只有每个工作流程的一些初始设置可以变化,例如,在一个应用程序中,电子邮件将发送给用户X,但在其他应用程序中发送给用户Y.
我有几个关于如何设计架构的一般性问题:
(1)可以是为所有应用程序共享的工作流数据库吗?
(2)在哪里托管工作流引擎 - 在我们的自定义Windows NT服务或IIS内部?选择合适的主机的标准是什么?
(3)工作流引擎应如何与应用程序通信?应用程序应该调用在工作流主机中配置的某些WCF端点API还是反之亦然 - 每个应用程序应该提供WCF端点API,工作流引擎是否会调用它?然后工作流引擎如何识别应用程序?两种情况都需要一些应用程序标识符作为API调用中的参数?
(4)我们还希望根据工作流状态将一些信息存储到应用程序数据库中。有可能吗?
感谢您的建议!