Chúng tôi đang phát triển hai hệ thống liên quan. Một trong số chúng (A) sẽ được cài đặt trên máy của khách hàng của chúng tôi. (B) còn lại sẽ được sử dụng bởi tổ chức của tôi.
Mỗi hệ thống có cơ sở dữ liệu riêng (quan hệ) và lược đồ của chúng khác nhau. Tuy nhiên, cả hai hệ thống phải được đồng bộ hóa. Ngoài ra, một số thay đổi trong B phải được xuất sang tất cả các hệ thống loại A và chỉ khác cho một hệ thống cụ thể.
Một số khách hàng không có kết nối Internet, do đó, trong một số trường hợp, việc đồng bộ hóa phải được thực hiện thông qua trao đổi tệp.
Vì vậy, chúng tôi đang lên kế hoạch để giải quyết vấn đề này như sau:
- Mỗi hệ thống duy trì một thay đổi cơ sở dữ liệu của nó. Chúng tôi đang lên kế hoạch triển khai nó với MongoDB.
- Khi một hệ thống khởi tạo quy trình đồng bộ hóa, nó sẽ lấy tất cả các thay đổi được thực hiện từ nhật ký. Nếu hệ thống là B, các thay đổi được truy xuất tùy thuộc vào điểm đến. Sau đó, hệ thống tuần tự hóa chúng theo định dạng XML và cuối cùng, gửi chúng (thông qua tệp hoặc mạng).
- Khi điểm cuối khác nhận được bộ thay đổi, nó sẽ hủy kích hoạt chúng. Sau đó, hệ thống thực hiện một số biến đổi trên dữ liệu, có thể cần thiết và cuối cùng, ghi lại các thay đổi. Trong bước này, nếu cần thiết, hệ thống phải giải quyết các xung đột có thể tồn tại.
- Cuối cùng, hệ thống máy thu gửi các thay đổi của nó (và các sản phẩm khác của giải quyết xung đột).
Là phương pháp này khả thi, có thể mở rộng và thanh lịch? Những thay đổi hoặc bổ sung bạn sẽ thực hiện?