2009-10-29 25 views
6

Tôi là nhà phát triển chính về một dự án đang xây dựng các ứng dụng web cho các công ty của tôi cung cấp SaaS. Chúng tôi hiện đang sử dụng LDAP để lưu trữ dữ liệu người dùng như ID, mật khẩu, chi tiết contanct, tùy chọn và dữ liệu cụ thể của người dùng khác.Cách phân chia trách nhiệm giữa LDAP và RDBMS

Một trong những ứng dụng chúng tôi đang xây dựng là một dịch vụ báo cáo sẽ thu thập và trình bày thông tin quản lý cho người dùng cuối của chúng tôi. Rõ ràng dịch vụ này sẽ yêu cầu một RDBMS nhưng nó cũng sẽ cần phải truy cập dữ liệu người dùng được lưu trữ trong LDAP.

Như tôi đã nhìn thấy nó chúng ta có một hai tùy chọn triển khai cơ bản:

  1. Duplicate dữ liệu người dùng trong cả hai LDAP và RDBMS.
  2. Có quyền truy cập dịch vụ báo cáo LDAP bất cứ khi nào cần dữ liệu người dùng.

Mặc dù dữ liệu trùng lặp (và triển khai cơ chế để thực hiện điều này xảy ra) như được đề xuất trong tùy chọn 1 có vẻ sai, cảm giác ruột của tôi là tùy chọn 2 sẽ không hoạt động tốt (cách bạn tham gia ' Dữ liệu LDAP cho dữ liệu RDBMS hiệu quả như một triển khai RDBMS thuần túy?).

Tôi đã tìm thấy related question nhưng tôi vẫn không chắc chắn nên tiếp cận. Tôi muốn được nhìn thấy những gì mọi người nghĩ về một trong hai lựa chọn hoặc có lẽ các tùy chọn khác.

+0

Ví dụ về nơi đây là vấn đề là nơi chúng tôi có thể triển khai báo cáo thông tin đăng nhập của người dùng. Chúng tôi muốn có một danh sách các sự kiện đăng nhập và một số dữ liệu người dùng liên quan như tên hiển thị và số điện thoại. Các sự kiện đăng nhập sẽ được lưu trữ trong RDBMS nhưng dữ liệu người dùng sẽ ở trong LDAP. –

Trả lời

2

Tại sao bạn cảm thấy rằng sao chép dữ liệu sẽ là sai đường? Các công cụ báo cáo (dựa trên web và khác) chủ yếu được xây dựng xung quanh RDBMS, vì vậy bất kỳ mix'n'match nào cũng sẽ giới thiệu những phức tạp không cần thiết. Báo cáo có thể cần được thay đổi khá thường xuyên (từ kinh nghiệm), vì vậy bạn muốn chúng càng đơn giản càng tốt. Dữ liệu bạn lưu trữ về người dùng không có khả năng thay đổi định dạng của nó thường xuyên, vì vậy khi bạn có chức năng nhập của mình hoạt động, bạn sẽ không cần phải chạm lại vào.

Trở ngại duy nhất tôi có thể thấy là độ trễ: làm thế nào để bạn đảm bảo rằng bản sao RDBMS của bạn được cập nhật? Bạn có thể cần đảm bảo rằng mã cập nhật của bạn ghi vào cả hai đích. Cá nhân, ngoài ra, tôi sẽ không nhất thiết phải sử dụng LDAP cho các tùy chọn cá nhân cụ thể của ứng dụng: LDAP không thể xử lý các giao dịch, vì vậy điều gì sẽ xảy ra khi dữ liệu được cập nhật từ nhiều hướng? (Giao dịch tất nhiên cũng là một vấn đề với việc cho phép các trình cập nhật ghi vào cả hai cửa hàng ...) Tôi muốn RDBMS làm chủ cho hầu hết dữ liệu, và cho phép LDAP lo lắng về danh tính, thông tin và quyền lợi, hiếm khi thay đổi và chỉ cho một bộ mục đích. Đối với bản thân mình, khả năng xử lý dữ liệu phân cấp của LDAP không phải là một điểm bán hàng tuyệt vời.

Sao chép dữ liệu không phải lúc nào cũng là điều xấu, đặc biệt khi các kịch bản sử dụng đủ khác nhau.

Các vấn đề liên quan