우리는 두 가지 관련 시스템을 개발하고 있습니다. 그 중 하나 (A)가 고객의 컴퓨터에 설치됩니다. 나머지 (B)는 내 조직에서 사용됩니다.
각 시스템에는 자체 데이터베이스 (관계형)가 있으며 스키마가 다릅니다. 그러나 두 시스템 모두 동기화되어야합니다. 또한 B의 일부 변경 사항은 모든 클래스 A 시스템으로 내보내고 다른 시스템은 특정 시스템으로 만 내 보내야합니다.
일부 고객은 인터넷에 연결되어 있지 않으므로 일부 경우 파일 교환을 통해 동기화를 수행해야합니다.
따라서이 문제를 다음과 같이 해결할 계획입니다.
- 각 시스템은 데이터베이스의 변경 로그를 유지 관리합니다. 우리는 그것을 MongoDB로 구현할 계획입니다.
- 시스템이 동기화 프로세스를 초기화하면 로그에서 모든 변경 사항을 검색합니다. 시스템이 B 인 경우 검색된 변경 사항은 대상에 따라 다릅니다. 그런 다음 시스템은이를 XML 형식으로 직렬화하고 마지막으로 파일 또는 네트워크를 통해 전송합니다.
- 다른 엔드 포인트가 변경 세트를 수신하면 직렬화 해제됩니다. 그런 다음 시스템은 데이터에 대해 일부 변환을 수행하여 필요할 수 있으며 마지막으로 변경 사항을 기록합니다. 이 단계에서 필요한 경우 시스템은 존재할 수있는 충돌을 해결해야합니다.
- 마지막으로, 리시버 시스템은 변경 사항 및 기타 충돌 해결 제품을 보냅니다.
이 접근법은 실현 가능하고 확장 가능하며 우아합니까? 어떤 변경이나 추가를 원하십니까?