4

상태 시스템은 워크 플로가 사용자가 제공 한 응답에 "반응"해야하는 경우 다중 루프와 분기 또는 논리가있을 때 워크 플로의 복잡성을 줄일 수 있습니다. 이는 이벤트 중심 워크 플로입니다.선형 워크 플로보다 상태 시스템을 더 선호하는 경우

어떤 상황에서 상태 시스템을 사용하도록 선택했으며 어떤 유형의 고통이 시간과 복잡성면에서 감소 했습니까?

답변

4

상태 기반 컴퓨터는 이벤트 기반 코드에 매우 적합합니다. 코드가 일부 이벤트에 대한 응답으로 호출되는 경우 루프 및 분기를 사용할 수 없습니다. 대신 상태 시스템을 사용하고 상태를 변경하기 위해 이벤트를 피드에 넣어야하며 시스템의 현재 상태에 따라 이벤트 핸들러를 대응시켜야합니다.

4

상태 시스템 워크 플로는 워크 플로 완료를 통해 미리 정의 된 단계가없는 경우에 사용됩니다. 이 정의를 살펴보십시오 (State Machine Workflows in Windows Workflow Foundation)

워크 플로는 필요한 동작을 구현하는 몇 가지 단계로 구성된 정의 된 프로세스입니다. 기본적으로 워크 플로에는 순차 워크 플로와 상태 워크 플로가 있습니다. 순차 워크 플로에서 워크 플로에서 진행할 모든 결정은 워크 플로 자체에서 수행됩니다. 잘 정의 된 시작과 잘 정의 된 끝이 있습니다. 그 사이에는 흐름을 지시하는 가지와 고리로 구성된 흐름이 있습니다. 이는 워크 플로가 제어됨을 의미합니다.

상태 시스템 워크 플로를 사용하면 특정 솔루션에 대해 수행 할 모든 단계의 실제 미리 정의 된 경로가 없습니다. 상태 머신은 또 다른 접근 방식을 취합니다. 그들은 사건이 일어나기를 기다리고, 사건을 기반으로 자신의 상태를 바꿉니다. 상태 시스템은 의사 결정이 외부 응용 프로그램에서 들어오고 예측할 수없는 경우에 사용됩니다. 특히 사용자 상호 작용이 필요한 경우 상태 시스템이 더 편리한 솔루션입니다.

+0

+1. 그래, 난 동의. 선형 워크 플로에서 복잡한 결정을 내릴 때 진행될 수있는 많은 단계가있을 수 있으므로 질문을 다시 말해야 할 수도 있습니다. 내 생각은 상태 기계가 이러한 복잡성을 줄이는 것이 었습니다. –

+0

위의 인용문에 따르면, 특정 경우에 대한 질문이 있습니다 : 재무 (주식) 거래. 한 남자가 주식을 거래하기를 원하며 통계 (가격)의 실시간에 따라 몇 가지 결정을 내릴 것입니다. 그러나 결정 사항은 A 또는 B 또는 C처럼 명확하게 표시되어 있습니다. 상태 머신 워크 플로가 이러한 상황에 어떻게 부합합니까? 그리고 어떻게이 사건에 순차적으로 맞습니까? –

+0

@VuNguyen, 조건으로 생각하십시오. 순차적 인 워크 플로우에서는 어떤 값을 기반으로 액션을 실행하는 결정 노드를 갖게됩니다. 상태 시스템 워크 플로에서 동일한 값을 기반으로 전환을 선택합니다. 더 많은 정보가 필요하면 새로운 질문을하십시오. –

3

상태 시스템과 선형 워크 플로는 응용 프로그램 개발과 관련이없는 충분히 다른 문제 공간입니다.

모델링되는 프로세스가 접근 방식을 주도 할 때, 작업 단위가 존재할 수 있고 상태를 통한 잠재적 비선형 진행이 가능한 여러 상태가있는 프로세스에 상태 시스템을 사용합니다. 분명히 선형적인 프로세스가 존재하는 경우 중요한 백 트랙킹이없는 경우 선형 워크 플로 (또는 순차 워크 플로)가 사용됩니다.

관련 문제