Trong đó phần cân bằng tải (Load Balancer) có cơ chế kiểm soát, điều phối, cân bằng tải khi các yêu cầu từ client đến các server thông qua REST API. Khi số lượng yêu cầu truy vấn tăng lên cần đáp ứng tốt thì lúc này hệ thống phải tăng thêm service API.
43 Sử dụng Database Cluster cho hệ thống CSDL với phần Core Server chứa những Core có khả năng vừa đọc vừa ghi dữ liệu, đảm bảo khả năng hoạt động ổn định liên tục; giúp mở rộng hệ thống dễ dàng và cung cấp khả năng dung lỗi cho dù một vài server dữ liệu gặp sự cố thì hệ thống vẫn hoạt động bình thường. Với những thao tác liên quan đến báo cáo, tổng hợp, dự đoán gây tốn thời gian truy xuất dữ liệu được các Read Replica cho phép thực thi mà vẫn đảm bảo khả năng cung cấp dịch vụ của toàn hệ thống.
2.4.2 Hệ thống REST API Service
Việc xây dựng hệ thống REST API service nhằm phục vụ chức năng lưu trữ thực thể quan hệ được trích xuất từ các bài báo mạng dưới dạng văn bản và truy vấn trên dữ liệu đó. Mỗi service API đi kèm tài liệu hướng dẫn sử dụng và 12 dịch vụ được xây dựng gồm:
1. Dịch vụ lưu trữ bài viết và thực thể quan hệ trích xuất từ các các bài báo mạng. 2. Dịch vụ truy vấn toàn bộ quan hệ giữa các thực thể của bài báo, để tạo cái nhìn
tổng thể về mạng lưới liên hệ giữa chúng.
3. Dịch vụ truy vấn mối quan hệ của một thực thể với những thực thể khác có trong bài báo đã có trước, bao gồm quan hệ trực tiếp và quan hệ gián tiếp; phục vụ việc chỉ ra mối quan hệ của thực thể cần truy vấn với những thực thể khác trong dữ liệu.
4. Dịch vụ truy vấn danh sách những thực thể nào đó trong một tập các bản ghi đã có kèm theo mối quan hệ giữa những thực thể đó. Ví dụ: Thực hiện truy vấn những cá nhân với mối quan hệ giữa họ trong cùng một tập bản ghi; hay truy vấn danh sách những sự kiện, cá nhân, địa danh có trong bản ghi kèm theo mối quan hệ giữa các thực thể phát hiện được.
5. Dịch vụ truy vấn đếm tổng số lượt một thực thể được đề nhắc đến trong một tập những bản ghi đã có. Ví dụ: Cung cấp trước một tập các bản ghi liên quan đến sự kiện hội nghị. Công cụ cần chỉ ra được tổng số lần sự kiện này được nói đến.
6. Dịch vụ nhiều thực thể được ghép (cùng một thực thể mà được nhận diện khác nhau) thành duy nhất một thực thể. Thực thể mới gồm nhiều tên cần có sự xác nhận của người dùng cuối. Ví dụ: Đại La, Đông Đô, Đông Kinh, Thăng Long, Hà Nội được nhận diện là 5 thực thể khác nhau nhưng bản chất đều chỉ cùng một thực thể địa danh cụ thể là Hà Nội ngày nay, dịch vụ này sẽ ghép 5 thực thể này thành một thực thể duy nhất Hà Nội với sự xác nhận của người dùng cuối.
44 7. Dịch vụ xây dựng lưu trữ thực thể chứa thông tin toạ độ phục vụ việc hiển thị trên bản đồ số. Dữ liệu thông tin tọa độ được cập nhật bởi người dùng bằng phương pháp thủ công.
8. Dịch vụ thống kê bản ghi có một thực thể được nhắc đến. Ví dụ: Sự kiện hội nghị thượng đỉnh diễn ra trong bao nhiêu ngày.
9. Dịch vụ thống kê bài viết của bài báo có xuất hiện mệnh đề. Ví dụ: Thống kê bài viết chứa mệnh đề “Tổng thống Donald Trump gặp Chủ tịch Kim Jong-un tại Hà Nội.”.
10. Dịch vụ thống kê loại quan hệ (relationship type) của thực thể (node) tham gia. Ví dụ: Tổng thống Donald Trump có loại quan hệ (relationship type) nào của thực thể (node) tham gia.
11. Dịch vụ thống kê loại quan hệ nào giữa một bộ đơi thực thể. Ví dụ: Hai ơng Donald Trump và ơng Kim Jong-un có những loại quan hệ gì với nhau.
12. Dịch vụ thống kê thực thể có quan hệ với thực thể đã có. Kết quả thống kê có sử dụng bộ lọc theo thời gian: năm, tháng. Ví dụ: Tổng thống Donald Trump đã gặp những ai trong thời gian 02/2019.
Toàn bộ các service API cần xây dựng hệ thống giao diện hướng dẫn sử dụng đi kèm. Giao diện hướng dẫn mô tả dịch vụ, danh sách các tham số và phần demo sử dụng các dịch vụ này. Ngoài ra hệ thống cần cung cấp chức năng quản trị sao lưu và khôi phục dữ liệu sao cho người quản trị sử dụng thuận tiện nhất.
2.5 Công cụ hướng dẫn sử dụng hệ thống
Các service API phát triển trên môi trường NodeJs, sử dụng Express framework và kết nối tới CSDL đồ thị neo4j bằng neo4j-driver 10. Sử dụng ngôn ngữ truy vấn Cypher để thực hiện lời gọi cho các service.
Có 12 service được xây dựng trong luận văn và 5 service quan trọng nhất được lựa chọn trình bày lần lượt sau đây.
2.5.1 Service API
2.5.1.1. Truy vấn thông tin thực thể
Đầu vào của service API truy vấn thông tin thực thể là name - tên của thực thể;
label - nhãn của thực thể. Ngoài ra trong đầu vào còn tuỳ chọn truyền thêm tham số
45
isExact - để truy vấn thực thể với thuộc tính name chính xác hoặc gần đúng – nghĩa là chỉ
cần chứa một cụm từ. Truy vấn của service API về thông tin thực thể ở Bảng 7 bên dưới.
Bảng 2. 5. Service truy vấn thông tin thực thể
Đường dẫn /er-services/entity
Phương thức get
Tham số + mô tả label Nhãn của thực thể.
name Tên của thực thể.
Kết quả trả về dữ liệu ở dạng json có thể là một danh sách hay một đối tượng cụ thể - có 2 property chính: properties và meta. Cụ thể trong properties có: name - tên, description - mơ tả. Cịn meta: dùng để mô tả metadata thực thể gồm các properties: id -
định danh của thực thể, type - kiểu của dữ liệu (các node); label - danh sách các nhãn của node.
Giả sử câu truy vấn thơng tin thực thể ở Hình 2.23 bên dưới và dữ liệu trả về khi truy vấn thông tin thực thể với label - Person và name – Donald Trump ở Hình 2.24 bên dưới.