패턴을 사용하여 디자인: 비즈니스 프로세스 관리 솔루션
비즈니스 프로세스 관리 솔루션은 BizTalk 응용 프로그램에서 프로세스 관리자를 생성하는 한 가지 방법을 보여줍니다. 이 솔루션에서는 구성 요소를 사용하여 주문 처리 단계의 순서를 선택하고 제어합니다. 또한 이 솔루션은 새로운 서비스, 변경 또는 서비스 취소 등에 대한 순서를 정하고 이를 기록하고 승인한 후에 처리를 위해 전달합니다. 이러한 처리는 주문을 처리하기 위한 하나 이상의 단계로 구성됩니다. 마지막으로 솔루션은 원래의 순서 요청에 최종 응답을 반환합니다.
잘 디자인된 프로세스 관리 솔루션을 사용하면 응용 프로그램의 나머지 부분을 다시 생성할 필요 없이 프로세스에서 단계를 추가하거나 뺄 수 있습니다. 이 솔루션에서 취한 접근 방식을 사용하면 정확히 이렇게 할 수 있습니다. 순차적 처리는 별개의 독립된 단계로 나뉩니다. 같은 포트에서 모든 단계를 읽으며 필터를 사용하여 처리할 메시지를 결정합니다. 이 내용은 다음 섹션 "패턴"에서 자세히 설명합니다.
FTP 연결을 통해 이 솔루션과 함께 서비스가 아닌 인터페이스를 사용할 수도 있지만 이 솔루션은 웹 서비스를 통한 입력도 허용합니다. 이 기능은 배치 시스템에서 응용 프로그램이 사용되는 방법을 시뮬레이션합니다.
패턴
다음 다이어그램은 이전 섹션에서 설명한 대로 비즈니스 프로세스 관리 솔루션에서 사용되는 패턴의 간단한 버전을 보여줍니다.
솔루션은 서비스 인터페이스, FTP 채널, 다양한 번역기, 프로세스 관리자 및 두 개의 처리 단계로 구성됩니다. 전처리 섹션의 4개 변환기는 서비스 인터페이스로 되돌아 가는 승인 메시지를 만들고 기록 또는 추적 데이터베이스에서 항목을 생성하고 서비스 시스템에 항목을 만듭니다. 4번째 변환기는 프로세스 관리자가 필요로 하는 메시지를 만듭니다. 그런 다음 프로세스 관리자는 처리 단계를 제어합니다.
많은 프로세스 관리자 구현에서는 관리자가 처리 상태를 추적합니다. 다이어그램에서 보듯이 이 구현에서는 이 점이 수정되었습니다. 이 솔루션에서는 프로세스 관리자가 메시지에 플래그를 설정하여 다음에 메시지를 처리해야 하는 처리 단계를 나타냅니다. 그런 다음 각 단계에서는 필터를 사용하여 특정 메시지를 처리할지 여부를 결정합니다.
이 접근 방식을 사용하면 프로세스 관리자는 라우팅 정보를 유지 관리할 필요가 없습니다. 관리자와 다양한 단계 사이의 모든 메시지는 같은 포트를 사용합니다. 단계를 추가하려면 적절한 포트를 통해 송수신하고 올바른 단계 번호를 필터링하는 구성 요소를 추가하기만 하면 됩니다. 프로세스 관리자 자체에서는 아무 것도 변경할 필요가 없습니다.
이 다이어그램에는 많은 부분이 생략되어 있습니다. 처리 단계는 백엔드 프로세스와 통신합니다. 또한 솔루션은 프로세스의 둘 이상의 지점에서 기록 정보를 수집할 수도 있습니다. 아마도 가장 중요한 것은 프로세스 관리자의 논리가 지정되지 않았다는 것입니다. 또한 동기 또는 비동기 연결의 사용이 지정되지 않았습니다. 이러한 내용은 다음 섹션에서 설명할 것입니다.