1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb

46 1,3K 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 1,13 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Ngày nay, dữ liệu có cấu trúc, bán cấu trúc (XML), phi cấu trúc (video, hình ảnh, âm thanh) tăng lên nhanh chóng. IBM ước lượng, có 2.5 nhân 10 mũ 18 bytes (2,500,000,000,000,000,000) dữ liệu được tạo ra mỗi ngày 1. Cơ sỡ dữ liệu quan hệ (RDBMS) khó có thể đáp ứng nhu cầu lưu trữ khi cấu trúc dữ liệu thường xuyên thay đổi 2. Big Data ra đời để đáp ứng nhu cầu đó. Khái niệm Big Data được định nghĩa là sự thu thập, quản lỹ và phân tích dữ liệu 1. Big data được ứng dụng trong nhiều lĩnh vực như phân tích thị trường chứng khoán, phân loại ảnh Picasa, khai phá dữ liệu trên Pandora, Netflix, Amazon, phân tích dựa trên khách hàng hoặc mạng xã hội (Facebook, Twitter),...1. Sự bùng nổ thông tin và dữ liệu cá nhân cần được thu thập, sử dụng đúng mục đích. Việc lạm dụng có thể làm lộ thông tin cá nhân. Ví dụ chương trình nghe lén điện thoại của Cơ quan An ninh Quốc Gia Mỹ đã làm giảm lòng tin nhân dân Mỹ. Vì vậy, vấn đề riêng tư và an toàn thông tin được quan tâm hơn bao giờ hết.

Trang 1

ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP

NGHIÊN CỨU VÀ PHÁT TRIỂN

HỆ THỐNG ĐIỀU KHIỂN TRUY XUẤT

BẢO VỆ TÍNH RIÊNG TƯ CHO CƠ SỞ DỮ LIỆU NOSQL MONGODB

GVHD: ThS TRẦN THỊ QUẾ NGUYỆT GVPB: ThS LÊ THỊ KIM TUYẾN

====================

SVTH 1: ĐINH TRẦN VIỆT HOÀNG (51104451) SVTH 2: NGUYỄN ANH KIỆT (50901314)

TP HỒ CHÍ MINH, 5/2016

Trang 2

Mục lục 2

Chương 1: GIỚI THIỆU 4

1.1 Mô tả vấn đề 4

1.2 Mục tiêu đề tài 4

1.3 Ý nghĩa 4

Chương 2: KIẾN THỨC NỀN TẢNG 5

2.1 Big Data 5

2.1.1 Định nghĩa Big Data 5

2.1.2 Đặc điểm Big Data 5

2.1.3 Những ứng dụng Big Data [1] 6

2.1.4 Tính riêng tư trong Big Data [1] 6

2.2 NoSQL 6

2.2.1 Các loại NoSQL 7

2.2.2 Lợi ích khi dùng NoSQL [6] 8

2.2.3 Các đặc điểm của NoSQL [6] 8

2.3 MongoDB 9

2.3.1 Giới thiệu mô hình dữ liệu MongoDB 9

2.4 Các khái niệm mô hình hóa dữ liệu trong MongoDB 11

2.4.1 Thiết kế mô hình dữ liệu (Data Model Design) 11

2.4.2 Operational Factors và mô hình dữ liệu 14

2.4.3 GridFS 15

2.5 NODE JS 16

Chương 3: CÁC MÔ HÌNH ĐIỀU KHIỂN TRUY CẬP 17

3.1 MÔ HÌNH TRUYỀN THỐNG 17

3.2 MÔ HÌNH ĐIỀU KHIỂN TRUY CẬP DỰA TRÊN VAI TRÒ (ROLE-BASED ACCESS CONTROL MODEL – RBAC) 17

3.2.1 RBAC phẳng (Flat RBAC) [12] 19

3.2.2 RBAC phân cấp (Hierarchical RBAC) [12] 19

3.2.3 RBAC ràng buộc (Constrained RBAC) [12] 19

3.2.4 RBAC đối xứng (Symmetric RBAC) [12],[13] 21

3.3 CÁC MÔ HÌNH ĐIỀU KHIỂN TRUY CẬP TIÊN TIẾN 22

3.3.1 Mô hình Attribute-Based Access Control (ABAC) [15] 22

3.3.2 Mô hình Usage Control (UCON) [16] 23

Trang 3

3.3.3 MÔ HÌNH ĐIỀU KHIỂN DỰA TRÊN MỤC ĐÍCH – PURPOSE-BASED ACCESS

CONTROL MODEL (PRBAC)[14] 24

3.3.4 MÔ HÌNH ĐIỀU KHIỂN TRUY CẬP CỦA KABIR 25

3.3.5 CÁC HƯỚNG TIẾP CẬN MỚI CỦA FERRARI 33

Chương 4: MÔ HÌNH ĐỀ XUẤT 33

4.1 THUẬT TOÁN COMPLIANCE CHECK 33

4.2 CƠ CHẾ CỦA FERRARI 33

4.2.1 PREFILTERING 33

4.2.2 REWRITING 33

4.3 PROXY CÓ CHỨC NĂNG MONITOR 33

Chương 5: KIẾN TRÚC HỆ THỐNG 34

5.1 THUẬT TOÁN COMPLIANCE CHECK 34

5.2 DATABASE DÙNG DEMO 34

5.3 CÁC KHỐI VÀ CHỨC NĂNG 34

5.3.1 FONT-END 34

5.3.2 WEB-SERVER 34

