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

Tích hợp dịch vụ chia sẻ dữ liệu phân tán vào hệ thống quản lý dữ liệu mở

82 17 0

Đ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 82
Dung lượng 3,42 MB

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

Nội dung

NHIỆM VỤ VÀ NỘI DUNG:  Nghiên cứu nắm được các khái niệm, kiến trúc của hệ thống quản lý dữ liệu mở  Nghiên cứu nắm được các khái niệm, mô hình, kiến trúc và cách thức hoạt động của

Trang 1

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

NGUYỄN THÀNH CÔNG

TÍCH HỢP DỊCH VỤ CHIA SẺ DỮ LIỆU PHÂN TÁN

VÀO HỆ THỐNG QUẢN LÝ DỮ LIỆU MỞ

Chuyên ngành: KHOA HỌC MÁY TÍNH

Mã số: 8.48.01.01

LUẬN VĂN THẠC SĨ

TP HỒ CHÍ MINH, tháng 01 năm 2021

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠITRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG –HCM

Cán bộ hướng dẫn khoa học: PGS.TS Đặng Trần Khánh

Cán bộ chấm nhận xét 1: PGS.TS Huỳnh Trung Hiếu

Cán bộ chấm nhận xét 2: PGC.TS Nguyễn Tuấn Đăng

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM

ngày 22 tháng 01 năm 2021

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1 PGS.TS Trần Minh Quang

2 TS Phan Trọng Nhân

3 PGS.TS Huỳnh Trung Hiếu

4 PGS.TS Nguyễn Tuấn Đăng

5 PGS.TS Đặng Trần Khánh

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên

ngành sau khi luận văn đã được sửa chữa (nếu có)

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Nguyễn Thành Công MSHV: 1870010

Ngày, tháng, năm sinh: 23/08/1992 Nơi sinh: Nam Định

Chuyên ngành: Khoa học máy tính Mã số : 8480101

I TÊN ĐỀ TÀI: TÍCH HỢP DỊCH VỤ CHIA SẺ DỮ LIỆU PHÂN TÁN VÀO HỆ

THỐNG QUẢN LÝ DỮ LIỆU MỞ

II NHIỆM VỤ VÀ NỘI DUNG:

 Nghiên cứu nắm được các khái niệm, kiến trúc của hệ thống quản lý dữ liệu mở

 Nghiên cứu nắm được các khái niệm, mô hình, kiến trúc và cách thức hoạt động của Data Distributed Service

 Đề xuất ra được giải pháp để tích hợp Data Distributed Service vào hệ thống quản lý dữ liệu mở

 Đề xuất được giải pháp để chuyển đổi dữ liệu theo chuẩn của Data Distributed Service (Interface Definition Language) sang chuẩn của hệ thống quản lý dữ liệu mở hiện tại (JSON)

 Đánh giá được các phương pháp để tổ chức dữ liệu streaming theo dạng JSON hiện tại và tìm ra được phương pháp phù hợp với hệ thống hiện tại

 Đánh giá được tính khả thi của mô hình, và hoàn cảnh áp dụng cụ thể, cách thức hoạt động của giải pháp

III NGÀY GIAO NHIỆM VỤ : 21/09/2020

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/01/2021

Trang 4

Lời cảm ơn

Lời đầu tiên, tôi muốn gửi lời cảm ơn chân thành đến thầy PGS.TS Đặng Trần Khành, trongthời gian qua, đã hướng dẫn và giúp đỡ tôi trong quá trình thực hiện luận văn tốt nghiệp.Những lời nhận xét, góp ý và hướng dẫn của Thầy đã giúp tôi có một định hướng đúng trongquá trình thực hiện đề tài, giúp tôi thấy được những ưu khuyết điểm của từng phươngpháp tiếp cận và từng bước khắc phục để ngày một tốt hơn

Đồng thời tôi cũng muốn gửi lời cảm ơn sâu sắc đến gia đình và bạn bè đã động viên, cổ

vũ tinh thần và góp ý trong suốt quá trình học tập và thực hiện đề tài

Sau cùng, tôi xin cảm ơn thầy cô trong tổ bộ môn Khoa Học Máy Tính, các thầy cô tại trường đạihọc Bách Khoa đã giảng dạy, giúp đỡ trong suốt quá trình học tập và nghiên cứu

Trân trọng cảm ơn!

Trang 5

Tóm tắt luận văn

Dữ liệu ngày càng thể hiện vai trò cực kỳ quan trọng cho sự phát triển của rất nhiều lĩnh vực như: giáo dục, y tế, khoa học và kỹ thuật Góp phần thúc đẩy sự phát triển của kinh

tế, nâng cao chất lượng cuộc sống và tạo ra những tri thức hoàn toàn mới cho nhân loại

Sự ảnh hướng này kéo theo sự phát triển của lĩnh vực phân tích dữ liệu nhằm tận dụng tối

đa giá trị mà dữ liệu mang lại Hạt nhân của các hệ thống phân tích dữ liệu chính là dữ liệu Dữ liệu càng nhiều thì độ chính xác của các hệ thống phân tích càng cao Do đó chia

sẻ dữ liệu là môt xu hướng hiện nay Một mô hình được tạo ra từ xu hướng này đó chính

là dữ liệu mở Ngoài ra, trong bối cảnh phát triển của mạng xã hội, các hạ tầng xây dựng thành phố thông minh, IoT, … Dẫn đến dữ liệu được sinh ra liên tục và đa dạng trong đó

dữ liệu dạng liên tục (stream data) đóng vai trò hết sức quan trọng Điều này dẫn đến một nhu cầu tích hợp các giải pháp cho phép chia sẻ các dữ liệu dạng liên tục vào các hệ thống quản lý dữ liệu mở Luận văn trình bày mô hình giải pháp tích hợp dịch vụ chia sẻ

dữ liệu phân tán để cho phép chia sẻ các dữ liệu dạng liên tục vào các hệ thống quản lý

dữ liệu mở CKAN Kết quả được trình bày chi tiết trong nội dung luận văn cho thấy đây

là sự kết hợp hợp lý và là một hướng đi khả thi mang tính ứng dụng cao Giải pháp đề xuất mang tính tổng quát và có khả năng mở rộng trong tương lai

Trang 6

Data increasingly plays an extremely important role in the development of many fields such as education, health, science, and technology Contributing to promoting economic development, improving the quality of life, and creating completely new knowledge for mankind This influence leads to the development of the field of data analysis to take full advantage of the value that data brings The core of data analysis systems is data The more data, the higher the accuracy of the analytical systems Hence data sharing is a trend nowadays One pattern created by this trend is open data Besides, the development of social networks, smart city infrastructure, IoT, leads to continuous and diverse data generation in which stream data is closed very important role This leads to a need to integrate solutions that enable continuous sharing of data into open data management systems The thesis presents a solution model to integrate distributed data sharing service

to enable continuous sharing of data into CKAN open data management systems The results are detailed in the content of the thesis shows that this is a reasonable combination and a feasible direction with high applicability The proposed solution is general and likely to be expanded in the future

Trang 7

Lời cam đoan

Tôi là Nguyễn Thành Công học viên cao học khoa Khoa Học và Kỹ Thuật Máy Tính, Đại Học Bách Khoa TP.HCM, MSHV 1870010 Tôi xin cam đoan luân văn được trình bày là kết quả nghiên cứu của cá nhân tôi, không sao chép từ bất kỳ ai Nôi dung nghiên cứu là do tôi tự tìm hiểu, phân tích mộtcách trung thực, khách quan dưới sự hướng dẫn khoa học của PGS.TS Đặng TrầnKhánh Tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan này

TP Hồ Chí Minh, 01/2021

Nguyễn Thành Công

Trang 8

MỤC LỤC

Mục Lục Hình Ảnh 11

I GIỚI THIỆU 1

1 Giới thiệu bài toán 1

2 Phạm vi và kết quả cần đạt được 1

2.1 Tích hợp Data Distributed vào hệ thống quản lý dữ liệu mở 2

2.2 Chuyển đổi dữ liệu từ Interface Definition Language sang chuẩn JSON 4

2.3 JSON tối ưu cho dữ liệu streaming 4

3 Các bài toán khác có liên quan trong bối cảnh hiện nay 5

3.1 Tính riêng tư của dữ liệu 5

3.2 Quyền sở hữu dữ liệu 5

3.3 Kiểm tra và đánh giá chất lượng của dữ liệu 6

II CƠ SỞ TRI THỨC VÀ CÔNG NGHỆ LIÊN QUAN 7

1 Dữ liệu mở - Open Data 7

1.1 Giới thiệu 7

2 Hệ thống quản lý dữ liệu mở CKAN 8

3 Dữ liệu Streaming 10

3.1 Giới thiệu 10

3.2 Lợi ích của dữ liệu Streaming 11

3.3 So sánh xử lý bó và xử lý luồng 12

4 Dịch vụ chia sẻ dữ liệu phân tán - Data Distributed Service 12

4.1 Giới thiệu 12

4.2 Các thành phần cơ bản 16

4.3 Luồng dữ liệu trong Data Distributed Service 17

4.4 Các tính năng quan trọng của DDS 18

4.5 Quality of Service – QoS 19

5 Kiểu dữ liệu trong Distributed Data Service 24

5.1 Type System 25

5.2 Type Representation 26

5.3 Data Representation 28

5.4 Language Binding 29

6 JSON 30

6.1 Lịch sử - Tiêu chuẩn 30

Trang 9

6.2 Cấu trúc - cú pháp 31

6.3 Ứng dụng - Cộng đồng 31

6.4 Binary JSON (BSON) 31

6.5 Cách lưu trữ dữ liệu streaming bằng JSON 32

7 MongoDB 32

7.1 Giới Thiệu 32

7.2 Các thành phần chính của kiến trúc MongoDB 33

7.3 Ưu điểm của MongaDB 34

7.4 Nhược điểm của MongoDB 35

8 Docker 35

8.1 Giới thiệu 35

8.2 Kiến trúc Docker Engine 36

8.3 Ưu đểm của Docker Container 37

9 Redis 37

9.1 Giới thiệu – Lịch sử phát triển 37

9.2 Tính năng 38

9.3 Ứng dụng 40

9.4 Ưu điểm 42

9.5 Nhược điểm 42

III NỘI DUNG GIẢI PHÁP ĐỀ XUẤT 44

1 Bài toán tích hợp 44

1.1 Cơ chế nhập dữ liệu trong hệ thống dữ liệu mở CKAN 44

1.2 Chức năng mở rộng - Plugin 45

1.3 Công việc chạy nền - Background jobs 45

2 Bài toán chuyển đổi 46

2.1 Chuyển đổi từ Plain Language Object thông qua IDL file 49

3 Bài toán lưu trữ và chia sẻ 50

4 Cơ chế tự động sinh mã và biên dịch tập tin thực thi 51

5 Cơ chế cập nhật dữ liệu nhận được vào datastore của CKAN và MongoDB 51

6 Tích hợp các thành phần tạo thành giải pháp hoàn chỉnh 52

