SWG – Hệ thống cluster cho các ứng dụng web Việt có ngữ nghĩa

Thiên Thành| 01/12/2010 11:04

Sự phát triển nhanh chóng của các công nghệ mạng tốc độ cao, công nghệ chế tạo bộ vi xử lý và các phiên bản hệ điều hành Unix/Linux khác nhau, tất cả đã làm cho các hệ thống cluster trở thành nền tảng chủ đạo đối với các hệ thống song song và phân bố. Hệ thống cluster mang lại khả năng tính toán hiệu năng cao (high performance), và nó rất hữu dụng để chạy các ứng dụng khoa học lớn. Trong đó, ứng dụng Web có ngữ nghĩa tiếng Việt cũng là một dạng ứng dụng đòi hỏi sự tính toán lớn. Bởi vì ứng dụng Web có nghĩa này cần lưu trữ và truy xuất hàng trăm ngàn thực thể có tên bởi sự phối hợp xử lý của nhiều quá trình phức tạp. Các tác giả Nguyễn Quang Hùng, Nguyễn Thanh Sơn và Thoại Nam, Khoa Công Nghệ Thông Tin, trường Đại học Bách Khoa TP.HCM đưa ra một giải pháp – một hệ thống tính toán hiệu năng cao (tên SWG) được xây dựng nhằm mục đích chạy các quá trình phức tạp gồm: (1) lưu trữ và truy vấn cơ sở tri thức tiếng Việt; (2) chú giải các trang .....

Các hệ thống Unix/Linux cluster là sự ghép nối của nhiều máy tính trạm và máy chủ lại với nhau thông qua mạng truyền tốc độ cao (hàng Gbits/sec) . Trong đó mỗi nút (máy tính trạm/máy chủ) chạy hệ điều hành Unix/Linux, và các dịch vụ cần thiết khác như Network File System (NFS)… Hiện nay, các hệ thống cluster dùng Unix/Linux này mang lại hiệu quả đầu tư cao hơn so với các máy tính cở lớn (mainframe).

Ứng dụng web có ngữ nghĩa tiếng Việt được xác định là một dạng ứng dụng có dữ liệu xử lý lớn và bao hàm nhiều quá trình phức tạp. Dữ liệu (của ứng dụng Web có ngữ nghĩa) là số lượng các thực thể có tên như là con người, sông, địa danh, công ty… tồn tại trên nước Việt Nam là rất lớn (hàng trăm ngàn thực thể có tên như vậy). Tất cả các thực thể có tên này được biểu diễn dưới dạng Resource Description Framework (RDF) của tổ chức W3C và được lưu trử/truy vấn trên hệ lưu trữ như là Sesame (www.openrdf.org). Sesame cho phép dùng Sesame Application Programming Interface (API) để lưu trữ và xử lý các truy vấn dạng SeSQL trên các đồ thị RDF. Bởi vì số lượng các thực thể có tên nhiều và số lượng client sẽ gởi các câu truy vấn đến Sesame là rất nhiều (tương lai có thể phục vụ người dùng trên Internet). Do đó dẫn đến sự ra đời của hệ thống cluster (tên SWG), nhằm để đảm bảo các ứng dụng Web có ngữ nghĩa phục vụ số lượng hàng ngàn người dùng đồng thời, tạo ra kết quả trong thời gian trung bình thấp nhất, và tính sẳn sàng cao.

Trên hệ thống SWG, các nút tính toán là các máy chủ mạnh, phân ra làm nhiều nhóm, mỗi nhóm sẽ thực thi một loại quá trình chuyên biệt như là các quá trình xử lý câu truy vấn của Sesame, hoặc là các quá trình chú giải các trang web tiếng Việt, hoặc là các quá trình xử lý yêu cầu truy xuất các tài liệu đã được đánh chỉ mục bởi Lucene… Hơn nữa, kiến trúc hệ thống SWG có sự hướng đến mô hình dịch vụ của Grid computing.

THỬ NGHIỆM

Thử nghiệm 1: Truy vấn bằng SeSQL trực tiếp đến Sesame server

Để thử nghiệm, một chương trình (kỹ thuật Java Multithread) giả lập nhiều client đồng thời truy vấn tới cùng một Sesame server. Chương trình java multithread này trong quá trình chạy sẽ lần lượt tạo ra nhiều thread, mỗi thread đại diện cho một Sesame client dùng Sesame API để truy gởi câu truy vấn dạng SeSQL ("select * from {x} rdf:type {vnkimo_rdfs:Quốc_gia}").

Khi truy vấn trực tiếp thì địa chỉ URL của Sesame server là tồn tại thực. Giải thuật giả lập như sau:

i) Tại bước lập thứ k, thread chính tạo ra k thread và gọi phương thức Thread.start(). Rồi thread chính dừng lại một khoảng t_sleep mili giây.

ii) lặp lại cho đến khi k = MAX_THREAD.

Trong thử nghiệm 1, chúng tôi gán MAX_THREAD = 1000, t_sleep = 5000 miligiây, Sesame URL là http://172.28.10.27:8080/sesame/ và chỉ dùng một máy tính chạy Sesame server có 2 CPU.

Thử nghiệm 2: vẫn tiến hành như trong thử nghiệm 1. Tuy nhiên, có sự thay đổi về số lượng các máy tính: i) có 1 máy tính chạy chương trình giả lập java multithread; ii) có 1 máy tính được cấu hình để chạy dịch vụ VOKBService (địa chỉ URL là http://172.28.10.26:8080/vokbs/) và VOInfoService (có địa chỉ URL là http://172.28.10.26:8080/is/); iii) có 2 máy tính chạy hai phiên bản Sesame server (có các địa chỉ URL là http://172.28.10.27:8080/sesame/ và http://172.28.10.28:8080/sesame/).

KẾT QUẢ

Qua số liệu đo đạc nhận thấy trường hợp tải nặng – nghĩa là khi có nhiều yêu cầu truy vấn SeSQL gởi đến đồng thời thì sự phân chia yêu cầu này ra nhiều nút SeSame tính tóan là hợp lý nhất. Hệ thống 1 máy đơn Sesame (testcase 1) sẽ không thể chịu đựng được khi trung bình có hơn 1000 yêu cầu đồng thời trong một giây, còn hệ thống SWG trong trường hợp testcase 2 có thể chạy thành công thử nghiệm lên đến hơn 1500 yêu cầu đồng thời trong một giây. Hơn nữa, thời gian tiêu tốn trung bình trong trường hợp testcase 1 là: 6129,5 mili-giây. Còn thời gian tiêu tốn trung bình của hệ thống SWG trong trường hợp testcase 2 dùng dịch vụ VOKBService để phân chia tải là: 4548,7 mili-giây. Như vậy chúng ta có speedup của hệ thống là: S = 6129,5 / 4548,7 = 1,35

KẾT LUẬN

Tóm lại qua hai phần thử nghiệm trên, nhóm nghiên cứu kết luận kiến trúc của hệ thống SWG hoàn toàn phù hợp các ứng dụng Web có ngữ nghĩa tiếng Việt. Hơn nữa kiến trúc hệ thống SWG có thể được áp dụng cho nhiều bài toán thực tế phức tạp khác.

(0) Bình luận
Nổi bật
Đừng bỏ lỡ
SWG – Hệ thống cluster cho các ứng dụng web Việt có ngữ nghĩa
POWERED BY ONECMS - A PRODUCT OF NEKO