5.3.3 PROXY 34

5.3.4 MONGODB-SERVER 34

5.4 HIỆN THỰC HỆ THỐNG 34

Chương 6: ĐÁNH GIÁ HIỆU NĂNG 35

6.1 SỬ DỤNG PROXY 35

6.2 KHÔNG SỬ DỤNG PROXY 35

6.3 ĐÁNH GIÁ 35

Chương 7: KẾT LUẬN 36

7.1 CÔNG VIỆC ĐÃ LÀM ĐƯỢC 36

7.2 CÔNG VIỆC TƯƠNG LAI 36

Chương 8: TÀI LIỆU THAM KHẢO 37

Trang 4

Chương 1: GIỚI THIỆU

1.1 M

ô tả vấn đề

Ngày nay, dữ liệu có cấu trúc, bán cấu trúc (XML), phi cấu trúc (video, hìnhảnh, âm thanh) tăng lên nhanh chóng IBM ước lượng, có 2.5 nhân 10 mũ 18 bytes(2,500,000,000,000,000,000) dữ liệu được tạo ra mỗi ngày [1] Cơ sỡ dữ liệu quan hệ(RDBMS) khó có thể đáp ứng nhu cầu lưu trữ khi cấu trúc dữ liệu thường xuyên thayđổi [2] Big Data ra đời để đáp ứng nhu cầu đó Khái niệm Big Data được định nghĩa là

sự thu thập, quản lỹ và phân tích dữ liệu [1]

Big data được ứng dụng trong nhiều lĩnh vực như phân tích thị trường chứngkhoán, phân loại ảnh Picasa, khai phá dữ liệu trên Pandora, Netflix, Amazon, phân tíchdựa trên khách hàng hoặc mạng xã hội (Facebook, Twitter), [1] Sự bùng nổ thông tin

và dữ liệu cá nhân cần được thu thập, sử dụng đúng mục đích Việc lạm dụng có thểlàm lộ thông tin cá nhân Ví dụ chương trình nghe lén điện thoại của Cơ quan An ninhQuốc Gia Mỹ đã làm giảm lòng tin nhân dân Mỹ Vì vậy, vấn đề riêng tư và an toànthông tin được quan tâm hơn bao giờ hết

Sau thời gian tìm hiểu, nhóm chọn đề tài “PHÁT TRIỂN FRAMEWORKĐIỀU KHIỂN TRUY XUẤT CHO HỆ THỐNG CƠ SỞ DỮ LIỆU NOSQL”

1.2 M

ục tiêu

đề tài

Các mục tiêu và nhiệm vụ được đặt ra:

 Tìm hiểu các mô hình điều khiển truy xuất, phân tích ưu nhược điểm của các mô hình đó

 Tìm hiểu cơ sở dữ liệu lớn, đặc biệt là cơ sở dữ liệu NoSQL MongoDB

 Đề xuất mô hình điều khiển truy xuất trên MongoDB

 Xây dựng Mongo Proxy

 Xây dựng các ứng dụng với các chức năng cơ bản áp dụng hệ thống điều khiển truy cập bảo vệ tính riêng tư dựa trên mục đích và ngữ cảnh

Trang 5

 Xây dựng framework điều khiển truy cập bảo vệ tính riêng tư dựa trên mục đích và ngữ cảnh.

1.3 Ý

nghĩ a

Xây dựng framework điều khiển truy xuất dựa trên vai trò và ngữ cảnh có thể ứng dụng vào thực tế như quản lý giáo dục, thông tin bệnh viện

Trang 6

2.1.1 Định nghĩa Big Data

Trong những năm gần đây, chúng ta bước vào kỷ nguyên Big Data, kỷ nguyênbùng nổ thông tin, làm thay đổi cách chúng ta sống, làm việc, suy nghĩ [3] Thuật ngữBig Data bao gồm thu thập, quản lý, phân tích trên các dữ liệu có cấu trúc (dữ liệu quanhệ), dữ liệu bán cấu trúc (XML), dữ liệu phi cấu trúc (video, hình ảnh) Dữ liệu lớncũng có những nguồn mới, như trong máy tính (vd: các file log nhật ký hay mạng cảmbiến), trong thiết bị di động (video, hình ảnh, tin nhắn), và trong các thiết bị máy móckết nối với nhau (vd như xe, máy bay hoặc các thiết bị giám sát từ xa) nhằm mục đíchlên kế hoạch bảo trì kịp thời [1]

2.1.2 Đặc điểm Big Data

Big Data có năm đặc điểm [3],[4]:

Volume (khối lượng dữ liệu lớn): số lượng data khổng lồ được tạo ra mỗi

giây, không phải chỉ được tính bằng đơn vị Terabyte mà tính bằng Zettabyte hayBrontobyte Cứ mỗi ngày, trên facebook có 10 tỷ tin nhắn, 4,5 tỷ lần “like”, 350 triệuhình mới được upload, Sự gia tăng dữ liệu khổng lồ này không khả thi nếu việc lưutrữ sử dụng công nghệ lưu trữ truyền thống với cơ sở dữ liệu quan hệ Big Data có thểlưu trữ dễ dàng lượng thông tin trên và dùng cho hệ thống phân tán (distributed system)[4]

Velocity (tốc độ cao) : Big Data technology cho phép xử lý dữ liệu ngay