7 Đánh giá khả năng của giải pháp 52

IV HIỆN THỰC GIẢI PHÁP 53

1 Môi trường hiện thực và công cụ sử dụng 53

Trang 10

2 Thiết lập vận hành nền tảng CKAN 53

3 Xây dựng plugin trong CKAN 55

4 API để cập nhật dữ liệu vào DataStore của MongoDB và CKAN 56

5 API để lưu các tập tin cấu hình mạng và mô tả kiểu dữ liệu 57

6 Thiết lập môi trường cho OpenDDS 58

7 Xây dựng bộ sinh mã để chuyển đổi 60

8 Xây dựng hệ thống hoàn chỉnh 62

9 Kiểm tra và đánh giá 62

9.1 Phương pháp và tiêu chí 62

9.2 Tiến hành cài đặt và kiểm tra 63

10 Kết luận 64

V TỔNG KẾT 65

1 Tổng kết nội dung 65

2 Hướng phát triển 65

DANH MỤC CÁC TÀI LIỆU THAM KHẢO 66

PHỤ LỤC 67

Trang 11

Mục Lục Hình Ảnh

Hình 1: Mô hình hệ thống chuyển đổi dữ liệu mở (1) 2

Hình 2: Mô hình hệ thống chuyển đổi dữ liệu mở (2) 3

Hình 3: Mô hình hệ thống dữ liệu mở kết hợp với DDS 4

Hình 4: kiến trúc code của ckan 10

Hình 5: Kiểu máy khách - máy chủ 13

Hình 6: Mạng ngang hàng 13

Hình 7: Mô hình đăng ký- xuất bản 14

Hình 8: Cấu trúc OMG DDS 16

Hình 9: Không gian dữ liệu toàn cầu (GDS) 16

Hình 10: Global Data Space trong DDS 17

Hình 11: Các loại QoS hiện tại trong DDS 20

Hình 12: Quá trình so sánh QoS 20

Hình 13: QoS trong Data Distributed Service 21

Hình 14: Mối quan hệ giữa Type System, Type Representation, Language Binding, và Data Representation 25

Hình 15: Một ví dụ thể hiện mối quan hệ giữa Type System, Type Representation, Language Binding, và Data Representation 25

Hình 16: Lịch sử phát triển của JSON 30

Hình 17: Mối quan hệ giữa Cơ sở dữ liệu quan hệ (RDBMS) và MongoDB 33

Hình 18: Các công ty sử dụng sản phẩm MongoDB 33

Hình 19: Một ví dụ thể hiện quan hệ giữa RDBMS và MongoDB 34

Hình 20: Ứng dụng Docker 36

Hình 21: Kiến trúc Docker Engine 36

Hình 22: Sản phẩm Redis- Một trong những sản phẩm NoSQL phổ biến, nổi tiếng nhất hiện nay (tháng 8/2020) 37

Hình 23: redislabs nơi sản sinh ra Redis 38

Hình 24: Mối quan hệ Dataset và Resources trong CKAN 44

Hình 25: Plugin trong CKAN cho phép theo dõi lifecycle của các đối tượng 45

Hình 26: Cơ chế đồng bộ hoá trong CKAN kết hợp plugin và background jobs 46

Hình 27: Cơ chế hoạt động hiên tại của DDS 49

Hình 28: Thêm tính năng cho bộ sinh mã opendds_idl 50

Hình 29: Cơ chế tự động sinh mã và biên dịch 51

Hình 30: Hệ thống tổng quát 52

Hình 31: Cấu trúc vận hành thực nghiệm CKAN 55

Hình 32: Các thông số đầu vào và kết quả trả về của datastore_upsert 57

Hình 33: API cho phép cập nhật dữ liệu vào collection trong MongoDB 57

Hình 34: API cho phép lưu các tập tin vào filestore trong CKAN 58

Hình 35: API cho phép lưu các tập tin vào GridFS 58

Hình 36: Class diagram của rapidjson_generator 60

Hình 37: Thêm bộ sinh mã cho JSON vào dds_visiter 61

Hình 38: Hệ thống hoàn chỉnh 62

Trang 12

Hình 39: Màn hình khi người dùng bắt đầu nhập thông tin để kết nối đến DDS 67 Hình 40: Màn hình sau khi người dùng đã nhập thông tin 68 Hình 41: Dữ liệu sau khi đã nhận được và chuyển đổi từ DDS 68

Trang 13

I GIỚI THIỆU

1 Giới thiệu bài toán

Dữ liệu ngày càng thể hiện vai trò cực kỳ quan trọng cho sự phát triển của rất nhiều lĩnh vực như: giáo dục, y tế, khoa học và kỹ thuật Góp phần thúc đẩy sự phát triển của kinh tế, nâng cao chất lượng cuộc sống và tạo ra những tri thức hoàn toàn mới cho nhân loại Sự ảnh hướng này kéo theo sự phát triển của lĩnh vực phân tích dữ liệu nhằm tận dụng tối đa giá trị mà dữ liệu mang lại Hạt nhân của các hệ thống phân tích dữ liệu chính là dữ liệu Dữ liệu càng nhiều thì độ chính xác của các hệ thống phân tích càng cao Do đó chia sẻ dữ liệu là môt xu hướng hiện nay Một mô hình được tạo ra từ xu hướng này đó chính là dữ liệu mở Hệ thống dữ liệu mở là một hệ thống cho phép xuất bản, phân loại, tìm kiếm và trực quan dữ liệu Người dùng có thể thao tác với hệ thống thông qua cổng dữ liệu mở

Thông thường, một hệ thống dữ liệu mở sẽ có rất nhiều bên tham gia đóng góp

dữ liệu Các tổ chức xây dựng các hệ thống dữ liệu mở cũng mong muốn có càng nhiều bên tham gia càng tốt vì càng có nhiều bên tham gia đóng góp dữ liệu thì dữ liệu càng phong phú, đa dạng góp phần làm tăng độ chính xác cho các hệ thống phân tích Ngày nay, dữ liệu tồn tại ở rất nhiều dịnh dạng và từ nhiều nguồn khác nhau trong đó bao gồm: dữ liệu điện toán đám mây, mạng xã hội, Database, NoSQL data,

dữ liệu từ điện thoại di động, các thiết bị cá nhân, và dữ liệu streaming, … Trong đó

dữ liệu Streaming đóng vai trò quan trọng và hết sức phổ biến trong rất nhiều lĩnh vực như: ứng dụng di động hoặc web, giao dịch mua bán trên các sàn thương mại điện tử, hoạt động của người chơi trong trò chơi, thông tin từ các mạng xã hội, sàn giao dịch tài chính hoặc dịch vụ không gian địa lý và đo từ xa từ các thiết bị được kết nối hoặc thiết

bị đo trong trung tâm dữ liệu,… các dữ liệu này có thể được chia sẻ vào các hệ thống quản lý dữ liệu mở và tạo rất nhiều lợi ích cũng như góp phần xây dựng, phát triển tập

dữ liệu của hệ thống dữ liệu mở Do đó cần phát triển một phương pháp để có thể trao đổi dữ liệu dạng này ở các hệ thống quản lý dữ liệu mở

Quá trình xử lý dữ liệu streaming thường yêu cầu hai lớp: lớp lưu trữ và lớp xử

lý Lớp lưu trữ cần hỗ trợ thứ tự bản ghi và tính nhất quán mạnh mẽ để cho phép đọc

và ghi các luồng dữ liệu lớn, nhanh chóng, ít tốn kém và có thể đọc lại Lớp xử lý có nhiệm vụ tiêu thụ dữ liệu từ lớp lưu trữ, chạy các tính toán trên dữ liệu đó, sau đó thông báo cho lớp lưu trữ xóa dữ liệu không còn cần thiết Ngoài ra cần có khả năng

mở rộng, độ bền của dữ liệu và khả năng chịu lỗi trong cả lớp lưu trữ và lớp xử lý Do

đó ta cần một dịch vụ cho phép chia sẻ dữ liệu đảm bảo được các yêu cầu bên trên

2 Phạm vi và kết quả cần đạt được

Để chia sẻ dữ liệu streaming thì có thể kể đến một số dịch vụ như sau: Amazone Kinesis, Apache Kafka, ActiveMQ, RabbitMQ, ZeroMQ, DDS, … Trong đó Trong đó Data Distributed Service – DDS có thể giải quyết vần đề về lưu trữ, xử lý, khả năng

mở rộng cũng như khả năng xử lý lỗi Data Distributed Service – DDS được sử dụng

Trang 14

rộng rãi, phổ biến tại rất nhiều cơ quan tổ chức như: ADLINK Technology, eProsima, Hamersham, Kongsberg Gallium, MilSOFT, OCI, Remedi, RTI, Twin Oaks Computing, … [1]

Sản phẩm của những công ty này nằm trong rất nhiều lĩnh vực như: Thành phố thông minh, Năng lượng thông minh, Chăm sóc sức khỏe, y tế, Giao thông vận tải, Tự động hóa công nghiệp, Khai thác, … Do đó khi tích hợp DDS và hệ thống dữ liệu mở

sẽ mở ra cơ hội nhận được dữ liệu từ nhiều bên khác nhau trong nhiều lĩnh vực khác nhau Do đó thúc đẩy sự phát triển của hệ thống dữ liệu mở

Ngoài ra, để thuận tiện cho việc xử lý cũng như lưu trữ thì dữ liệu trên các hệ thống quản lý dữ liệu mở thường được đưa về một hoặc một vài định dạng chung như: XML, JSON, YAML, CSV, … Do đó khi tích hợp các dịch vụ chia sẻ dữ liệu streaming thì cũng cần một bộ chuyển đổi để đưa dữ liệu về một trong những định dạng mà hệ thống quản lý dữ liệu hiện tại hỗ trợ

Vì vậy trong phạm nghiên cứu của đề tài này sẽ giải quyết cách vấn đề dưới đây

2.1 Tích hợp Data Distributed vào hệ thống quản lý dữ liệu mở

Thông thường, một hệ thống dữ liệu mở thường có rất nhiều bên tham gia đóng góp dữ liệu Các tổ chức xây dựng các hệ thống dữ liệu mở cũng mong muốn có càng nhiều bên tham gia càng tốt vì càng có nhiều bên tham gia đóng góp dữ liệu thì dữ liệu càng phong phú, đa dạng góp phần làm tăng độ chính xác cho các hệ thống phân tích Khi đó sẽ có một vấn đề xảy ra đó là dữ liệu sẽ có nhiều định dạng, nhiều kiểu khác nhau Do đó thông thường người ta sẽ dựng một hệ thống chuyển đổi để có thể lấy được những dữ liệu đa dạng này

Hình 1: Mô hình hệ thống chuyển đổi dữ liệu mở (1)

Đây là một mô hình rất cơ bản, trong đó mỗi nguồn dữ liệu khác nhau sẽ có một

