Мы используем несколько одинаковых приложений ASP.NET (по одному на каждого клиента) на основе нашей пользовательской среды (библиотек). Каждое приложение использует свою собственную базу данных (начальный каталог в терминах строки подключения). Теперь мы хотели бы добавить возможность рабочих процессов (конечно, 4.0;) в приложения. Таким образом, конкретные рабочие процессы будут одинаковыми для всех приложений, только некоторые начальные настройки каждого рабочего процесса могут отличаться, например в одном приложении электронное письмо будет отправлено пользователю X, а в другом приложении - пользователю Y.
У меня есть несколько общих вопросов, как проектировать архитектуру:
(1) Может ли база данных рабочих процессов совместно использоваться для всех приложений?
(2) Где разместить движок рабочего процесса - внутри нашей пользовательской службы Windows NT или внутри IIS? Каковы критерии выбора правильного хоста?
(3) Как механизм рабочего процесса должен взаимодействовать с приложениями? Должно ли приложение вызывать некоторый API конечной точки WCF, настроенный на узле рабочего процесса, или наоборот - каждое приложение должно предоставлять API конечной точки WCF, и механизм рабочего процесса будет вызывать его? Как тогда механизм рабочего процесса будет определять приложения? В обоих случаях, вероятно, требуется некоторый идентификатор приложения в качестве параметра в вызовах API?
(4) Мы также хотели бы хранить некоторую информацию в базах данных приложения на основе состояний рабочего процесса. Возможно ли это?
Спасибо за предложения!