khi chúng được tạo ra, ngay cả khi dữ liệu chưa được đưa vào database Như messagetrong mạng xã hội lan truyền trong vài giây, tốc độ kiểm tra gian lận trong giao dịch thẻtín dụng, hay tốc độ tính bằng mili giây để quyết định mua bán cổ phiếu dựa vào phântích mạng xã hội [4]

Variety (đa dạng các loại dữ liệu) : Trong quá khứ, dữ liệu cấu trúc được

dùng nhiều vì phù hợp với table hoặc cơ sở dữ liệu quan hệ, ví dụ như dữ liệu tài chính.Như ngày nay, 80% dữ liệu của thế giới là không cấu trúc, vì thế không dễ để đưa vàocác table (ví dụ hình ảnh, video) Với Big Data, có thể sử dụng nhiều loại dữ liệu khácnhau: bán cấu trúc, không cấu trúc và cả dữ liệu truyền thống là dữ liệu có cấu trúc [4]

Trang 7

Value (giá trị dữ liệu cao): cho phép con người hiểu rõ hiện tại và dự

đoán trước tương lai [3] Các công ty bắt đầu tạo được những giá trị to lớn từ việc sửdụng Big Data [4] Việc kinh doanh nào không quan tâm đặc biệt tới Big Data sẽ bị bỏlại phía sau [4]

Veracity (tính xác thực thấp) : uncertainties in the data (không chắc chắn

dữ liệu) [3] Với rất nhiều loại dữ liệu, chất lượng và độ chính xác ít được kiểm soát làmtính xác thực thấp Nhưng dữ liệu lớn và công nghệ phân tích cho phép bù đắp cho sựthiếu xác thực [4]

2.1.3 Những ứng dụng Big Data [1]

 Phân tích tâm lý thị trường chứng khoán

 Phân loại hình ảnh Picasa của Google

 Phân tích khách hàng (Facebook, Twitter)

 Phân tích dữ liệu các hệ thống mạng báo hiệu (đèn giao thông, cơ sở hạ tầng)

 Hệ thống đặt chỗ du lịch kết hợp sở thích khách hàng

 Giải trí trên mạng xã hội

 Hệ thống chuẩn đoán y học

2.1.4 Tính riêng tư trong Big Data [1]

Việc tích hợp giữa phân tích dữ liệu lớn với thông tin công cộng (hoặc thông tinriêng tư được cung cấp một cách tự nguyện bởi người giám sát được ủy thác thông tinđó) có thể giúp tìm kiếm nhanh trên các bộ dữ liệu lớn về phim ảnh, giọng nói, dữ liệucảm biến, và văn bản thư điện tử để cải thiện độ an toàn chung cho phục hồi sau sự cố,

để ngăn ngừa các mối đe dọa khủng bố, và để hiểu những mối quan tâm của cộng đồng.Người ta có thể nghĩ tới điều này như là những phản hồi nếu so sánh với những hệthống phát cảnh báo khẩn cấp Tất nhiên, mối quan tâm và mảng đen tối tiềm tàng hiệnhữu trong dữ liệu lớn và các phân tích phim ảnh, giọng nói, thư điện tử khi nó trở thành

sự truy cập trái phép vào các thông tin cá nhân Những hệ thống như vậy đòi hỏi phải sửdụng một cách có trách nhiệm, hoàn toàn kín đáo, và phải kiểm duyệt thông tin thu thậpđược từ nguồn công cộng và mạng máy tính

2.2 N oSQ L

Các cơ sở dữ liệu quan hệ lưu trữ dữ liệu một cách nhất quán bất kể bản chấtcủa dữ liệu hay ứng dụng nhưng gặp khó khăn trong vấn đề mở rộng hoặc thay đổi cấu

Trang 8

trúc Hiện nay, development platforms là web scale chứ không chỉ là network scale,nhiều ứng dụng có thể chạy phân tán trên nhiều server khác nhau đòi hỏi dynamicscaled Bên cạnh đó sự phát triển nhanh chóng của computing và sự bùng nổ thông tin

yêu cầu việc lưu trữ dữ liệu phải nhanh và có thể mở rộng nhanh để đáp ứng các ứng

dụng xử dụng cơ sở dữ liệu Cơ sở dữ liệu quan hệ làm ảnh hưởng xấu đến hiệu suất,tốc độ trong các hệ thống web scale nên không còn phù hợp

Để giải quyết vấn đề trên, nhiều loại cơ sở dữ liệu không sử dụng mô hình dữliệu quan hệ (non-relational database) được đưa vào sử dụng trong những năm gần đây,

và được gọi là các NoSQL database NoSQL có ưu điểm là dễ mở rộng theo chiềungang (horizontal scaling), tính sẳn sàng cao (high available), giá thành thấp (low cost),hiệu suất cao (high performance) [5] NoSQL là bước phát triển mới của thế hệ cơ sở dữliệu mới : phân tán (distributed) và không ràng buộc (non-relational) [7] NoSQL thườngđược dùng để lưu trữ dữ liệu lớn, phù hợp với Big Data

Kiến trúc NoSQL database hiện nay có lợi cho sự phát triển tự do của dữ liệu

và traffic Do đó, tạo thuận lợi cho việc phát triển các giải thuật song song (nhưMapReduce) giúp các hệ thống phân tán hoạt động hiệu quả NoSQL đang dẫn đầu cácphương pháp lưu trữ và phân tích thông tin dữ liệu người dùng

