1

우리는 .NET 4.5 기반 ASP.Net 응용 프로그램에 Windows Workflow 엔진을 사용하고 있습니다. Windows Workflow 응용 프로그램은 IIS 응용 프로그램으로 배포되며 web.config 파일에 지정된 연결 정보로 SQL 지속성에 맞게 구성됩니다. 이제이 응용 프로그램 (워크 플로 엔진과 함께)을 클라우드로 이동하려고합니다.단일 Windows Workflow 인스턴스를 여러 데이터베이스를 사용하도록 구성 할 수 있습니까?

  • 모든 고객은 별도의 데이터베이스
  • 하나를해야합니다 :이 클라우드 마이그레이션에 관한

    , 우리는 우리가 우리의 ASP.Net (비 Windows 워크 플로) 응용 프로그램을 위해 만든 다음 결정에 대해 어느 정도 확신 웹 응용 프로그램은 여러 고객에게 서비스를 제공합니다.

그러나 Windows Workflow 응용 프로그램을 클라우드로 마이그레이션하는 방법에 대해서는 잘 모릅니다. 이해할 수있는대로 다음과 같은 선택을 할 수 있습니다.

  1. 단일 인스턴스/단일 데이터베이스 접근 방식을 사용하십시오. 이 접근 방식에서는 단일 워크 플로 인스턴스와 단일 워크 플로 데이터베이스 스키마가 여러 고객에게 제공됩니다.
  2. 다중 인스턴스/다중 데이터베이스 접근 방식을 사용하십시오. 이 접근 방식에서는 각 고객에 대해 별도의 데이터베이스 스키마와 함께 별도의 IIS 응용 프로그램을 제공합니다.
  3. 단일 인스턴스/다중 데이터베이스 접근 방식을 사용하십시오. 이 접근 방식에서는 여러 워크 플로 지속성 데이터베이스 (고객 당 하나)와 통신 할 수있는 단일 워크 플로 인스턴스를 갖게됩니다.

# 1에서 우리는 주로이 단일 데이터베이스에서로드가 증가함에 따라 성능에 관심이 있습니다. # 2를 사용하면 1000 명의 고객을 위해 1000 개의 웹 애플리케이션을 보유하고있는 것처럼 보이지 않으므로 웹 애플리케이션 확장성에 대한 우려가 있습니다.

이렇게하면 3 번 옵션으로 우리를 떠날 수 있습니다. 그러나 Windows 워크 플로에서이 작업을 수행 할 수 있는지 여부는 확실하지 않습니다.

그래서 Windows Workflow 웹 응용 프로그램의 단일 인스턴스를 어떻게 구성하거나 여러 SQL 지속성 데이터베이스와 통신하도록 프로그래밍 할 수 있습니까? 그렇다면 어떻게 할 수 있습니까?

감사합니다.

답변

0

본인은 절대로 직접하지는 않지만 자신 만의 PersistenceService을 구현하면됩니다. 이렇게하려면 SaveWorkflowInstanceState/LoadWorkflowInstanceState과 같은 메서드가있는 WorkflowPersistenceService 추상 클래스에서 파생됩니다.

이 방법을 사용하면 워크 플로의 WorkflowInstanceId 속성에 액세스 할 수 있습니다. 이 속성을 사용하여이 특정 워크 플로 인스턴스를 저장할 위치를 결정할 수 있다고 생각합니다. 적절한 데이터베이스에서 워크 플로를로드 (복원)하려면 다음과 같이 매핑을 구현해야합니다 : WorkflowInstanceId : DatabaseId.

+0

감사합니다. 이것은 흥미로운 아이디어입니다. 나는 이것에 대해 더 살펴볼 것이다. –