bộ chuyển đổi để đưa về cùng một kiểu dữ liệu và cho vào hệ thống để lưu trữ Mô hình này đơn giản, dễ thực hiện, tuy nhiên khả năng mở rộng không cao Mỗi khi có thêm một kiểu dữ liệu mới thì lại cần phải có thêm một bộ chuyển đổi tương ứng cho kiểu dữ liệu mới đó Điều này làm mất đi tính linh động của hệ thống Giới hạn số lượng các tổ chức tham gia đóng góp dữ liệu vào hệ thống dữ liệu mở khi chưa có bộ

Trang 15

chuyển đổi tương ứng với dữ liệu hiện tại của tổ chức đó Điều này đi ngược lại mục tiêu ban đầu của hệ thống dữ liệu mở

Dưới đây là một mô hình khác cũng có thể giải quyết bài toán này

Hình 2: Mô hình hệ thống chuyển đổi dữ liệu mở (2)

Mô hình này khác với mô hình trước đó Các bộ chuyển đổi thay vì được hiện thực cố định trong hệ thống quản lý dữ liệu mở thì nó được hiện thực bằng một trong hai cách sau:

o Hiện thực và chuyển đổi từ dữ liệu nguồn Việc chuyển đổi sẽ được thực hiện từ phía tổ chức cho dữ liệu Hệ thống quản lý dữ liệu mở sẽ nhận dữ liệu ở đúng kiểu mà nó cần

o Hệ thống quản lý dữ liệu cung cấp một cơ chế cho phép các bên tham gia đóng góp dữ liệu có thể gắn các bộ chuyển đổi tương ứng đối với dữ liệu mà bên

đó sẽ cho Hệ thống quản lý dữ liệu mở sẽ nhận dữ liệu từ bên và thực hiện chuyển đổi bằng các bộ chuyển đổi đã được gắn vào tương ứng

Hai cách trên đều có một điểm yếu chung đó là nó yêu cầu các bên tham gia phải hiểu được dữ liệu mà hệ thống dữ liệu mong muốn và có khả năng hiện thực các bộ chuyển đổi này Trong thực tế thì không nhiều bên tham gia có thể làm được và sẵn sàng làm hai việc trên Điều này cũng làm giảm số lượng các bên tham gia vào quá trình chia sẻ dữ liệu Do đó đề tài sẽ đề xuất một mô hình giúp khắc phục điểm yếu của những mô hình trên Mô hình này được mô tả trong hình dưới đây:

Trang 16

Hình 3: Mô hình hệ thống dữ liệu mở kết hợp với DDS

Mô hình này bản chất là Data Distribted Servive đóng vai trò như bộ chuyển đổi

Dữ liệu sẽ được đưa về cùng một kiểu mà chuẩn DDS quy định Mô hình này phần nào khắc phục được những yếu của các mô hình phía trên do DDS là một chuẩn mở và phổ biến nên nó làm cho các bên tham gia dễ dàng hơn trong việc tích hợp Ngoài ra DDS còn hỗ trợ một số tính năng khác như dữ liệu streaming, hiệu năng cao Điều này

sẽ góp phần làm cho hệ thống dữ liệu mở tiếp cận được nhiều bên tham gia hơn

2.2 Chuyển đổi dữ liệu từ Interface Definition Language sang chuẩn JSON

Do hệ thống dữ liệu mở hiện tại quy ước JSON làm dữ liệu chuẩn Do đó tất cả

dữ liệu phải được chuyển đổi về JSON trước khi lưu vào hệ thống Vì vậy khi tích hợp DDS vào hệ thống quản lý dữ liệu mở, ta cần phải chuyển đổi dữ liệu của chuẩn DDS

là Interface Definition Language sang chuẩn JSON Trong đó ta cần chuyển đổi một số dạng dữ liệu được mô tả bởi IDL như sau [2]:

2.3 JSON tối ưu cho dữ liệu streaming

Khi tích hợp Data Distributed Service vào hệ thống quản lý dữ liệu mở giúp cung cấp một cơ chế cho phép hệ thống quản lý dữ liệu mở nhận dữ liệu dạng streaming Như vậy ta đã giải quyết được đầu vào của dữ liệu streaming Tuy nhiên do hệ thống quản lý dữ liệu mở hiện tại đang lưu trữ dữ liệu dạng JSON và cung cấp cho người dùng dạng dữ liệu JSON Do đó để tương thích với hệ thống hiện tại ta cần nghiên cứu

Trang 17

một phương pháp để chuyển đổi dữ liệu từ Interface Definition Language (kiểu dữ liệu của DDS) qua JSON sao cho hiệu quả Như đã nói trước đó thì JSON được sử dụng trong dữ liệu streaming bằng cách truyền đi các JSON object Các JSON object được ngăn cách và định dạng bằng một trong những cách sau:

o Không chứa ký tự xuống dòng trong JSON object và sử dụng ký tự này làm dấu phân cách [3]

o Một ký tự điều khiển phân tách được gửi kèm với JSON object và được dùng làm dấu phân cách [4]

o Các JSON object không có dấu phân cách và dựa vào các parser để trích xuất chúng

o Các JSON object không có dấu phân cách nhưng có tiền tố chứa thông tin

về độ dài của chúng và dựa vào các parser để trích xuất chúng

Mỗi cách trên đều có ưu nhược điểm riêng Bài toán đặt ra đó là tìm ra cách phù hợp nhất cho dữ liệu streaming của hệ thống dữ liệu hiện tại

3 Các bài toán khác có liên quan trong bối cảnh hiện nay

Ngoài các vấn đề được trình bày trong luận văn, vẫn còn rất nhiều khía cạnh cần phải giải quyết khi tích hợp dữ liệu streaming trong bối cảnh cảnh dữ liệu mở hiện nay như

o Tính riêng tư của dữ liệu (Data Privacy)

o Quyền sở hữu dữ liệu (Data ownership)

o Kiểm tra và đánh giá chất lượng của dữ liệu

3.1 Tính riêng tư của dữ liệu

Một số dữ liệu được chia sẻ mang tính định danh cá nhân, có thể bị lợi dụng vào các mục đíchkhông rõ ràng Trách nhiệm đảm bảo an toàn dữ liệu thuộc về cả 2 bên: chủ sở hữu

dữ liệucũng như phía khai thác dữ liệu Vì vậy, về phía nhà khai thác dữ liệu, trước khi được đưa dữliệu vào sử dụng cho các mục đích công cộng, các dữ liệu cần phải được xử lý và làm

mờ, loại bỏ các yếu tố có thể xác định được cá nhân và đảm bảo không tái định danh được thông tin cánhân Ngoài ra, không lưu trữ và truyền tải các dữ liệu khác với các mục đích đã thoả thuận.Để giải quyết bài toán này, hiện nay các hệ thống đang sử dụng các kỹ thuật nặc danh hoá(anonymize) và mã hoá dữ liệu

3.2 Quyền sở hữu dữ liệu

Trong thời đại số ngày nay, dữ liệu là tài sản, và tài sản thì phải có chủ sở hữu, từ đó hìnhthành vấn đề quan trọng là việc trao quyền sử dụng từ người sở hữu cho người sử dụng Đâylà một vấn đề phức tạo và mang tính nhiều chiều.Ví dụ, xem xét sự tồn tại của hai dạng

cơ sở dữ liệu khác nhau về tính nguyên gốc của dữ liệu hay tư liệu thành phần của chúng Loại thứ nhất là các cơ sở dữ liệu gồm tập hợp các thôngtin do chính tác giả tổng hợp nên mà

có, ví dụ như cơ sở dữ liệu về báo cáo kiểm toán củamột doanh nghiệp được gọi là sưu tập dữ liệu có tính nguyên gốc (original database) Loạithứ hai là cơ sở dữ liệu gồm tập hợp của các

Trang 18

thông tin/ dữ liệu công khai, thuộc về công chúng, được gọi là sưu tập dữ liệu không có tính nguyên gốc (non-original database) Tuỳtheo từng loại khác nhau mà quyền sở hữu dữ liệu sẽ mang tính bao hàm cho các thành phầnbên trong hoặc chỉ dừng lại ở mức bên ngoài Ngoài

ra, cùng một nội dung có thể được sởhữu bởi nhiều cá nhân khác nhau, cần có các cơ chế giải quyết tranh chấp hoặc đồng sở hữudữ liệu

3.3 Kiểm tra và đánh giá chất lượng của dữ liệu

Là quá trình đảm bảo dữ liệu đạt tiêu chuẩn, phù hợp với mục tiêu, có khả năng đem lại lợiích khi đưa vào sử dụng phân tích Dữ liệu trước khi đưa vào sử dụng, trải qua các bước tiềnxử lý, rút trích thông tin nhằm bảo mật và đảm bảo an toàn thông tin cá nhân Quá trình này ít nhiều đã thay đổi bản chất và giá trị của dữ liệu, cần phải có một độ đo về tính khả dụng, chấtlượng thông tin, độ an toàn cũng như đảm bảo việc tuân thủ các cam kết, quy trình của hệthống Một số tiêu chuẩn đưa ra như độ chính xác, tính khách quan, độ tin cậy, giá trị

có đượctừ dữ liệu, mức độ liên quan, phù hợp với mục đích, tính kịp thời, tính đầy đủ …

Trang 19

II CƠ SỞ TRI THỨC VÀ CÔNG NGHỆ LIÊN QUAN

1 Dữ liệu mở - Open Data

1.1 Giới thiệu

Dữ liệu ngày càng thể hiện vai trò cực kỳ quan trọng cho sự phát triển của rất nhiều lĩnh vực như: giáo dục, y tế, khoa học và kỹ thuật Góp phần thúc đẩy sự phát triển của kinh tế, nâng cao chất lượng cuộc sống và tạo ra những tri thức hoàn toàn mới cho nhân loại Sự ảnh hướng này kéo theo sự phát triển của lĩnh vực phân tích dữ liệu nhằm tận dụng tối đa giá trị mà dữ liệu mang lại Hạt nhân của các hệ thống phân tích dữ liệu chính là dữ liệu Dữ liệu càng nhiều thì độ chính xác của các hệ thống phân tích càng cao Do đó chia sẻ dữ liệu là môt xu hướng hiện nay Một mô hình được tạo ra từ xu hướng này đó chính là dữ liệu mở Hệ thống dữ liệu mở là một hệ thống cho phép xuất bản, phân loại, tìm kiếm và trực quan dữ liệu Người dùng có thể thao tác với hệ thống thông qua cổng dữ liệu mở Một hệ thống dữ liệu mở phải đảm bảo các yêu cầu sau:

o Dữ liệu phải đầy đủ và cập nhật

o Mỗi bộ dữ liệu phải có định danh số và phiên bản dữ liệu khác nhau nếu có cập nhật, thay đổi theo thời gian

o Không có các thông tin định danh mà ảnh hưởng đến mỗi con người cụ thể (ví dụ không được có dữ liệu mở về lịch sử bệnh tật một người có tên, tuổi thật)

o Luôn online và miễn phí, không yêu cầu đăng ký, không bị gắn với bản quyền, phát minh sáng chế

