2012-12-17 2 views
0

이 솔루션은 오케스트레이션 프로세스 서비스와 도메인 엔터티에 CRUD 작업을 담당하는 여러 레거시 응용 프로그램으로 구성됩니다. 업데이트, 추가 또는 삭제 명령문이 이러한 레거시 응용 프로그램에 의해 실행될 때마다 엔티티 소유자 응용 프로그램에서 알림을 전송합니다. 모델링 단계에서 세분화 된 엔티티를 매핑하기로 결정했습니다. 이런 식으로 모든 CRUD 작업은 수천 통의 통지 (최대 20k)를 발생 시켜서 엔티티 지속성 및 알림 전송이 동일한 트랜잭션에서 결합되기 때문에 잠시 동안 사용자 작업을 차단할 수 있습니다. 120 초 이상 걸릴 경우이 작업을 수행 할 수 없습니다.SOA에서 느슨한 코드 결합

레거시 애플리케이션의 사용자 작업과 엔티티 지속성 및 알림 전송을 구분하여 특정 애플리케이션 서비스 (예 :)로 보냅니다. 가장 좋은 방법은 사용자 응용 프로그램의 백그라운드 스레드에 이러한 활동을 연기하는 것이지만 매우 오래된 기존 응용 프로그램을 사용하고 있다고 언급했기 때문입니다. 이 시나리오에 적용 할 수있는 SOA 디자인 패턴이 있습니까?

답변

1

원하는 것은 "Decoupled invocation"입니다. 요청을 받아 들여 (영구적 인) 대기열에 넣고 요청이 수신되었다는 확인을 사용자에게 보냅니다. 시나리오에 따라 메시지가 완전히 처리되면 추가 답장을 보낼 수 있습니다 (예 : 이메일).

enter image description here.

+0

안녕하세요. Arnon, 답장을 보내 주셔서 감사합니다. 추가 질문이 두 가지 있습니다. Edge 서비스는 무엇을 의미합니까? 이것은 일종의 프로세스, 비즈니스 또는 응용 서비스입니까? – Riccardo

+0

Edge Component를 참조하십시오. http://rgoarchitects.bit.ly/6wTGjM –

관련 문제