2011-01-01 3 views

답변

12

나는

몇 번 동일한 데이터베이스에 BC 엔티티를 매핑 할 수 때때로 당신은 당신의 BC의 다른 데이터베이스가있을 수 있습니다 충분히있을 수 있습니다 '가 달려있다'라고 말하고 싶지만.

IMO, 전자 상거래는 완전한 도메인보다 BC가 더 많을 수 있습니다.

저는 식품점을 판매 한 전체 판매원에게 너무 많은 시간을 보냈습니다.

그래서 도메인은 "전체 매출"및 경계 상황이었다, 재고, 구매, 판매, 송장, 제품 카탈로그 및 전자 상거래는

(어쩌면 내가 여기에 잘못된 영어 표현을 사용)이 BC의 각 "제품"에 대해 알고 있었지만 모두 제품에 대한 다른 견해를 가지고있었습니다.

구매시 공급 업체 정보, 구매 가격 등이 포함 된 제품 엔터티가있을 수 있습니다. 전자 상거래 도메인의 제품이보기의 고객의 관점에서 모델링 할 것이지만

, 그것은

전자 상거래 BC 것 등을 볼 때 고객 관련 정보, 특정 가격을 것이다 여러 출처에서 제품 정보 얻기 제품 카탈로그 및 판매. 기본 정보는 제품 카탈로그에서 가져오고 고객 특정 가격은 판매에서 가져온 것입니다.

그래서 전자 상거래 BC에서 제품 저장소) 우리의 전자 상거래 제품 엔티티를 구성하는 (일종의 서비스, 대부분 웹을 통해 또는 내 경우 WCF) 다른 BC의에서 상황에 매핑 할 수

개인적으로 저는 이것을 별도의 어셈블리로 모델링했습니다. 전자 상거래 모델과 판매 모델이 있습니다.

내 전자 상거래 모델의 대부분의 정보는 외부 소스에서 왔을 것이므로 로컬로 지속되지는 않습니다. 쇼핑 카트와 같은 물건은 전자 상거래 모델에 의해 소유 된 물건이므로 로컬에서 영구적으로 유지됩니다.

일단 고객이 구매를 완료하려고 시도하면 장바구니에서 선주문 한 다음 판매 BC로 전달합니다. 직접 서비스 호출 또는 메시지 큐를 통해.

간단히 말해, 나는 특정 BC를 중심으로 시스템을 구축하고 다른 BC의 서비스와 만 상호 작용하는 경향이 있습니다.

많은 사람들이 자신의 BC를 같은 어셈블리에 넣고 동일한 응용 프로그램 등에서 여러 BC를 사용한다는 것을 알고 있습니다. 하지만 특정 용도의 응용 프로그램이 다중 컨텍스트에 대해 알아야하는 이유는 이상합니다. 차라리 하나의 컨텍스트에 대해서만 알게하고 다른 데이터에 필요한 모든 데이터를 다른 앱으로 전달할 수 있습니다.

6

나는 그것이 모두에 달려 있다는 것에 동의하지만 몇 가지 지침이 있습니다.제한된 컨텍스트의 목적은 잘 경계입니다. 잘 정의 된 계약 (인터페이스)을 도입하여 애플리케이션의 일부를 다른 애플리케이션과 분리하는 경계.

SOA에서 SOA와 같은 BC를 처리하는 경향이 있습니다. 나를 위해 이상적으로 그들은 물리적으로 별개의 응용 프로그램 (OS 프로세스/IIS 웹 사이트)을 의미합니다. 바이너리는 물론 분리되어 있습니다. BC 간의 모든 통신은 이상적으로 비동기식입니다. 현실 세계에서는 거의 가능하지 않지만 적어도 BC 간 거래는 순수한 악의 이유로 허용하지 않습니다.

희망이 있습니다.

관련 문제