o Nguồn dữ liệu phải tin tưởng và có tổ chức chịu trách nhiệm với mỗi bộ dữ liệu, có chữ ký điện tử, xuất xứ, thời gian của bộ dữ liệu

o Có thể hỗ trợ API để truy cập và tìm kiếm, lọc dữ liệu cần lấy

o An toàn: không chứa mã độc, mã lệnh thực hiện trên máy người lấy hay dùng dữ liệu, không quá lớn để gây nghẽn mạng

o Có tài liệu mô tả về dữ liệu đi kèm, Có danh sách các ứng dụng liên quan

đã sử dụng dữ liệu

Lợi ích của dữ liệu mở

Dữ liệu mở có rất nhiều lợi ích, một trong số đó là:

o Cho phép các tổ chức, chính phủ điều hành đưa ra những sáng tạo trong kinh doanh, dịch vụ cung cấp giá trị cho xã hội và thương mại

o Là chìa khóa để nâng cao chất lượng dịch vụ và cuộc sống

o Đẩy nhanh tiến độ lan truyền các dịch vụ kỹ thuật số trên web và nền tảng

di động

o Trao quyền và thu hút sự tham gia của người dùng

o Là đầu vào cho các ngành quan trọng như nghiên cứu và giáo dục

o Giúp cải thiện được tính minh bạch và công bằng

Trang 20

o Giúp làm giảm chi phí và tăng hiệu quả hoạt động cho các cơ quan tổ chức,

cụ thể: Để giải quyết một vấn đề mang tính đa ngành, cần phải thu thập đầy đủ những dữ liệu, thông tin cần thiết từ tất cả các ngành liên quan, do đó sẽ phải cần rất nhiều người, đồng thời phải thực hiện hàng loạt những cuộc liên lạc và trao đổi Khi có Dữ liệu mở thì các vấn đề này đều được giải quyết nhanh chóng, kịp thời và chính xác

dữ liệu

o DKAN (The Drupal Knowledge Archive Network) [6] - là một DMS (data management system) mã nguồn mở với một bộ đầy đủ các tính năng biên mục, xuất bản, tìm kiếm và trực quan hóa cho phép các tổ chức dễ dàng chia sẻ dữ liệu với công chúng DKAN có nhân là CKAN và sự khác biệt so với CKAN nằm ở việc DKAN hỗ trợ khả năng danh mục dữ liệu thông qua việc sử dụng thêm CMS (Content management system)

o OGPL (The Open Government Platform) [7] - cũng là một DMS (data management system) mã nguồn mở có nhân là CKAN được thực hiện dưới sự hợp tác của Ấn độ và Hoa Kỳ nhằm tạo ra một nền tảng nguồn mở để thúc đẩy tính minh bạch, trách nhiệm giải trình của chính phủ và sự tham gia của công dân lớn hơn bằng cách cung cấp thêm dữ liệu của chính phủ, tài liệu, công cụ và quy trình

o Một số DMS khác như Junar [8], Socrata [9] - cũng là những hệ thống mạnh mẽ cho các hệ thống dữ liệu mở

2 Hệ thống quản lý dữ liệu mở CKAN

Giới thiệu

CKAN viết tắt của Comprehensive Knowledge Archive Network là một hệ thống quản lý nguồn mở dựa trên web để lưu trữ và phân phối dữ liệu mở CKAN đã phát triển thành một hệ thống danh mục dữ liệu mạnh mẽ, chủ yếu được sử dụng bởi các tổ chức công cộng đang tìm cách chia sẻ dữ liệu của họ với công chúng Hiện nay CKAN đang được sử dụng rộng rãi trên nhiều quốc gia, trong đó chủ yếu là có tổ chức từ chính phủ CKAN được cộng đồng đánh giá rất cao về những khả năng của nó trong việc tổ chức dữ liệu, khả năng mở rộng và khả năng tương thích với các hệ thống khác Các phiên bản phát hành của CKAN được phối hợp, thử nghiệm và triển khai bởi đội ngũ công nghệ làm việc lâu năm trong lĩnh vực open data Là một dự án nguồn mở, CKAN và các phần mở rộng của nó được phát triển bởi một cộng đồng lớn

Trang 21

Một vài tính năng cơ bản của CKAN:

o CKAN có đầy đủ các chức năng và giải giáp để quản lý dữ liệu mở thông qua open portal

o CKAN cung cấp một cách hợp lý các công cụ để làm cho dữ liệu của người dùng có thể dễ dàng khám phá và trình bày Mỗi tập dữ liệu được cung cấp trang riêng để liệt kê tài nguyên dữ liệu và bộ sưu tập siêu dữ liệu phong phú, làm cho

nó trở thành một danh mục dữ liệu có giá trị và dễ dàng tìm kiếm

o Chức năng cốt lõi của CKAN cung cấp nhiều tính năng và có hơn 200 tiện ích mở rộng cộng đồng có thể lấp đầy hầu hết mọi khoảng trống tính năng

CKAN có một số ưu điểm như sau:

o Mã nguồn mở, cộng đồng lớn và có nguồn tính năng mở rộng phong phú

o Có khả năng lưu trữ dữ liệu lớn, dữ liệu streaming, dữ liệu có cấu trúc lẫn không có cấu trúc với nhiều nhiều định dạng phong phú

o Tìm kiếm dữ liệu đơn giản và hiệu quả nhờ search engine và metadata

o Có khả năng mở rộng và tích hợp với các hệ thống khác

o Quản lý dữ liệu và người dùng thông hệ thống quyền truy cập

Khác với những framework khác, CKAN là phần mềm nguồn mở, vì vậy nó miễn phí và có tính linh hoạt cao, cho phép bạn tránh bị khóa lâu dài và tự do điều chỉnh mã nếu cần Nó cũng nổi bật với các tính năng phong phú cho nhà xuất bản và người dùng dữ liệu, chẳng hạn như thu thập dữ liệu, tìm kiếm theo đặc điểm và theo từng loại thiết bị; CKAN còn cho phép bạn chia sẻ dữ liệu công khai của mình với các trang web CKAN khác

Công nghệ sử dụng

Phía Backend của CKAN, phần chạy trên máy chủ Web, được viết chủ yếu bằng Python Các trang web cung cấp cho trình duyệt người dùng bao gồm JavaScript CKAN quản lý thông tin về các bộ dữ liệu sẽ được cung cấp cho người dùng trong cơ

sở dữ liệu PostgreSQL Tìm kiếm được thực hiện bởi Solr Việc cài đặt CKAN có thể được truy vấn thông qua API Web Nền tảng có thể cài đặt, sử dụng CKAN là: Linux

Trang 22

Kiến trúc

Hình 4: kiến trúc code của ckan

o Routes định nghĩa các đường dẫn URL và view, chúng sẽ có nhiệm vụ xử

lý yêu cầu và phản hồi đến user

o Views dùng để xử lý request từ user, module này sẽ đọc và cập nhật dữ liệu thông qua các action và trả về cho người dùng html được render bởi Jinja2 template

o Jinja2 là 1 template engine hỗ trợ trên ngôn ngữ Python Jinja2 đơn giản, dễ

sử dụng và có cộng đồng lớn Bên cạnh đó còn có nhiều biến thế khác như sử dụng CMS thay thế hoặc sử dụng song song giữa CMS và DMS

o Logic bao gồm action functions, auth functions, background tasks and business logic Phần logic là phần module giúp cho CKAN thích ứng với tùy điều kiện và đặc điểm của các tổ chức khác nhau Thông qua interfaces.IActions người dùng có thể thêm các actions vào hệ thống Những action được khai bao trong CKAN có thể được gọi thông qua RESTful API hoặc người dùng có thể gọi thao qua ckanapi module

o Model: Vì CKAN sử dụng Postgresql cho nên framework phù hợp nhất với database này là SQLAlchemy Các thực thể trong CKAN được tổ chức theo dạng class các model và thao tác với database thông qua session, điều này sẽ giúp cho hệ thống kiểm soát dòng lệnh được tốt hơn

3 Dữ liệu Streaming

3.1 Giới thiệu

Dữ liệu streaming là dữ liệu được tạo ra liên tục bởi hàng nghìn nguồn dữ liệu, các nguồn này thường gửi các bản ghi dữ liệu đồng thời và có kích thước nhỏ (theo thứ tự Kilobyte) Dữ liệu truyền trực tuyến bao gồm nhiều loại dữ liệu như tệp nhật ký được tạo bởi khách hàng bằng cách sử dụng ứng dụng web hoặc di động của, mua hàng thương mại điện tử, hoạt động của người chơi trong trò chơi, thông tin từ mạng

Trang 23

xã hội, sàn giao dịch tài chính hoặc dịch vụ không gian địa lý và đo từ xa từ các thiết

bị được kết nối hoặc thiết bị đo đạc trong trung tâm dữ liệu

Dữ liệu này cần được xử lý tuần tự và tăng dần trên cơ sở từng bản ghi hoặc qua cửa sổ thời gian trượt và được sử dụng cho nhiều loại phân tích bao gồm tương quan, tổng hợp, lọc và lấy mẫu Thông tin thu được từ phân tích như vậy cung cấp cho các công ty khả năng hiển thị về nhiều khía cạnh của hoạt động kinh doanh và khách hàng của họ như –sử dụng dịch vụ (để đo lường / thanh toán), hoạt động của máy chủ, số lần nhấp vào trang web và vị trí địa lý của thiết bị, con người và hàng hóa vật chất –và cho phép họ để phản ứng kịp thời với các tình huống phát sinh Ví dụ: các doanh nghiệp có thể theo dõi những thay đổi trong tình cảm của công chúng đối với thương hiệu và sản phẩm của họ bằng cách liên tục phân tích các luồng truyền thông xã hội và phản hồi kịp thời khi cần thiết Ngoài ra còn có rất nhiều tình huống thể hiện vai trò của dữ liệu streaming như sau:

o Các cảm biến trong phương tiện vận tải, thiết bị công nghiệp và máy móc nông trại gửi dữ liệu đến một ứng dụng phát trực tuyến Ứng dụng giám sát hiệu suất, phát hiện trước mọi khiếm khuyết tiềm ẩn và tự động ngăn chặn mọi nguy

cơ dẫn đến sự ngưng hoạt động của thiết bị

o Một tổ chức tài chính theo dõi những thay đổi trên thị trường chứng khoán trong thời gian thực, tính toán giá trị rủi ro và tự động cân đối lại danh mục đầu

tư dựa trên biến động giá cổ phiếu

o Trang web bất động sản theo dõi một tập hợp con dữ liệu từ thiết bị di động của người tiêu dùng và đưa ra các đề xuất về bất động sản theo thời gian thực về các bất động sản tiềm năng dựa trên vị trí địa lý của họ

o Một công ty điện mặt trời phải duy trì sản lượng điện cho khách hàng của mình hoặc phải trả tiền phạt Nó đã triển khai một ứng dụng dữ liệu trực tuyến giám sát tất cả các bảng tại hiện trường và lên lịch dịch vụ trong thời gian thực,

