2012-02-19 29 views
11

Ứng dụng tập trung vào dữ liệu là gì và có sự khác biệt nào với mô hình ứng dụng hướng đối tượng không?Sự khác nhau giữa các mô hình ứng dụng hướng đối tượng và tập trung vào dữ liệu là gì?

+0

Bạn có thể cung cấp một số ngữ cảnh với câu hỏi của mình không? –

+0

[1]: http://en.wikipedia.org/wiki/Database-centric_architecture [2]: http://en.wikipedia.org/wiki/Object-oriented_programming –

+0

Tôi đang đọc một cuốn sách về kiến ​​trúc phân tán và cách tạo khung ứng dụng. Có một cuộc nói chuyện về một mô hình ứng dụng trung tâm dữ liệu và oo nhưng tôi không thể hiểu nhiều về nó. Sau đó, tôi google nó, nhưng tôi couldnt tìm thấy nhiều thông tin về sự so sánh này. –

Trả lời

13

Hai khái niệm có phần trực giao, một trong số các khái niệm trong một cơ sở dữ liệu được định nghĩa thông qua quan hệ cơ sở dữ liệu và các ràng buộc. OOP có thể được sử dụng để tạo ra một ứng dụng tập trung vào dữ liệu.

Một số kiến ​​trúc lớn multi-tier mà mọi người nghĩ đến khi họ nói kiến ​​trúc OOP triển khai logic nghiệp vụ trong mã và chỉ lưu trữ dữ liệu trong cơ sở dữ liệu. Tuy nhiên, nó sẽ là sai lầm khi nghĩ rằng thiết kế hướng đối tượng nhất thiết phải là một hệ thống kinh doanh logic ridden lớn.

Giả sử bạn phải triển khai thông báo giữa hai hệ thống. Một cách (mặc dù một cách xấu) là để mỗi hệ thống viết các thông điệp vào cơ sở dữ liệu và hệ thống khác đọc từ cơ sở dữ liệu thường xuyên để nhận tin nhắn. Đây sẽ là một cách tiếp cận tập trung vào dữ liệu vì có rất ít mã cần thiết ngoài việc đọc và ghi dữ liệu.

Hệ thống tương tự có thể được triển khai bằng cách để các hệ thống mở kết nối ổ cắm với nhau và gửi tin nhắn trực tiếp. Bằng cách này, có nhiều mã và truy cập cơ sở dữ liệu ít hơn. Đây là cách tiếp cận phi trung tâm. Một trong hai cách này có thể được triển khai bằng các khái niệm OOP.

Ví dụ khác từ công việc của chúng tôi, chúng tôi triển khai máy chủ cho trò chơi, một loại máy chủ xử lý chơi trò chơi nhiều người chơi để người dùng nhấn nút và tàu vũ trụ kích hoạt tên lửa tại trình phát khác. Máy chủ này không phải là trung tâm dữ liệu, nó dựa trên sự kiện. Một máy chủ lưu trữ người dùng điểm số cao, danh sách bạn bè vv máy chủ này là wrapper mỏng trên cơ sở dữ liệu lưu trữ điểm số và danh sách.

+0

Cảm ơn câu trả lời. Bạn có thể cung cấp thêm thông tin những gì bạn nói là "nếu đối tượng của bạn là chung chung thì ứng dụng của bạn vẫn có thể là trung tâm dữ liệu"? –

+0

Đã chỉnh sửa cho một số ví dụ –

8

Thiết kế tập trung vào dữ liệu là thiết kế mà hành vi ứng dụng được đóng gói bởi dữ liệu. Một ví dụ đơn giản. Hãy xem xét lớp OOP sau:

class Car { 
    void move(x, y); 
private: 
    int x, y; 
} 

Đây là đại diện OOP của ô tô. Gọi phương thức 'di chuyển' sẽ kích hoạt xe bắt đầu di chuyển. Nói cách khác, bất kỳ tác dụng phụ nào được kích hoạt bằng cách gọi các phương thức lớp.

Dưới đây là cùng lớp, nhưng dữ liệu trung tâm:

class Car { 
    int x, y; 
} 

Để có được chiếc xe di chuyển này, tôi sẽ "đơn giản là" thay đổi các giá trị của x và y. Trong hầu hết các ngôn ngữ lập trình, các thành viên thay đổi sẽ không cho phép thực hiện logic, đó là lý do tại sao dữ liệu centricity thường đòi hỏi một khuôn khổ.

Trong khung như vậy, logic được chạy trên C, U và D của CRUD.một khuôn khổ như vậy sẽ cung cấp cơ sở vật chất thích hợp để cho phép chèn mã tại bất kỳ của những sự kiện này, ví dụ:

  • DBMS gây
  • OMG DDS waitsets/thính giả (DDS là một tiêu chuẩn dữ liệu trung tâm tin nhắn)
  • Corto quan sát (Corto là một khung ứng dụng dữ liệu centric) thiết kế trung tâm

dữ liệu có nhiều ý nghĩa. Ví dụ, vì một trạng thái ứng dụng được biểu diễn một cách hiệu quả bởi dữ liệu của nó, bạn có thể tự động duy trì ứng dụng. Một ứng dụng trung tâm dữ liệu được viết tốt có thể được lưu trữ, dừng lại và khôi phục từ một cơ sở dữ liệu, và tiếp tục như nó chưa bao giờ biến mất.

Thiết kế tập trung dữ liệu là một kết hợp tốt cho kiến ​​trúc web 3 tầng truyền thống. Các ứng dụng web thường được điều khiển bởi nội dung của cơ sở dữ liệu phụ trợ. Đó là lý do tại sao, khi bạn đóng và mở lại một trang web động, nó vẫn trông giống nhau (miễn là dữ liệu không thay đổi).

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