Hệ thống dữ liệu quan hệ sử dụng metadata để kiểm soát chặt chẽ việc xử lýđồng bộ để duy trì sự nhất quán dữ liệu Nhưng việc phân tán dữ liệu trên nhiều hệthống của NoSQL làm lỏng lẻo việc xử lý đồng bộ Do đó, tính nhất quán và toàn vẹnkhông được đảm bảo Một điểm yếu khác của NoSQL là hầu như hỗ trợ security cholớp database [5]

2.2.1 Các loại NoSQL

Bảng 1: Các loại NoSQL và Database tương ứng [5]

Trang 9

Bảng 2: Bảng so sánh các loại database NoSQL [5]

Trong đó:

Key-Value: loại NoSQL đơn giản nhất, còn gọi là Row Store [5]

Column-Oriented: lưu trữ theo kiểu cột, tối ưu hóa cho truy vấn dữ liệu lớn [5].Document-Oriented: mỗi khóa kết hợp với một dữ liệu phức tạp có thể là báncấu trúc, phi câu trúc; không cần schema chặt chẽ Nên việc dùng Document-Orientedlàm tăng hiệu suất và dễ sử dụng cho các hệ thống lưu trữ phân tán hơn là dùng các cơ

sở dữ liệu quan hệ truyền thống [5]

Graph database: dùng để lưu trữ thông tin về mạng như mạng xã hội, bản đồ,

2.2.2 Lợi ích khi dùng NoSQL [6]

NoSQL cung cấp khả năng mở rộng và hiệu suất cao hơn các cơ sở dữ liệuquan hệ truyền thống:

 Đáp ứng được sự thay đổi nhanh chóng của dữ liệu lớn, có cấu trúc,báncấu trúc và phi cấu trúc

 Schema dữ liệu mới thêm vào không ảnh hướng đến dữ liệu cũ

 Hỗ trợ lập trình hướng đối tượng, do đó dễ sử dụng và linh hoạt hơn

 Kiến trúc hiệu quả, tăng khả năng mở rộng, xây dựng cơ sở phân tán, linhđộng thay vì nguyên khối, cứng nhắc như kiến trúc cũ

2.2.3 Các đặc điểm của NoSQL [6]