do đó giảm thiểu thời gian thông lượng thấp từ mỗi bảng và các khoản thanh toán phạt liên quan

o Một nhà xuất bản phương tiện truyền phát hàng tỷ bản ghi dòng nhấp chuột

từ các sản phẩm trực tuyến của mình, tổng hợp và làm phong phú dữ liệu với thông tin về người dùng và tối ưu hóa vị trí nội dung trên trang web của mình, mang lại mức độ liên quan và trải nghiệm tốt hơn cho khán giả

o Một công ty trò chơi trực tuyến thu thập dữ liệu phát trực tuyến về tương tác giữa người chơi với trò chơi và cung cấp dữ liệu vào nền tảng trò chơi của họ Sau đó, nó phân tích dữ liệu trong thời gian thực, cung cấp các ưu đãi và trải nghiệm năng động để thu hút người chơi

3.2 Lợi ích của dữ liệu Streaming

Quá trình xử lý dữ liệu truyền trực tuyến có lợi trong hầu hết các trường hợp mà

dữ liệu động mới được tạo liên tục Nó áp dụng cho hầu hết các phân khúc ngành và các trường hợp sử dụng dữ liệu lớn Các công ty thường bắt đầu với các ứng dụng đơn

Trang 24

giản như thu thập nhật ký hệ thống và xử lý thô sơ như thực hiện các phép tính tối thiểu Sau đó, các ứng dụng này phát triển để xử lý thời gian thực tinh vi hơn Ban đầu, các ứng dụng có thể xử lý các luồng dữ liệu để tạo ra các báo cáo đơn giản và thực hiện các hành động đơn giản để đáp ứng, chẳng hạn như phát ra cảnh báo khi các biện pháp chính vượt quá ngưỡng nhất định Cuối cùng, các ứng dụng đó thực hiện các hình thức phân tích dữ liệu phức tạp hơn, như áp dụng các thuật toán học máy và trích xuất thông tin chi tiết sâu hơn từ dữ liệu Theo thời gian, các thuật toán xử lý sự kiện, luồng

và phức tạp, như cửa sổ thời gian giảm dần để tìm các bộ phim nổi tiếng gần đây nhất, được áp dụng, làm phong phú thêm thông tin chi tiết

3.3 So sánh xử lý bó và xử lý luồng

Trước khi xử lý dữ liệu streaming, cần so sánh và đối chiếu giữa xử lý luồng và

xử lý hàng loạt Xử lý hàng loạt có thể được sử dụng để tính toán các truy vấn tùy ý trên các tập dữ liệu khác nhau Nó thường tính toán các kết quả thu được từ tất cả dữ liệu mà nó bao gồm và cho phép phân tích sâu các tập dữ liệu lớn Các hệ thống dựa trên MapReduce, như Amazon EMR, là ví dụ về các nền tảng hỗ trợ các công việc hàng loạt Ngược lại, xử lý luồng yêu cầu nhập một chuỗi dữ liệu và cập nhật từng bước các chỉ số, báo cáo và thống kê tóm tắt để đáp ứng với mỗi bản ghi dữ liệu đến

Nó phù hợp hơn cho các chức năng giám sát và phản hồi theo thời gian thực

Phạm vi dữ

liệu

Truy vấn hoặc xử lý trên tất

cả hoặc hầu hết dữ liệu trong tập dữ liệu

Truy vấn hoặc xử lý dữ liệu trong khoảng thời gian luân phiên hoặc chỉ trên bản ghi dữ liệu gần đây nhất

Trong các hệ thống phân tán, có các cách giao tiếp khác nhau tùy theo mục đích

và yêu cầu Hầu hết các hệ thống phân tán có thể được xem là độc lập nhưng tương tác với nhau bằng các kiểu giao tiếp như máy khách-máy chủ, xuất bản-đăng ký, ngang hàng, cách định hướng dịch vụ, v.v [10]

Trang 25

Thông tin cho kiểu máy khách-máy chủ thường được quản lý và được trao đổi tập trung Thông tin liên lạc thường đạt được theo yêu cầu từ khách hàng đến máy chủ trung tâm với kết nối rõ ràng Hình 2 cho thấy kết nối kiểu máy khách-máy chủ

Hình 5: Kiểu máy khách - máy chủ

Khác với phong cách máy khách-máy chủ, ngang hàng thiết lập kết nối giữa các máy khách mà không cần máy chủ trung tâm Mọi nút trong mạng đều có thể cung cấp

và tiêu thụ thông tin Ngoài ra, bất kỳ nút nào cũng có thể tham gia hoặc rời khỏi mạng bất kỳ lúc nào Từ không có máy chủ trung tâm nào được sử dụng, nó tránh được điểm lỗi duy nhất Hình 3 cho thấy kết nối của phong cách peer-to-peer Cũng có một số kết hợp giữa mạng ngang hàng và máy chủ khách hàng

Hình 6: Mạng ngang hàng

Thay vì dựa trên các kết nối rõ ràng như các kiểu trên, kiểu đăng ký xuất bản sử dụng một cơ chế gọi ngầm là nhiều mạng Các nút (nhà xuất bản / người đăng ký)

Trang 26

được liên kết với nhau bằng các sự kiện thời gian chạy (chủ đề) và đây được gọi là đăng ký Nhiều hệ thống đăng ký xuất bản sử dụng môi giới trung gian để thực hiện đăng ký này Sự giao tiếp giữa các nhà xuất bản và người đăng ký có thể xảy ra khi sự kiện này diễn ra Hình 4 cho thấy cấu trúc của kiểu đăng ký xuất bản

Hình 7: Mô hình đăng ký- xuất bản

Tất cả các phong cách giao tiếp này đều có ưu và nhược điểm riêng khi áp dụng cho lĩnh vực cụ thể Đôi khi sự kết hợp giữa chúng có thể là một giải pháp hợp lý cho một vấn đề Tuy nhiên, giao tiếp socket dựa trên máy khách / máy chủ là lựa chọn phổ biến nhất trong ngành công nghiệp, đặc biệt là giao tiếp socket dựa trên TCP, có thể thiết lập giao tiếp tin cậy

Giao thức Đăng ký xuất bản theo thời gian thực (RTPS) [11] là một phần của

“Real-Time Industrial Ethernet Suite IEC-PAS-62030” đã được IEC phê duyệt Giao thức này đã được được sử dụng trong hàng ngàn ứng dụng công nghiệp Giao thức RTPS Wire chủ yếu bao gồm giao thức đăng ký xuất bản và giao thức Chuyển trạng thái hỗn hợp (CST) Các giao thức đăng ký xuất bản chuyển dữ liệu, trong khi CST chuyển trạng thái

Giao thức RTPS nhằm mục đích chạy qua phương thức truyền tải tốt nhất với sự

hỗ trợ của multicast chẳng hạn như UDP/IP Nó hỗ trợ các yêu cầu duy nhất của hệ thống phân phối dữ liệu So với đăng ký xuất bản truyền thống, có nhiều yêu cầu về thời gian thực hơn Nó được chỉ định trong cả Mô hình độc lập nền tảng (PIM) và một tập hợp Mô hình nền tảng cụ thể (PSM), chỉ ra rằng RTPS có thể chạy trên các nền tảng truyền tải khác nhau Những nét đặc trưng riêng của RTPS được liệt kê dưới đây:

o Thuộc tính Hiệu suất và QoS: Thuộc tính RTPS hỗ trợ RTPS chạy trên cả hai thông tin liên lạc đáng tin cậy và tốt nhất Chính sách QoS cung cấp cho người dùng sự linh hoạt và có thể kiểm soát các hành vi giao tiếp

o Khả năng chịu lỗi: Thuộc tính này đảm bảo tính mạnh mẽ của hệ thống và tránh việc một nút bất kỳ trong hệ thống bị lỗi mà làm cho toàn bộ hệ thống không hoạt động được

o Khả năng mở rộng: Một số phần của giao thức RTPS có thể được mở rộng

o Kết nối plug-and-play: Tất cả các nút có thể tham gia hoặc rời khỏi mạng ở bất kỳ đâu và bất kỳ thời gian nào

Trang 27

o Khả năng mở rộng: Do đặc tính khám phá động và không kết nối, hệ thống

có thể dễ dàng được mở rộng đến số lượng lớn các nút Các đặc tính này của RTPS đáp ứng hoàn hảo các yêu cầu của giao thức dây DDS [11]

Được ra đời vào năm 2004 bởi tổ chức Object Management Group, Data Distributed Service (DDS) là một chuẩn middleware dựa trên thức RTPS, nó cho phép

các ứng dụng chia sẻ dữ liệu phân tán có thể tương tác được với nhau - “Efficient and Robust Delivery of the Right Information to the Right Place at the Right Time” [8]

Thông thường các ứng dụng chia sẻ dữ liệu phân tán yêu cầu hiệu năng cao, sử dụng hiệu quả nguồn tài nguyên và có thể ước lượng trước được Để đạt được yêu cầu này DDS được thiết kế dựa trên các tiêu chí sau:

o Cho phép middleware phân bổ trước các tài nguyên để có thể giảm việc phân bổ tài nguyên động xuống mức tối thiểu

o Tránh các thuộc tính có thể yêu cầu sử dụng các tài nguyên mà không bị ràng buộc hoặc khó dự đoán

o Giảm thiểu nhu cầu tạo bản sao của dữ liệu

DDS quy định các ràng buộc về kiểu dữ liệu Các interface được quy định rõ ràng về kiểu, điều này có các lợi ích sau:

o Dễ sử dụng: lập trình viên có thể trực tiếp thao tác trên các cấu trúc dữ liệu một cách tự nhiên

o An toàn: Một số lỗi liên quan đến kiểu được phát hiện tại thời điểm biên dịch

o Hiệu quả: mã thực thi có thể dựa vào cấu trúc chính xác về loại dữ liệu Điều này giúp cho việc tối ưu hóa của các trình biên dịch, cũng như việc cấp phát trước tài nguyên sẽ hiệu quả hơn

Đặc tả giao thức dây khả năng tương tác của DDS (DDSI) xác định giao thức khả năng tương tác cho DDS DDS sử dụng giao thức RTPS làm giao thức truyền tải dữ liệu cơ bản và tất cả các nhà cung cấp DDS đều tuân theo giao thức dây này, điều này đảm bảo rằng việc triển khai DDS của các nhà cung cấp khác nhau có thể tương tác với nhau

Tiêu chuẩn API DDS cung cấp giao diện tiêu chuẩn giữa DDS và các ứng dụng Tiêu chuẩn này đảm bảo tính khả chuyển của mã nguồn được triển khai dựa trên các nhà cung cấp khác nhau Hiện tại, OMG cung cấp giao diện API DDS tiêu chuẩn bằng các ngôn ngữ C, C ++ và Java

Đăng ký xuất bản làm trung tâm dữ liệu (DCPS) cấp thấp hơn nhằm cung cấp thông tin hiệu quả DCPS giảm thiểu nhu cầu sao chép dữ liệu và phân bổ tài nguyên động, có thể dự đoán và hiệu quả Trên thực tế, lớp này xác định tất cả các hoạt động cho DDS giao tiếp, ví dụ, xác định chủ đề, tạo thực thể nhà xuất bản / người đăng ký, ghi / đọc dữ liệu, v.v

UDP / IP có được sử dụng làm phương tiện truyền tải cho DDS vì nó có các đặc điểm sau: tính khả dụng phổ biến, best-effort, không kết nối, hành vi có thể dự đoán

Trang 28

được, khả năng mở rộng và hỗ trợ multicast Mặc dù DDS cũng có thể được triển khai bằng cách sử dụng các giao thức khác, tuy nhiên nó được cho là hoạt động tốt nhất qua UDP / IP [10]

Hình 8: Cấu trúc OMG DDS

4.2 Các thành phần cơ bản

Hình 9: Không gian dữ liệu toàn cầu (GDS)

Không gian dữ liệu toàn cầu (GDS) [12]: GDS là một phần trừu tượng của

không gian dữ liệu nơi tất cả dữ liệu có thể được lưu trữ Các ứng dụng muốn xuất bản hoặc sửa đổi dữ liệu cần phải là nhà xuất bản hoặc muốn nhận và sử dụng dữ liệu cần phải đăng ký Có nhiều miền khác nhau trong GDS và mỗi miền có thể được chia thành các phân vùng khác nhau một cách hợp lý Miền giữa chúng được tách biệt, vì vậy một thực thể (như chủ đề) chỉ có thể nằm trong một miền, nhưng có thể xuất hiện trong một số phân vùng GDS cần được phân phối đầy đủ để tránh các điểm đơn lẻ lỗi của hệ thống

Trang 29

Người tham gia miền [12]: Người tham gia miền là đại diện cho tư cách thành

viên của ứng dụng trong miền, trong khi miền là khái niệm liên kết tất cả các ứng dụng với nhau để chúng có thể giao tiếp Người tham gia miền là vùng chứa cho tất cả các thực thể khác và cô lập các ứng dụng với nhau khi có nhiều ứng dụng đang chạy trên cùng một nút

Nhà xuất bản và người viết dữ liệu [12]: Nhà xuất bản được định nghĩa là một

đối tượng cho dữ liệu phân phối xuất bản dữ liệu vào GDS Nhưng bản thân nhà xuất bản không thể làm điều đó, nó có thể chỉ xuất bản dữ liệu bằng cách sử dụng trình ghi

dữ liệu Người viết dữ liệu luôn được liên kết với một nhà xuất bản A nhà xuất bản có thể chứa những người viết dữ liệu được đánh máy khác nhau để xuất bản các kiểu dữ liệu khác nhau

Người đăng ký và đầu đọc dữ liệu [12]: Người đăng ký được định nghĩa là đối

tượng nhận dữ liệu từ GDS Nó cũng không thể truy cập trực tiếp vào dữ liệu, vì vậy

nó phải nhận dữ liệu qua dữ liệu người đọc Trình đọc dữ liệu luôn được liên kết với một thuê bao Một người đăng ký có thể có nhiều các trình đọc dữ liệu khác nhau

Chủ đề [12]: Một chủ đề được xác định là đối tượng để liên kết các nhà xuất bản

và người đăng ký và nó thường bao gồm một tên duy nhất, một kiểu dữ liệu và một tập hợp các QoS Chỉ khi một người đăng ký được đăng ký cho cùng một chủ đề mà một nhà xuất bản đã xuất bản, thông điệp có thể được viết bởi trình ghi dữ liệu hoặc được đọc bởi trình đọc dữ liệu Bên cạnh đó, một yêu cầu khác là QoS của nhà xuất bản và người đăng ký cần phải tương thích

QoS [12]: Mọi thực thể của DDS đều có một tập hợp QoS, do đó, các điểm cuối

của giao tiếp chỉ có thể giao tiếp khi chúng có cấu hình QoS tương thích DDS cung cấp một bộ chính sách QoS phong phú, từ tính khả dụng của dữ liệu, cung cấp dữ liệu,

dữ liệu kịp thời đối với tài nguyên và cấu hình

Nhìn chung, DDS được thiết kế để có thể mở rộng và cấu hình được với một bộ QoS phong phú cho các hệ thống phân tán thời gian thực

4.3 Luồng dữ liệu trong Data Distributed Service

Hình 10: Global Data Space trong DDS

Ứng dụng ở phía Publication bắt đầu luồng dữ liệu bằng cách viết giá trị dữ liệu vào DataWriter Publication của DataWriter xuất bản các Samples Publication sẽ gửi

Trang 30

các Samples đến các Subscriber liên quan Mỗi Subscriber cung cấp Sample nhận được cho các DataReader tương ứng Luồng kết thúc khi ứng dụng ở phía Subscriber lấy dữ liệu từ DataReader Chính sách chất lượng dịch vụ (Quality of service - QoS) kiểm soát luồng dữ liệu thông qua hệ thống Topic, DataReader, DataWriter, Publisher

và Subscriber đều có chính sách QoS Các chính sách QoS của Publisher, DataWriter

và Topic kiểm soát dữ liệu ở phía gửi Các chính sách QoS của Subscriber, DataReader và Topic kiểm soát dữ liệu ở phía bên nhận

Data Objects được xác định bởi Topic Các Topic tương thích khi chúng có cùng tên, cùng loại dữ liệu và chính sách QoS không xung đột Khi Topic của DataReader tương thích với Topic của DataWriter, thì Publication và Subscriber sẽ được liên kết

và dữ liệu được truyền giữa chúng

Thực tế DDS là mạng ngang hàng (Peer to Peer –P2P), dữ liệu được truyền trực tiếp từ DataReader đến DataWriter Tuy nhiên, DDS được thiết kế để giúp các lập trình viên dễ dàng viết các ứng dụng bên trên hơn Một ứng dụng khi thao tác với dữ liệu sẽ thông qua Global Data Space DDS có nhiệm vụ giống như một bộ switch để kết nối giữa DataWriter và DataReader Quá trình này được gọi là Discovery, bao gồm

2 cách sau:

o DCPSInfoRepo: Đây là một super node trong mạng này, nó chứa toàn bộ thông tin của các DataReader, DataWriter Khi một node kết nối vào hệ thống thì bắt buộc phải kêt nối đến node này để lấy toàn bộ thông tin về các node trong mạng Cơ chế này không nằm trong chuẩn DDS tuy nhiên khá nhiều thư viện được xây dựng trên chuẩn DDS có hỗ trợ cơ chế này Điểm mạnh của cơ chế này

đó là không tốn quá nhiều băng thông khi có một node mới tham gia vào mạng Tuy nhiên nó có điểm yếu đó là nếu node này bị lỗi thì các node mới không thể tham gia mặc dù các node hiện tại vẫn đang hoạt động

o RTPS (Real Time Publish Subscribe Protocol): đây là một protocol cho phép các node lấy được thông tin của các node trong mạng thông qua giao thức UDP unicast hoặc multicast Điểm mạnh của cơ chế này đó là nó cho phép mạng lưới vẫn hoạt động ngay cả khi có một hoặc một vài node bị lỗi Điểm yếu của cơ chế này đó là tốn nhiều băng thông cho quá trình Discovery hơn

4.4 Các tính năng quan trọng của DDS

Là một phần mềm trung gian mạng, DDS cung cấp một mô hình để gửi và nhận tin nhắn, các sự kiện và lệnh trong mạng Các tính năng chính [11] của DDS như sau:

o Data-centric middleware: DDS là một phần mềm trung gian tập trung vào

dữ liệu và một GDS được phân phối đầy đủ được thông qua để lưu trữ dữ liệu

Do đó, DDS có thể cải thiện thời gian giao tiếp và tránh một nút bị lỗi gây ra sự sụp đổ của hệ thống

o Connectionless: DDS sử dụng giao thức đăng ký xuất bản theo thời gian

thực, là không kết nối Do đó không cần thiết lập kết nối điểm-điểm trong mạng

Trang 31

So với kết nối điểm-điểm truyền thống, DDS yêu cầu chi phí thấp để tích hợp hệ thống lớn

o Tự động khám phá: Với DDS, các nút trong mạng được ẩn danh đối với

mỗi nút khác, vì vậy họ có thể tham gia hoặc rời khỏi mạng bất kỳ lúc nào Người đăng ký ứng dụng có thể đăng ký một chủ đề bất cứ lúc nào và bất cứ nơi nào

o Mô hình rõ ràng: Đối với các ứng dụng, không cần thiết phải biết giao tiếp

cơ chế của DDS, vì DDS sẽ xử lý việc đóng gói thư, gửi, giải nén, v.v

o Khả năng tương tác: DDS là một mô hình tiêu chuẩn với khả năng tương

tác và khả năng tương tác đạt được thông qua API DDS tiêu chuẩn, giao thức dây RTPS và QoS Giao thức dây RTPS cần thiết cho khả năng tương tác của DDS vì

nó chỉ rõ các khía cạnh quan trọng của DDS, bao gồm khám phá động, tính độc lập của nền tảng, v.v API DDS tiêu chuẩn đảm bảo tính di động giữa phần mềm trung gian DDS và ứng dụng, trong khi QoS cung cấp các cấu hình khác nhau của QoS để đáp ứng các yêu cầu khác nhau [13] Trên tất cả, các khía cạnh này xác định tất cả các phần cần thiết của tiêu chuẩn và đảm bảo thực hiện DDS Với tính năng này, người dùng có thể dễ dàng lựa chọn triển khai từ các nhà cung cấp khác nhau

o Bộ chính sách QoS phong phú: DDS cung cấp một bộ QoS phong phú, mà

người dùng có thể chỉ định và kiểm soát hành vi của giao tiếp Các chính sách QoS có thể được định cấu hình cho tất cả Các thực thể DDS như nhà xuất bản, người đăng ký, người viết dữ liệu, trình đọc dữ liệu, chủ đề, v.v DDS giao tiếp chỉ có thể được thiết lập khi cấu hình QoS tương thích giữa nhà xuất bản và người đăng ký Trên thực tế, chính sách QoS tuân theo yêu cầu của người đăng

ký, mẫu do nhà xuất bản cung cấp Các thông số QoS này thể hiện mối quan tâm đến các khía cạnh khác nhau của DDS, bao gồm phân phối dữ liệu, tính khả dụng của dữ liệu, dữ liệu kịp thời, cấu hình và tài nguyên

4.5 Quality of Service – QoS

DDS cung cấp cho các ứng dụng quyền kiểm soát rõ ràng đối với một loạt các thuộc tính phi chức năng, chẳng hạn như tính khả dụng của dữ liệu, cung cấp dữ liệu, tính kịp thời của dữ liệu và sử dụng tài nguyên thông qua một bộ chính sách QoS phong phú - Hình dưới cho thấy danh sách đầy đủ các QoS có sẵn

Trang 32

Hình 11: Các loại QoS hiện tại trong DDS