Dynamic Schema : (Schema động) Cơ sở dữ liệu quan hệ (RDBMS yêu

cầu phải khai báo Schema trước khi thêm dữ liệu vào Việc này không phù hợp với sựphát triển nhanh chóng hiện nay Có dữ liệu có tính chất khác, thì schema của databasephải thay đổi lại Nếu database lớn, việc thay đổi này diễn ra chậm đáng kể Vì vậy sửdụng các RDBMS cho dữ liệu có schema động không thích hợp Các NoSQL databaseđược xây dựng để cho phép dữ thêm dữ liệu mà không cần khai báo schema trước, làm

Trang 10

giảm thời gian chờ, không cần quan tâm đến service interruption Do đó việc phát triểnứng dụng nhanh hơn, lập trình và quản lý dữ liệu đơn giản hơn.

Auto - sharding : là cơ chế tự động của MongoDB dùng để chia tách một

dữ liệu kích thước lớn cho rất nhiều server (cluster) [7] Do đó, MongoDB hỗ trợ việcđịnh hình theo chiều ngang Dữ liệu và các câu truy vấn được phân bố đều trên cácserver Khi một server bị hư hại sẽ có server khác thực hiện công việc thay thế[6] Auto –Sharding phục vụ 3 mục tiêu [7]:

Làm cho cluster trong suốt với người dùng

Làm cho cluster luôn sẵn sàng để đọc hoặc ghi

Làm cho cluster phát triển tự nhiên

Replication : Hầu hết các NoSQL hỗ trợ nhân rộng dữ liệu để duy trì tính

sẵn sàng trong các trường hợp có sự cố hay bảo trì hệ thống, do đó NoSQL hỗ trợ khảnăng chuyển đổi dự phòng và phục hồi hệ thống

Integrated Caching : Các NoSQL hỗ trợ khả năng caching rất tốt cho cả

tác vụ đọc và ghi Thích hợp cho các ứng dụng đòi hỏi băng thông cao và độ trễ thấp,điều mà các RDBMS khó đáp ứng được

Với những đặc điểm và lợi ích của NoSQL, nhóm quyết định chọn MongoDB

để hiện thực đề tài

2.3 M ongo DB

2.3.1 Giới thiệu mô hình dữ liệu MongoDB

MongoDB là một schema-free document database được viết bằng C++ trong một dự án mở của 10gen Inc Mục đích của MongoDB để rút ngắn khoảng cách giữa

mô hình key-value và RDBMS [5]

MongoDB là một NoSQL theo kiểu document store, lưu trữ dưới dạng BSON(một dạng tương tự JSON), và có khả năng đánh chỉ mục index Dữ liệu trongMongoDB có schema linh hoạt [8], không cần phải khai báo schema nếu thêm dữ liệumới

Trang 11

Tham khảo là lưu mối quan hệ giữa các dữ liệu bằng các đường link từ 1document tới 1 document khác Ứng dụng lưu các tham khảo này và truy xuất các dữliệu liên quan Đó là sự chuẩn hóa mô hình dữ liệu.

Hình 1:Mô hình dữ liệu sử dụng tham khảo để liên kết các document.

Cả contact document và access document đều chứa tham khảo đến userdocument

Dữ liệu nhúng (embedded data)

Dữ liệu nhúng lưu dữ liệu liên quan trong cùng 1 document MongoDBdocument cho phép nhúng document con vào 1 trường hoặc 1 mảng trong documentcha Sự không chuẩn hóa này cho phép ứng dụng truy xuất và xử lí dữ liệu có liên quantrong 1 thao tác cơ sở dữ liệu

Hình 2: Ví dụ nhúng document này trong document khác

Trang 12

b Tính nguyên tố (không thể chia, giãn lược) của tác vụ ghi (Atomicity

of Write Operations)

Trong MongoDB, tính nguyên tố của tác vụ ghi ở mức document, không có tác

vụ ghi đơn nào ảnh hưởng nhiều hơn 1 document hoặc 1 collection Mô hình dữ liệukhông chuẩn hóa với dữ liệu nhúng kết hợp tất cả dữ liệu liên quan trong 1 document.Điều này giúp tác vụ ghi có thể chèn hoặc cập nhật dữ liệu cho 1 thực thể 1 lần Đó gọi

là tính nguyên bản của tác vụ ghi Dữ liệu chuẩn hóa chia dữ liệu cụ thể thành nhiềucollection và do đó cần nhiều tác vụ ghi hơn đễ cập nhật hoặc chèn dữ liệu Lúc này tác

vụ ghi không còn nguyên bản nữa Tuy nhiên, schema hỗ trợ atomic writes cho phéphạn chế cách sử dụng dữ liệu của ứng dụng để đảm báo tính nguyên tố

c Sự phát triển của document

Thao tác thêm phần tử vào mảng hay thêm trường mới đều tăng kích thướcdocument

Đối với MMAPv1 storage engine, nếu kích thước document vượt quá sự phân

bổ bộ nhớ cho document đó, MongoDB sẽ phân bổ lại bộ nhớ document trên ổ đĩa, điềunày có thể ảnh hưởng đến quyết định chuẩn hóa hay không chuẩn hóa dữ liệu

d Sử dụng dữ liệu và performance

Khi thiết kế mô hình dữ liệu, cần để ý đến việc ứng dụng sẽ sử dụng databasevào việc gì Ví dụ, nếu ứng dụng chỉ sử dụng những document được thêm vào gần nhất,cần quan tâm đến capped-collection[9] Nếu ứng dụng chủ yếu thực hiện tác vụ đọc trêncollection, thêm index để tăng performance

Trang 13

2.4 C

ác khái niệm

mô hình hóa

dữ liệu tron

g Mon goD B

2.4.1 Thiết kế mô hình dữ liệu (Data Model Design)

Mô hình dữ liệu hiệu quả sẽ hỗ trợ tốt cho ứng dụng Vấn đề quan tâm chính làcấu trúc dữ liệu cho ứng dụng sẽ sử dụng kiểu nhúng (embed) hay dùng tham khảo (usereferences)

a Mô hình nhúng (Embedded Data Models)

Với MongoDB, có thể nhúng các dữ liệu quan hệ với nhau trong một cấu trúchay một document Schema này được hiểu là mô hình không chuẩn hóa, tận dụng lợithế rich document của MongoDB Mô hình dữ liệu nhúng giúp các ứng dụng cần ít lệnhtruy vấn và update, làm hiệu suất của thao tác đọc cao hơn so với mô hình dữ liệu thamkhảo

Tổng quát, dùng mô hình dữ liệu nhúng khi:

- Quan hệ ràng buộc one-to-one giữa các thực thể, và cần quan sát 1 thựcthể bên trong một thực thể khác

- Quan hệ ràng buộc one-to-many giữa các thực thể, trong đó cần quan sátnhiều thực thể trong một thực thể khác

Trang 14

Ví dụ: One-to-One Relationships with Embedded Documents

Hình 3: Ví dụ address document chứa một reference đến patron document

Hình 4: Sử dụng mô hình dữ liệu nhúng cho patron và address document.

Trang 15

Ví dụ: Model One-to-Many Relationships with Embedded Documents

Hình 5: patron document có nhiều address document

Hình 6: Sử dụng mô hình dữ liệu nhúng cho patron và address document.

Tuy nhiên mô hình này làm tăng kích thước document sau khi được tạo, gâyảnh hưởng hiệu suất tác vụ ghi và làm dữ liệu phân mãnh Hơn nữa, kích thướcdocument MongoDB phải nhỏ hơn kích thước lớn nhất của BSON document (16MB) [8]

Trang 16

b Mô hình chuẩn hóa dữ liệu (Normalized Data Models)

Mô hình chuẩn hóa dữ liệu mô tả các mối quan hệ dùng tham khảo (reference)giữa các document

Tổng quát, dùng mô hình chuẩn hóa khi:

- Việc nhúng dữ liệu làm tăng dữ liệu trùng lặp nhưng không tăng hiệu suất

thao tác đọc

- Biểu diễn các mối quan hệ many-to-many phức tạp.

- Cho các tập dữ liệu theo mô hình phân cấp.

Mô hình dùng tham khảo linh động hơn nhúng dữ liệu Nhưng ứng dụng side cần nhiều truy vấn hơn cho tham khảo Nói cách khác, mô hình chuẩn hóa làm tăng

client-số kết nối với server

2.4.2 Operational Factors và mô hình dữ liệu

Mô hình hóa dữ liệu cho MongoDB phụ thuộc vào đặc tính của dữ liệu và đặctính của MongoDB Những mô hình dữ liệu khác nhau có thể cho phép ứng dụng sửdụng các lệnh truy vấn hiệu quả hơn, hoặc tăng băng thông cho thao tác insert và truyvấn, hoặc hỗ trợ tốt hơn việc phân tán đến môt sharded cluster

a Document Growth

Thao tác update có thể làm tăng kích thước document nếu thêm phần tử vàomảng hoặc thêm field mới vào document Nếu kích thước document vượt mức chophép, MongoDB phân bổ lại document trên bộ nhớ Điều này dẫn đến phân mãnh dữliệu, làm tăng thời gian tác vụ đọc, cần phải tránh Do đó, nếu ứng dụng thường xuyênyêu cầu lệnh update, nên sử dụng mô hình chuẩn hóa (dùng tham khảo) để tránh sự giatăng document hơn là dùng mô hình không chuẩn hóa (nhúng)

b Atomicity

Đã trình bày ở trên Mô hình kiểu nhúng các dữ liệu liên quan vào mộtdocument là một dạng atomic Nếu dùng mô hình chuẩn hóa để lưu trữ các referencegiữa các dữ liệu liên quan, ứng dụng phải dùng thao tác đọc và ghi riêng biệt khi thayđổi các dữ liệu liên quan

c Sharding

MongoDB dùng sharding để phát triển theo chiều ngang Những cluster hỗ trợtriển khai với những tập dữ liệu lớn và các thao tác yêu cầu băng thông cao Shardingcho phép người dùng phân tán một collection trong database trên nhiều mongod, gọi làshards MongoDB dùng shard key để phân tán dữ liệu và lưu lượng ứng dụng Lựa chọnđúng shard key có ý nghĩa quan trọng cho hiệu năng, cho phép ngăn chặn truy vấn cô

Trang 17

lập và gia tăng khả năng ghi Cần xem xét cẩn thận field hoặc những field nào để làmshard key.

d Indexes

Sử dụng index để tăng hiệu năng cho các truy vấn thông thường Xây dụngindex cho những field xuất hiện thường xuyên trong truy vấn và các thao tác trả về kếtquả đã được sắp xếp

MongoDB tự động tạo index cho field _id.

Khi tạo index, cần lưu ý:

- Mỗi index yêu cầu 8KB bộ nhớ

- Việc thêm index làm giảm hiệu năng thao tác ghi Đối với các collectionyêu cầu đọc/ghi nhiều, mỗi khi tăng thêm index yêu cầu cập nhật lại index

- Các collection có mức đọc/ghi cao có thể có lợi ích từ việc thêm index.Index không ảnh hưởng đến các thao tác up-index

- Sử dụng index tiêu tốn bộ nhớ Việc này cần được theo dõi

e Large Number of Collections

Trong một số trường hợp, lưu các dữ liệu quan hệ trên nhiều collection hợp lý

có thể tăng hiệu năng so với dùng một collection

f Data Lifecycle Management

Việc quyết định mô hình dữ liệu cần xem xét quản lý vòng đời dữ liệu

Nếu ứng dụng yêu cầu dữ liệu chỉ tồn tại trong một thời gian hạn chế, cần sửdụng thêm tính năng Time to Live (TTL)

2.4.3 GridFS

MongoDB dùng GridFS làm phương pháp để lưu trữ và truy xuất các tập tinvượt quá giới hạn 16MB của document BSON

Thay vì lưu trữ file trong một document, GridFS chia file thành nhiều phần, gọi

là chunk và lưu trữ các chunk này trong các document riêng biệt Mặc định, kích thướclớn nhất của chunk này là 255k GridFS dùng hai collection để lưu file, một để lưuchunk và một để lưu metadata của file

Khi cần truy vấn file được lưu trữ bằng GridFS thì client sẽ lắp ráp lại(reassemble) các chunk này

GridFS cho phép truy cập thông tin từ các phần tùy ý của file, cho phép bỏ qua(skip) để vào giữa một video hoặc tập tin âm thanh GridFS không chỉ hữu ích để lưu

Trang 18

trữ các file kích thước vượt quá 16MB mà còn lưu trữ bất kỳ file nào mà việc truy cậpfile không cần phải tải toàn bộ file vào bộ nhớ.

2.5 N OD

E JS

Node.js được phát triển từ năm 2009 bởi Ryan Dahl, lúc đầu chỉ chạy trênLinux Sau một thời gian phát triển, Node.js trở thành một ứng dụng mã nguồn mở, làmôi trường thực thi nền tảng để phát triển ứng dụng web server-side Node.js được viếtbằng Javascript và có thể chạy trên nhiều nền tảng như OS X, Microsoft Windows,Linux, FreeBSD, NonStop, IBM AIX, IBM System z và IBM i [10]

Node.js cung cấp kiến trúc sử dụng event-driven và API non-blocking I/O đượcthiết kế để tối ưu quá thông lượng (throughout) và khả năng mở rộng cho ứng dụng webthời gian thực (real-time web application) [10] Node.js sử dụng Google V8 JavaScriptengine để thực thi code và một phần lớn module được viết bằng JavaScript Nó chứamột built-in library cho phép ứng dụng đóng vai trò như một web server đứng một mình(stand-alone web server: không cần Apache hay IIS) Điều đó làm Node.js tương tự nhưPHP như khác biệt ở chổ PHP là ngôn ngữ blocking, khi thực thi một lệnh yêu cầu lệnhtrước đó phải hoàn thành, trong khi Node.js là ngôn ngữ non-blocking, việc xử lý lệnhđược thực hiện parallel, và dùng callbacks để trả tín hiệu hoàn thành [10]

Do vậy, Node.js có thời gian đáp ứng nhanh hơn các server truyền thống, servertiếp tục thực hiện các hành động bên dưới mà không cần phải chờ tới khi có kết quả trả

về Node.js thích hợp cho những ứng dụng xử lý lượng kết nối lớn, theo thống kê của

caustik's blog [11], Node.js có khả năng xử lý một triệu kết nối Rất phù hợp các ứngdụng thời gian thực giữa client-server, yêu cầu khả năng đáp ứng lượng kết nối lớn, và

dễ mở rộng phân tán theo chiều ngang [10]

Ngày nay, Node.js được sử dụng rộng rãi bởi những tập đoàn lớn như IBM,Microsoft, Yahoo!, Walmart, Groupon, SAP, LinkedIn, Rakuten, PayPal, Voxer vàGoDaddy [11]

Trang 19

Chương 3: CÁC MÔ HÌNH ĐIỀU KHIỂN TRUY CẬP

3.1 M

Ô HÌN

H TRU YỀN TH ỐN G

Discretionary Access Controls (DAC) – truy cập tùy quyền là cơ chế điều khiểntruy cập đươc ra đời vào những năm 1960, được nghiên cứu và ứng dụng rộng rãi Đặcđiểm chính của DAC là chủ của dữ liệu có toàn quyền trên dữ liệu đó, có quyền địnhnghĩa các loại tri cập đọc/ghi/thực thi và gán hoặc thu hồi quyền của những ngườidùng khác Khuyết điểm của DAC là cho phép thông tin từ đối tượng này được truyềnsang đối tượng khác bằng cách đọc thông tin lên từ một đối tượng rồi ghi thông tinxuống đối tượng khác Đây là điểm yếu bị khai thác bằng Trojan Horse

Mandatory Access Controls (MAC) ra đời vào những năm 1970 nhằm khắcphục điểm yếu của DAC bằng cách phân lớp dữ liệu và người dùng theo các lớp bảomật MAC phân loại người dùng theo mức độ tin cậy và lĩnh vực hoạt động người dùng,phân loại dữ liệu dựa vào mức độ nhạy cảm và lĩnh vực của dữ liệu, do người quản trịtrung tâm quyết định Người dùng ở cấp càng cao thì mức độ tin cậy càng lớn, dữ liệu ởcấp càng cao thì càng nhạy cảm MAC hoạt động với tính chất không đọc lên – khôngghi xuống (No read-up, No write-down) để đảm bảo không có dòng thông tin nào có thể

đi từ lớp cao xuống lớp thấp

Ưu điểm của MAC là có tính bảo mật ngăn chặn dòng thông tin bất hợp pháp

và thích hợp cho môi trường quân đội Khuyết điểm của MAC là không dễ áp dụng, đòihỏi người dùng và dữ liệu phải được phân loại rõ ràng, người quản trị trung tâm kiểmsoát hệ thống trao quyền và MAC chỉ được ứng dụng trong một số ít môi trường, khôngphù hợp với các ứng dụng ngày nay đòi hỏi cơ chế phân quyền linh hoạt hơn

Trang 20

3.2 M

Ô HÌN

H ĐIỀ

U KHI

ỂN TRU

Y CẬP DỰ

A TRÊ

N VAI TR

Ò (RO LE- BAS

ED AC CES

S CO NTR

OL MO DEL – RBA C)

Trang 21

Mô hình điều khiển truy cập dựa trên vai trò (Role-Based Access Control

Model – RBAC) ra đời vào những năm 1990 nhằm thay thế cho các phương pháp

truyền thống DAC và MAC [12]

Ý tưởng trọng tâm của RBAC là quyền (permission) được kết hợp với vai trò(role), và người dùng (user) được phân chia theo các role thích hợp Role là tập baogồm các permission và các role khác Session là một phần quan trọng của RBAC, phânbiệt nó với các group truyền thống Session cho phép kích hoạt một tập con của roleđược gán cho user Nếu không có session thì role của user luôn được kích hoạt có thểdẫn đến vị phạm đặc quyền tối thiểu

RBAC làm đơn giản việc quản lý các permission RBAC tạo các role cho cácchức năng công việc khác nhau trong một tổ chức và các user được phân role dựa theovai trò và quyền hạn của họ Những role này được cấp thêm hoặc hủy bỏ permission khicần thiết Người dùng không được cấp quyền trực tiếp mà thông qua các vai trò Việcquản lý vai trò trở nên đơn giản hơn

Tuy nhiên, việc phát triển RBAC không có chuẩn thống nhất làm RBAC đượcthực hiện bằng nhiều cách Mô hình NIST giải quyết vấn đề này [12] Mô hình NISTđược tổ chức thành bốn cấp theo thứ tự tăng dần khả năng hoạt động:

1 RBAC phẳng (Flat RBAC)

2 RBAC phân cấp (Hierarchical RBAC)

3 RBAC ràng buộc (Constrained RBAC)

4 RBAC đối xứng (Symmetric RBAC)

Hình 3: Bảng các loại RBAC [18]

Trang 22

3.2.1 RBAC phẳng (Flat RBAC) [12]

Hình 7 : Flat RBACKhái niệm cơ bản của RBAC : người dùng được gán role, permission được gánrole User sử dụng permission bằng cách trở thành thành viên của role được gánpermission

User có thể thực hiện nhiều quyền hoặc nhiều vai trò

3.2.2 RBAC phân cấp (Hierarchical RBAC) [12]

Trang 23

 Limited Hierarchical RBAC (RBAC phân cấp hạn chế) : có thêm các hạnchế hệ thống phân cấp role như giới hạn cấu trúc đơn giản như cây hoặc cây đảo ngược.

3.2.3 RBAC ràng buộc (Constrained RBAC) [12]

Hình 9 : RBAC ràng buộc tĩnhRBAC ràng buộc tĩnh: có thêm điều kiện ở giai đoạn gán user-role, nhằm tránhhiện tượng chồng chéo, mâu thuẫn hoặc xung đột giữa các role được cấp cho cùng mộtngười dùng Các ràng buộc được kế thừa trong phân cấp role nên cần tránh hiện tượngrole cha và con có mâu thuẫn

Hình 10 : RBAC ràng buộc độngRBAC ràng buộc động dựa trong quá trình gán role-session, nhằm hạn chếpermission được gán cho user trong ngữ cảnh nhất định, hỗ trợ nguyên tắc đặc quyềntối thiểu trong đó user có mức độ cho phép khác nhau vào những ngữ cảnh khác nhau,tùy thuộc vào role

Ngày đăng: 27/06/2016, 17:00

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Big data trong công nghệ đám mâyhttp://www.ibm.com/developerworks/vn/library/data/2013Q3/bd-bigdatacloud/#resources Link
[2] So sánh các phương pháp tiếp cận cơ sở dữ liệu XMLhttps://www.ibm.com/developerworks/vn/library/x-comparexmldb/ Link
[4] Bernard MarrBernard Marr : Big Data: The 5 Vs Everyone Must Know https://www.linkedin.com/pulse/20140306073407-64875646-big-data-the-5-vs-everyone-must-know Link
[6] NoSQL Databases Explainedhttps://www.mongodb.com/nosql-explained Link
[9] Capped Collections https://docs.mongodb.org/manual/core/capped-collections/[10] Node.jshttps://en.wikipedia.org/wiki/Node.js[11] Node.js w/1M concurrent connections!http://blog.caustik.com/2012/08/19/node-js-w1m-concurrent-connections/ Link
[3] Pietro Colombo, Elena Ferrari: Privacy Aware Access Control for Big Data: A Research Roadmap Khác
[5] Motahera Shermin: An Access Control Model for NoSQL Databases Khác
[12] Proposed NIST Standard for Role-Based Access Control, DAVID F. FERRAIOLO, RAVI SANDHU, SERBAN GAVRILA, D. RICHARD KUHN and RAMASWAMY CHANDRAMOULI Khác
[13] The NIST Model Role-Based Access Control Towards A Unified Standard, Ravi Sandhu, David Ferraiolo and Richard Kuhn Khác
[14] Purpose based access control for privacy protection in relational database systems,Ji-Won Byun, Ninghui Li.[15] A Unified Attribute-Based Access Control Model Covering DAC, MACand RBAC, Xin Jin, Ram Krishnan, and Ravi Sandhu Khác
[16] The UCON ABC Usage Control Model, Jeahong Park, Ravi Sandhu Khác
[17] Enhancing MongoDB with Purpose-based Access Control, Pietro Colombo Elena Ferrari Khác
[18] The NIST Model for Role-Based Access Control: Towards A Unified Standard, Ravi Sandhu, David Ferraiolot, Richard Kuhn[19] Guide to Attribute Based Access Control (ABAC) Definition and Khác

HÌNH ẢNH LIÊN QUAN

Bảng 1: Các loại NoSQL và Database tương ứng  [5] - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Bảng 1 Các loại NoSQL và Database tương ứng [5] (Trang 7)
Bảng 2: Bảng so sánh các loại database NoSQL  [5] - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Bảng 2 Bảng so sánh các loại database NoSQL [5] (Trang 8)
Hình :Mô hình dữ liệu sử dụng tham khảo để liên kết các document. - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
nh Mô hình dữ liệu sử dụng tham khảo để liên kết các document (Trang 10)
Hình : Ví dụ nhúng document này trong document khác - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
nh Ví dụ nhúng document này trong document khác (Trang 11)
Hình 3: Ví dụ address document chứa một reference đến patron document. - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 3 Ví dụ address document chứa một reference đến patron document (Trang 13)
Hình 4: Sử dụng mô hình dữ liệu nhúng cho patron và address document. - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 4 Sử dụng mô hình dữ liệu nhúng cho patron và address document (Trang 13)
Hình 5: patron document có nhiều address document - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 5 patron document có nhiều address document (Trang 14)
Hình 6: Sử dụng mô hình dữ liệu nhúng cho patron và address document. - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 6 Sử dụng mô hình dữ liệu nhúng cho patron và address document (Trang 14)
Hình 3: Bảng các loại RBAC  [18] . - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 3 Bảng các loại RBAC [18] (Trang 20)
Hình 8 : RBAC phân cấp - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 8 RBAC phân cấp (Trang 21)
Hình 10 : RBAC ràng buộc động - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 10 RBAC ràng buộc động (Trang 22)
Hình 9 : RBAC ràng buộc tĩnh - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 9 RBAC ràng buộc tĩnh (Trang 22)
Hình 12 : RBAC đối xứng - ràng buộc động - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 12 RBAC đối xứng - ràng buộc động (Trang 23)
Hình 13: Mô hình ABAC  [15] . - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 13 Mô hình ABAC [15] (Trang 25)
Hình 14: Mô hình UCON. - Nghiên cứu và phát triển hệ thống điều khiển truy xuất bảo vệ tính riêng tư cho cơ sở dữ liệu nosql mongodb
Hình 14 Mô hình UCON (Trang 26)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w