Sự kiểm soát được cung cấp bởi những các chính sách QoS đối với các thuộc tính phi chức năng chính của dữ liệu là quan trọng đối với các hệ thống truyền thống và không thể thiếu Mỗi thực thể DDS (chẳng hạn như chủ đề, trình đọc dữ liệu và trình ghi dữ liệu) có thể áp dụng một tập hợp con các chính sách QoS có sẵn Các chính sách kiểm soát và thuộc tính end-to-end được coi là một phần quan trọng của quá subscription matching DDS sử dụng phương pháp đối sánh QoS được yêu cầu so với QoS được cung cấp , như thể hiện trong hình dưới, trong đó trình đọc dữ liệu khớp với trình ghi dữ liệu nếu và chỉ khi QoS nó yêu cầu cho chủ đề nhất định không vượt quá (ví dụ: nghiêm ngặt hơn) so với QoS mà dữ liệu được tạo ra bởi người ghi dữ liệu

Hình 12: Quá trình so sánh QoS

Quá trình đăng ký DDS được so khớp với loại chủ đề và tên, cũng như so với QoS được cung cấp / yêu cầu bởi người viết dữ liệu và người đọc Cơ chế đối sánh DDS này đảm bảo rằng (1) kiểu dữ liệu được giữ nguyên từ đầu đến cuối do viêc đối sánh kiểu của chủ đề và (2) QoS từ đầu đến cuối bất biến cũng được bảo toàn

Trang 33

Hình 13: QoS trong Data Distributed Service

Phần còn lại của phần này mô tả các chính sách QoS quan trọng nhất trong DDS

 TRANSIENT: đảm bảo rằng GDS duy trì thông tin tại bộ nhớ của bất kỳ nhà xuất bản nào để sử dụng bởi những bên đăng ký tham gia muộn

 PERSISTENT: điều này đảm bảo rằng GDS lưu trữ thông tin liên tục để cung cấp thông tin đến những người tham gia muộn ngay

cả sau khi tắt máy và khởi động lại toàn bộ hệ thống Độ bền đạt được bằng cách dựa vào một dịch vụ độ bền có các thuộc tính được cấu hình bằng DURABILITY_SERVICE trong QoS và không thay đổi chủ đề

o Chính sách LIFESPAN QoS kiểm soát khoảng thời gian trong đó mẫu dữ liệu có hiệu lực Giá trị mặc định là vô hạn, với các giá trị thay thế là khoảng thời gian mà dữ liệu có thể được coi là hợp lệ

o Chính sách HISTORY QoS kiểm soát số lượng mẫu dữ liệu (tức là các lần ghi tiếp theo cùng chủ đề) phải được lưu trữ cho người đọc hoặc người viết Giá trị có thể là duy nhất mẫu cuối cùng, n mẫu cuối cùng, hoặc tất cả các mẫu

Các chính sách QoS này của DDS về tính khả dụng của dữ liệu phân tách các ứng dụng theo thời gian và không gian Nó cũng cho phép các ứng dụng này hợp tác trong các môi trường có sự thay đổi liên tục với đặc trưng là việc liên tục tham gia và rời khỏi mạng lưới của nhà xuất bản/người đăng ký Các thuộc tính như vậy đặc biệt

Trang 34

quan trọng trong các hệ thống lớn vì chúng tăng khả năng tách các bộ phận thành phần

Cung cấp dữ liệu

DDS cung cấp các chính sách QoS sau để kiểm soát cách dữ liệu được phân phối

và nhà xuất bản có thể yêu cầu độc quyền về cập nhật dữ liệu:

Chính sách QoS PRESENTATION cho phép kiểm soát cách thức các thay đổi đối với mô hình dữ liệu được giới thiệu cho người đăng ký QoS này cho phép kiểm soát thứ tự của dữ liệu cũng như sự kết hợp của cập nhật dữ liệu Phạm vi mà nó được

áp dụng được xác định bởi phạm vi truy cập, có thể là một trong một INSTANCE, TOPIC hoặc GROUP

Chính sách QoS RELIABILITY kiểm soát mức độ tin cậy liên quan đến dữ liệu khuếch tán Các lựa chọn có thể là phân phối RELIABLE và BEST_EFFORT

Chính sách QoS PARTITION cho phép kiểm soát sự liên kết giữa các phân vùng DDS (được biểu thị bằng một tên chuỗi) và một trường hợp cụ thể của nhà xuất bản / người đăng ký Điều này làm cho DDS với một phần trừu tượng cho phép tách biệt lưu lượng truy cập được tạo bởi các phân vùng khác nhau, do đó cải thiện khả năng mở rộng hệ thống tổng thể và hiệu suất

Chính sách QoS DESTINATION_ORDER kiểm soát thứ tự các thay đổi do nhà xuất bản thực hiện cho một số trường hợp của một chủ đề nhất định DDS cho phép sắp xếp các thay đổi khác nhau tùy vào thời gian nguồn hoặc đích

Chính sách QoS OWNERSHIP kiểm soát xem nó có được phép cho nhiều người ghi dữ liệu hay không để cập nhật đồng thời một phiên bản chủ đề nhất định Khi được đặt thành EXCLUSIVE, chính sách này đảm bảo rằng chỉ một người trong số những người ghi dữ liệu đang hoạt động – cụ thể là người có OWNERSHIP_STRENGTH –

sẽ thay đổi giá trị của một trường hợp chủ đề Các nhà xuất bản khác, với OWNERSHIP_STRENGTH thấp hơn, vẫn có thể viết, nhưng bản cập nhật của họ sẽ không có một tác động trên hệ thống phân tán Trong trường hợp nhà xuất bản có OWNERSHIP_STRENGTH cao nhất bị lỗi, DDS tự động chuyển sang nhà xuất bản

có OWNERSHIP_STRENGTH cao nhất trong số các nhà xuất bản còn lại

Các chính sách QoS phân phối dữ liệu này kiểm soát độ tin cậy và tính sẵn có của dữ liệu, do đó cho phép cung cấp dữ liệu phù hợp đến đúng nơi vào đúng thời điểm Nhiều cách phức tạp hơn chọn đúng dữ liệu được cung cấp bởi cấu hình nhận thức nội dung DDS, cho phép ứng dụng để chọn thông tin quan tâm dựa trên nội dung của chúng Các chính sách QoS này là đặc biệt hữu ích trong các hệ thống dữ liệu mở

vì chúng có thể được sử dụng để tinh chỉnh cách thức - và đối tượng - dữ liệu được phân phối, do đó không chỉ hạn chế số lượng tài nguyên được sử dụng mà còn giảm thiểu mức nhiễu bởi các luồng dữ liệu độc lập

Tính kịp thời của Dữ liệu

DDS cung cấp các chính sách QoS sau đây để kiểm soát các thuộc tính kịp thời của dữ liệu:

Trang 35

o Chính sách QoS DEADLINE cho phép ứng dụng xác định thời gian tối đa giữa các lần đến của dữ liệu DDS có thể được cấu hình để tự động thông báo cho các ứng dụng khi thời gian đợi dữ liệu đã vượt ngưỡng được thiết lập thông qua QoS DEADLINE

o Chính sách QoS LATENCY_BUDGET cung cấp một phương tiện để ứng dụng thông báo cho DDS thời gian đợi từ khi dữ liệu được ứng dụng ghi xuống cho đến khi dữ liệu được cung cấp cho người đăng ký Khi đặt về 0, DDS sẽ gửi

dữ liệu ngay lập tức, nếu không, nó sẽ đợi một khoảng thời gian được chỉ định trong LATENCY_BUDGET Trong thời gian này nó lưu dữ liệu vào bộ nhớ tạm cục bộ và chờ đễ gom dữ liệu thành các thông báo lớn hơn để tối ưu hóa băng thông, CPU cũng như năng lượng

o Chính sách QoS TRANSPORT_PRIORITY cho phép ứng dụng kiểm soát mức độ ưu tiên liên kết với dữ liệu đang lưu chuyển trên mạng Mức độ ưu tiên này được DDS sử dụng để ưu tiên dữ liệu quan trọng hơn so với dữ liệu ít quan trọng hơn

Chính sách DEADLINE, LATENCY_BUDGET và TRANSPORT_PRIORITY QoS cung cấp các biện pháp kiểm soát cần thiết để xây dựng các hệ thống thời gian thực phân tán Trong các hệ thống này, TRANSPORT_PRIORITY có nguồn gốc từ lập lịch ưu tiên tĩnh phân tích, chẳng hạn như Phân tích đơn điệu về tỷ lệ, chính sách DEADLINE QoS thể hiện thời hạn tự nhiên của thông tin và được DDS sử dụng để thông báo vi phạm, cuối cùng là LATENCY_BUDGET được sử dụng để tối ưu hóa việc sử dụng tài nguyên trong hệ thống

Các chính sách QoS về tính kịp thời của dữ liệu này cung cấp quyền kiểm soát đối với các thuộc tính tạm thời của dữ liệu Các thuộc tính này đặc biệt có liên quan trong hệ thống dữ liệu mở vì chúng có thể được sử dụng để xác định và kiểm soát các khía cạnh tạm thời của các trao đổi dữ liệu trong các hệ thống con khác nhau, trong khi đảm bảo rằng băng thông được khai thác một cách tối ưu

Kiểm soát tài nguyên

DDS cung cấp các chính sách QoS sau để kiểm soát mạng và tài nguyên máy tính cần thiết để đáp ứng các yêu cầu trong quá trình trao đổi dữ liệu:

o Chính sách QoS TIME_BASED_FILTER cho phép ứng dụng chỉ định mức tối thiểu thời gian đến giữa các mẫu dữ liệu, do đó thể hiện khả năng tiêu thụ thông tin ở mức tối đa Các mẫu được tạo ra với tốc độ nhanh hơn sẽ không được gửi đi Chính sách này giúp DDS tối ưu hóa băng thông mạng, bộ nhớ và sức mạnh xử lý cho người đăng ký được kết nối trên băng thông hạn chế hoặc có khả năng tính toán hạn chế

o Chính sách QoS RESOURCE_LIMITS cho phép ứng dụng kiểm soát mức tối đa lưu trữ khả dụng để giữ các phiên bản của chủ đề và số lượng mẫu liên quan trong quá khứ Các chính sách QoS này của DDS hỗ trợ các yếu tố khác nhau và các kịch bản hoạt động tạo thành trung tâm quản lý thông tin quan trọng

Trang 36

Bằng cách kiểm soát các chính sách QoS này, có thể mở rộng quy mô DDS từ các hệ thống nhúng cấp thấp được kết nối đến các máy chủ cao cấp thông qua mạng cáp quang tốc độ cao

Các chính sách QoS để kiểm soát tài nguyên này cung cấp quyền kiểm soát các tài nguyên cục bộ và đầu cuối, chẳng hạn như bộ nhớ và băng thông mạng Các thuộc tính này đặc biệt có liên quan trong các hệ thống quản lý dữ liệu mở vì chúng được đặc trưng bởi phần lớn các hệ thống, thiết bị và mạng không đồng nhất các kết nối thường yêu cầu lấy mẫu xuống, cũng như giới hạn được kiểm soát tổng thể đối với lượng tài nguyên được sử dụng

Cấu hình

Các chính sách QoS được mô tả ở trên, cung cấp quyền kiểm soát các khía cạnh quan trọng nhất của dữ liệu như: khả năng trao đổi, tính khả dụng, kịp thời và quản lý việc sử dụng tài nguyên DDS cũng hỗ trợ định nghĩa và phân phối thông tin khởi động do người dùng chỉ định thông qua các chính sách QoS sau:

o Chính sách QoS USER_DATA cho phép các ứng dụng liên kết một chuỗi các octet với các bên tham gia, đọc dữ liệu và ghi dữ liệu Dữ liệu này sau đó được phân phối bằng cách chủ đề tích hợp — là các chủ đề được xác định trước bởi tiêu chuẩn DDS và được sử dụng cho các mục đích nội bộ Chính sách QoS này thường được sử dụng để phân phối thông tin xác thực bảo mật

o Chính sách QoS TOPIC_DATA cho phép các ứng dụng liên kết chuỗi octet với một chủ đề Thông tin khởi động này được phân phối theo chủ đề tích hợp sẵn Cách sử dụng phổ biến của chính sách QoS này là mở rộng các chủ đề với thông tin bổ sung, hoặc meta-infomation, chẳng hạn như mã loại IDL hoặc lược

đồ XML

o Chính sách QoS GROUP_DATA cho phép các ứng dụng liên kết chuỗi các octet với nhà xuất bản và người đăng ký – thông tin khởi động này được phân phối bằng các phương tiện được tích hợp sẵn với các chủ đề Một cách sử dụng điển hình của thông tin này là để cho phép ứng dụng kiểm soát việc thêm đăng

ký phù hợp

Các chính sách QoS cấu hình DDS này cung cấp một cơ chế hữu ích để khởi động và cấu hình các ứng dụng chạy trong hệ thống quản lý dữ liệu mở Cơ chế này đặc biệt có liên quan trong hệ thống quản lý dữ liệu mở vì nó cung cấp một phương tiện đầy đủ để cung cấp thông tin cấu hình

5 Kiểu dữ liệu trong Distributed Data Service

Kiểu dữ liệu đóng một vai trò quan trọng trong việc phát triển hệ thống phần mềm, giúp cho hệ thống dễ mở rộng hơn, giảm chi phí bảo trì Vì DDS được thiết kế

để nhắm mục tiêu đến các hệ thống quan trọng như kinh doanh, giao thông, y tế ,… nơi mà sự an toàn, khả năng mở rộng và khả năng bảo trì là cực kỳ quan trọng DDS

đã áp dụng một hệ thống kiểu tĩnh để định nghĩa kiểu của một topic Kiểu tĩnh giúp

Trang 37

ngăn chặn một số lỗi trong thời gian chạy bằng cách phát hiện nó trong thời gian biên dịch Mục này sẽ cung cấp tổng quan về kiểu dữ liệu trong DDS

DDS định nghĩa một số khái niệm Type System, Type Representation, Language Binding, và Data Representation Mối quan hệ của chúng được mô tả dưới hình sau:

Hình 14: Mối quan hệ giữa Type System, Type Representation, Language Binding, và

Data Representation

Hình 15: Một ví dụ thể hiện mối quan hệ giữa Type System, Type Representation,

Language Binding, và Data Representation

5.1 Type System

Type System xác định các kiểu dữ liệu có thể được sử dụng cho các topic trong DDS và do đó quyết định loại dữ liệu có thể được publish hoặc subcribe qua DDS Trong đó bao gồm:

 Kiểu Boolean

 Kiểu byte

Trang 38

 Kiểu nguyên với số lượng bit là: 16,32,64 bao gồm cả có dấu và không có dấu

 Kiểu float với các độ chính xác như sau: chính xác đơn, chính xác kép và chính xác bốn

 Kiểu ký tự đơn và ký tự quốc tế

 Struct có thể kế thừa từ một struct khác

 Unions

 Array 1 hoặc nhiều chiều

 Chỗi ký tự đơn và ký tự quốc tế

5.2 Type Representation

Type Representation là cách mà để biểu diễn các kiểu dữ liệu Type Representation phục vụ nhiều mục đích như:

 Cho phép người dùng mô tả và ghi lại kiểu dữ liệu

 Cung cấp đầu vào cho các công cụ sinh ra code với các cấu trúc phù hợp với ngôn ngữ lập trình để có thể lập trình và thao tác các đối tượng thuộc loại đó

 Cung cấp đầu vào cho các công cụ muốn “phân tích cú pháp” và diễn giải các đối tượng dữ liệu trong thời gian thực thi, mà không cần biết schema trước thời gian biên dịch

 Có thể trao đổi các thông tin về kiểu dữ liệu thông qua tin nhắn mạng để các ứng dụng có thể tự động phát hiện ra các kiểu của nhau từ đó đánh giá được việc trao đổi dữ liệu có hợp lệ hay không

Trong DDS có nhiều cách biểu diễn dữ liệu Do cùng chung một Type System của DDS nên những cách biểu diễn này đều tương đương nhau Tuy nhiên mỗi cách sẽ tối

ưu cho một mục đích khác nhau như bảng dưới đây

Được coi là một ngôn ngữ kế thừa bởi XML Không có nhiều công cụ

có sẵn (phân tích cú pháp, biến đổi, nhận diện cú pháp) dưới dạng XML.Phân tích cú pháp rất phức tạp Yêu cầu tiện ích mở rộng để hỗ trợ tất cả khái niệm trong Type System,

ví dụ: keys, optional members, map types, and member IDs

XML

Nhỏ gọn, Dễ dàng đọc và viết Có thể định nghĩa phù hợp và chính xác tất cả các khái niệm trong Type system (bao gồm keys, optional member, map, v.v.) Cú pháp có thể được mô tả bằng XSD cho phép sử dụng các trình chỉnh sửa hỗ trợ và xác minh cú pháp của kiểu dữ liệu

Rất phù hợp với yêu cầu xử lý trong

Ngôn ngữ mới, Dựa trên XML nhưng với một schema là chưa được viết đến

Trang 39

thời gian thực thi do các gói phân tích

cú pháp XML đã có sẵn

XSD

Tiêu chuẩn phổ biến Quen thuộc với nhiều người người dùng Con người có thể đọc được Cho phép sử dụng lại các kiểu dữ liệu được xác định cho các mục đích khác (ví dụ: web service)

Có sẵn các công cụ để thực hiện, kiểm tra, biên tập và tự động hoàn thành cú pháp

Cú pháp rườm rà, dài dòng, khó đọc đối với lập trình viên XSD là được hình thành như một cách để xác định

cú pháp của XML, không phải như một cách để xác định kiểu dữ liệu Không hỗ trợ trực tiếp cho nhiều cấu trúc (ví dụ: key) hoặc các kiểu trong model type (ví dụ:

arrays, unions, enums), do đó cần phải sử dụng các mẫu cụ thể khó nhớ

và dễ bị lỗi

Bảng 1: So sánh cách phương thức biểu diễn kiểu Hiện tại bộ framework OpenDDS chỉ hỗ trợ biểu diễn kiểu bằng Interface Definition Language - IDL, do đó mục này sẽ trình bày cách mà những kiểu dữ liệu trong Type System được biểu diễn kiểu bằng IDL

IDL là ngôn ngữ đặc tả được sử dụng để mô tả Giao diện lập trình ứng dụng (API) của một thành phần phần mềm IDL mô tả giao diện theo cách độc lập với ngôn ngữ, cho phép giao tiếp giữa các thành phần phần mềm không dùng chung một ngôn ngữ Ví dụ: giữa những thành phần được viết bằng C ++ và những thành phần được viết bằng Java IDL thường được sử dụng trong Remote Procedure Call (RPC) Trong những trường hợp này, các máy ở một trong hai đầu của liên kết có thể đang sử dụng các hệ điều hành và ngôn ngữ máy tính khác nhau IDL cung cấp một cầu nối giữa hai

hệ thống khác nhau Các node trong cùng một DDS global data space độc lập về ngôn ngữ cũng như nền tảng Do đó IDL phù hợp để biểu diễn kiểu trong DDS

Primitive Types được chỉ định trong Type System được biểu diễn bằng Primitive Types trong IDL như bảng dưới đây IDL:

UInt32 unsigned long

Hệ thống chú thích của IDL rất giống với hệ thống có sẵn trong Java

Trang 40

Gosling et al (2005) Nó cũng xác định một tập hợp các chú thích tích hợp có thể được sử dụng để kiểm soát khả năng mở rộng của một kiểu, cũng như các thuộc tính của một kiểu nhất định Một số các chú thích tích hợp quan trọng được mô tả dưới đây:

@ID có thể được sử dụng để gán một ID toàn cục duy nhất cho các thành

viên dữ liệu của kiểu ID này được sử dụng để giải quyết hiệu quả với việc sắp xếp lại các thuộc tính

@Key có thể được sử dụng để xác định loại thành viên cấu thành khóa của

một loại chủ đề Dùng để phân biệt các data sample

@Optional có thể được sử dụng để thể hiện rằng một thuộc tính là tùy

chọn và có thể không được thiết lập bởi publisher DDS cung cấp các trình truy cập cụ thể cho các thuộc tính tùy chọn Nó có thể được sử dụng để kiểm tra xem thuộc tính có được cung cấp giá trị hay không Để tiết kiệm băng thông, DDS sẽ không gửi các thuộc tính tùy chọn mà giá trị chưa được cung cấp

@Shared có thể được sử dụng để chỉ định rằng thuộc tính phải được tham

chiếu thông qua một con trỏ Chú thích này giúp tránh các trường hợp khi cấu trúc dữ liệu lớn (chẳng hạn như hình ảnh hoặc mảng lớn) trong các hệ thống nhúng với tài nguyên hạn chế, không đủ khả năng cấp phát một vùng nhớ lớn, liên tục cho các cấu trúc dữ liệu lớn như vậy

@Extensibility có thể được sử dụng để kiểm soát mức độ mở rộng được

phép cho một loại chủ đề nhất định Các giá trị có thể có cho chú thích này là:

o FINAL để thể hiện thực tế là loại bị niêm phong và không thể phát

triển - kết quả là loại này không thể được thay thế bởi bất kỳ loại nào khác có cấu trúc là loại phụ của nó

o APPENDABLE để diễn đạt rằng kiểu này có thể được bổ sung (các

phần tử có thể được thêm vào cuối) nhưng không được tổ chức lại

5.3 Data Representation

Data Representation chỉ định các cách mà đối tượng dữ liệu của một loại nhất định có thể được được diễn giải để nó có thể được lưu trữ trong một tệp hoặc được giao tiếp qua mạng Đây cũng là thường được gọi là “data serialization” or “data marshaling.”

Data Representation phục vụ nhiều mục đích như:

Ngày đăng: 08/05/2021, 15:46

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