STT Nội dung Thời gian
Dữ liệu 1
cứng 1 cứng 1 cứng 2 cứng 2
1. Chạy stored procedure tính số bài báo, số trích dẫn, số tác giả của tổ chức, số đồng tác giả của tác giả. 38 phút 32 giây 4 giờ 10 phút 11 giây 30 phút 15 giây 3 giờ 20 phút 10 giây 2. Tính tốn h-index, g- index cho các tác giả.
15 phút 6 giây 1 giờ 36 phút 7 giây 12 phút 5 giây 1 giờ 17 phút 15 giây 3. Tính tốn h-index, g- index cho các tổ chức. 13 phút 50 giây 1 giờ 29 phút 11 giây 10 phút 18 giây 1 giờ 11 phút 17 giây 4. Tính tốn h-index, g-
index cho các hội thảo.
2 phút 45 giây 12 phút 55 giây 2 phút 7 giây 10 phút 2 giây 5. Tính tốn h-index, g-
index cho các tờ báo. 4 phút 30 giây 20 phút 12 giây 3 phút 5 giây 16 phút 12 giây 6. Tính tốn h-index, g-
index cho các tác giả trong các lĩnh vực con. 51 phút 25 giây 5 giờ 50 phút 35 giây 41 phút 32 giây 4 giờ 38 phút 33 giây 7. Tính tốn h-index, g- index cho các tổ chức trong các lĩnh vực con. 18 phút 18 giây 1 giờ 54 phút 54 giây 14 phút 25 giây 1 giờ 31 phút 48 giây 8. Tính tốn h-index, g-
index cho các hội thảo trong các lĩnh vực con. 3 phút 12 giây 14 phút 53 giây 2 phút 11 giây 11 phút 22 giây 9. Tính tốn h-index, g-
index cho các tờ báo trong các lĩnh vực con. 3 phút 26 giây 19 phút 47 giây 2 phút 45 giây 15 phút 40 giây 10. Tính tốn h-index, g-
index cho các tác giả với các từ khóa. Chưa thử nghiệm 11. Tính tốn h-index, g- index cho các tổ chức với các từ khóa. 12. Tính tốn h-index, g-
với các từ khóa. 13. Tính tốn h-index, g-
index cho các tờ báo với các từ khóa.
Kết quả này được thể hiện trong các biểu đồ sau:
Biểu đồ 4.1 – Biểu đồ thời gian tính tốn các chỉ số.
Nhận xét:
Qua kết quả thực nghiệm ta nhận thấy cả hai yếu tố khối lượng dữ liệu và cấu hình phần cứng đều ảnh hưởng đến thời gian tính tốn. Thời gian tính tốn cụ thể có thể được cải thiện bằng cách tối ưu chương trình tính tốn, cịn tỷ lệ thời gian giữa các tác vụ thì gần như khơng đổi.
Sự thay đổi khối lượng dữ liệu làm thay đổi đáng kể thời gian tính tốn. Khi thay đổi từ dữ liệu một sang dữ liệu hai, thời gian tính tốn của hầu hết các chỉ số đều tăng từ 6 đến 7 lần, trung bình tăng khoảng 6,7 lần.
Sự thay đổi cấu hình phần cứng sử dụng làm thay đổi thời gian tính tốn ít hơn. Khi thay đổi từ cấu hình hai sang cấu hình một, thời gian tính tốn của hầu hết các chỉ số tăng trung bình 1,27 lần.
0 5000 10000 15000 20000 25000 Tác vụ 1 Tác vụ 2 Tác vụ 3 Tác vụ 4 Tác vụ 5 Tác vụ 6 Tác vụ 7 Tác vụ 8 Tác vụ 9
Biểu đồ thời gian tính tốn
(đơn vị: giây)
Dữ liệu 1 & Phần cứng 1 Dữ liệu 2 & Phần cứng 1 Dữ liệu 1 & Phần cứng 2 Dữ liệu 2 & Phần cứng 2
4.4 Hệ thống thư viện điện tử
4.4.1 Khảo sát hiện trạng
Xây dựng một hệ thống thư viện điện tử là mục tiêu chính của đề tài này, hệ thống được xây dựng lên sẽ được dùng để phục vụ nghiên cứu cũng như bước đầu triển khai ứng dụng.
Như đã nói ở phần trên, hiện nay có nhiều hệ thống thư viện điện tử đã được triển khai, trong số đó có các hệ thống miễn phí tốt như MAS, Google Scholar, CiteSeerX…, cũng có nhiều hệ thống tính phí tốt khác. Một hệ thống thư viện điện tử được xây dựng lên cần phải thể hiện được tính hữu ích của nó đối với người xây dựng cũng như người sử dụng. Để tăng tính cạnh tranh, đề tài này lựa chọn xây dựng một hệ thống miễn phí, cho phép mọi người tìm kiếm và đi đến nguồn của các tài liệu để tải về. Hệ thống sẽ thử nghiệm nhiều công nghệ, hỗ trợ nhiều tính năng giúp người dùng sử dụng tiện lợi hơn như: tìm kiếm nâng cao, xếp hạng kết quả tìm kiếm theo nhiều tiêu chí, duyệt danh sách các đối tượng… Hệ thống cũng sẽ bao gồm module hỗ trợ chức năng khuyến nghị các bài báo tương tự, và module biểu diễn minh họa các quan hệ ngữ nghĩa giữa các đối tượng bằng đồ họa. Đặc biệt, hệ thống sẽ quan tâm hơn đến người dùng ở Việt Nam so với các hệ thống khác trên thế giới, hệ thống này sẽ cung cấp nhiều thông tin đặc thù cho khu vực Việt Nam. Hiện tại hệ thống đang trong quá trình phát triển nên dữ liệu chỉ giới hạn trong lĩnh vực cơng nghệ thơng tin.
4.4.2 Phân tích thiết kế
Hệ thống thư viện điện tử của đề tài được đặt tên là PubGuru, viết tắt của Publication Guru. Hệ thống PubGuru có ba module được phát triển bởi nhiều nhóm, các module này là:
Module tìm kiếm, xếp hạng các bài báo và các đối tượng khác như tác giả, hội thảo, tờ báo, tổ chức.
Module tìm kiếm xếp hạng là module căn bản của hệ thống, cung cấp nền tảng cho các module khác thực hiện và là nền tảng để thử nghiệm các kỹ thuật, cơng nghệ, ý tưởng mới, đề tài khóa luận này tập trung vào việc xây dựng nền tảng của hệ thống và module tìm kiếm, báo cáo này cũng tập trung vào module tìm kiếm. Module tìm kiếm sẽ được xây dựng theo kiến trúc MVC.
Sơ đồ cấu trúc hệ thống PubGuru như sau:
Giao diện:
Sơ đồ các trang trong hệ thống:
Hệ thống PubGuru:
Module tìm kiếm.
o Trang tìm kiếm, đồng thời là trang chủ.
Trang tìm kiếm nâng cao.
Trang kết quả tìm kiếm.
Trang duyệt danh sách các đối tượng.
Trang khuyến nghị bài báo.
Trang biểu diễn các quan hệ ngữ nghĩa.
Module khuyến nghị bài báo.
Module biểu diễn các quan hệ ngữ nghĩa.
Cơ sở dữ liệu: PubGuru Module tìm kiếm Module khuyến nghị Module biểu diễn
Như đã nói ở phần trên, về cơ bản, cơ sở dữ liệu được sử dụng bởi hệ thống thư viện điện tử là sản phẩm của chương trình tính tốn các chỉ số đánh giá xếp hạng. Cơ sở dữ liệu này được tạo thành bằng cách kết hợp cơ sở dữ liệu của chương trình thu thập dữ liệu và các bảng lưu trữ dữ liệu chỉ số đánh giá thành một cơ sở dữ liệu duy nhất. Ngồi ra để chương trình hoạt động hiệu quả thì khi cài đặt cần phải thử nghiệm và tiến hành lập các chỉ mục cần thiết, chỉnh sửa các thông số cần thiết của cơ sở dữ liệu.
4.4.3 Cài đặt
Hệ thống PubGuru là một hệ thống ứng dụng được xây dựng trên nền tảng Java web với các công nghệ sau:
- Ngôn ngữ phát triển: Java, JSP, HTML, CSS, JavaScript. - Công nghệ Java EE16 6, AJAX.
- Cơ sở dữ liệu quan hệ với hệ quản trị MySQL 5.6 [MySQL]
- Công cụ phát triển: Adobe Dreamweaver17 CS4, Netbeans 7.1 [Netbeans]
Kiến trúc hệ thống:
Cũng với tư tương như các chương trình crawler và chương trình tính tốn các chỉ số, hệ thống được xây dựng sử dụng Java EE thuần túy, không sử dụng các framework lập trình nhằm kiểm sốt code tốt hơn từ đó dễ dàng tối ưu chương trình.
Hệ thống được xây dựng theo kiến trúc MVC được hiện thực bởi kiến trúc JSP Model 2 (được gọi là MVC Model 2), với:
View: Là các trang JSP cung cấp giao diện cho người dùng.
Model: Là các lớp Java truy xuất cơ sở dữ liệu và sinh ra các beans.
Controller: là các servlet tiếp nhận các yêu cầu của người dùng từ View và kiểm sốt dịng logic của chương trình. Controller sẽ gọi các hàm cần thiết trong Model và forward dữ liệu sang View để hiển thị.
Hình sau mô phỏng hoạt động của hệ thống theo kiến trúc MVC Model 2:
Sơ đồ 4.6 – Kiến trúc MVC Model 2 của hệ thống.
(Nguồn javaworld18)
Ở module tìm kiếm, người dùng tương tác với các trang JSP view, yêu cầu được gửi đến các cotroller servlet, các servlet này gọi các lớp business logic cần thiết để thực hiện logic của chương trình, đồng thời forward đến các trang JSP kết quả. Các lớp business sẽ gọi các lớp data access cần thiết để lấy dữ liệu và sinh ra các beans. Ở các trang JSP kết quả, dữ liệu trong beans sẽ được hiển thị bằng cách sử dụng kết hợp The JSP 2.0 Expression Language và JSP Standard Tag Library.
Cấu trúc code của chương trình được tổ như sau:
Thư mục Web Pages chứa các tập tin trang JSP đóng vai trị là View trong mơ hình MVC, thư mục WEB-INF chứa các thư mục chứa tập tin cấu hình và các thư viện, các thư mục CSS, JavaScript, hình ảnh, … Các tập tin mã nguồn khác được tổ chức trong các package khác nhau,
với các package sau:
o uit.pubguru.servlet: đóng vai trị Controller. Có nhiều servlet khác nhau, mỗi servlet xử lý request từ một số view nhất định.
o uit.pubguru.dto: Data transfer object, các đối tượng tương ứng với các bảng trong cơ sở dữ liệu.
o uit.pubguru.dbaccess: Data Access. Chương trình khơng sử dụng framework như hibernate vì muốn kiểm sốt hoạt động của chương trình tốt hơn để có thể tối ưu chương trình.
o uit.pubguru.bo: Business Logic. Phần này chứa các lớp có chức năng xử lý mọi hoạt động logic của chương trình.
o uit.pubguru.constant: Các hằng số, pattern dùng trong chương trình.
o uit.pubguru.dbconnection: Cung cấp connection đến cơ sở dữ liệu. Hiện tại hệ thống đang sử dụng cơ chế connection pool được cung cấp bởi
o uit.pubguru.utility: Cung cấp các công cụ để thực hiện các chức năng của chương trình, trong đó có lớp CSPublicationCrawlerLogger hỗ trợ ghi log của chương trình, để lưu vết lại mọi hoạt động cần biết.
o uit.pubguru.dto.database: Chứa các hằng số lưu tên của database đang sử dụng và các tên bảng, tên thuộc tính tương ứng. Phần này hỗ trợ cho các package khác nhằm hoàn thiện cơ chế model khơng dùng framework của chương trình.
Cơ sở dữ liệu:
Hiện tại chương trình đang được triển khai trên cơ sở dữ liệu MySQL vì các ưu điểm của nó như miễn phí, đơn giản, dễ triển khai, chất lượng và hỗ trợ tương đối tốt. Hệ quản trị cơ sở dữ liệu đang dùng là phiên bản 5.6.
Như đã nói, chương trình sử dụng connection pool để kết nối với database. Connection pool giúp tiết kiệm tài nguyên cho hệ thống bằng cách tái sử dụng các connection cũ, đồng thời giúp tăng tốc độ và hiệu suất của chương trình vì
các connection được tạo sẵn. Connection pool này được cung cấp bởi web server GlassFish 3.1.
Dữ liệu của hệ thống được lấy từ dữ liệu của chương trình thu thập dữ liệu và đã được xử lý để tính tốn các chỉ số đánh giá. Để tăng hiệu quả hoạt động của chương trình, tác giả cũng đã thực hiện tạo index trên các trường dữ liệu cần thiết để tránh thắt cổ chai, và tối ưu các tham số cấu hình trong my.ini.
Trong quá trình chạy thử nghiệm, cơ sở dữ liệu đang sử dụng có tên PubGuru, hoạt động trên localhost, cổng 3306, username root, password root.
Web server:
Hệ thống có thể được triển khai trên bất kì web server nào hỗ trợ Java, JSP, đề tài này triển khai hệ thống trên web server GlassFish 3.1.1. GlassFish [GF] là một application server mã nguồn mở miễn phí được phát triển bởi Sun và bây giờ được tài trợ bởi Oracle. GlassFish hỗ trợ tốt tất cả các đặc tả tiêu chuẩn của Java hiện nay. GlassFish được xây dựng dựa trên mã nguồn của Sun và ứng dụng hệ thống TopLink của Oracle, nó cũng ứng dụng Apache Tomcat để làm servlet container, và bổ sung thêm các tính năng như Grizzly.
Trong q trình chạy thử nghiệm, web server GlassFish được cấu hình để hoạt động trên localhost, cổng http 8080, cổng https 8181, cổng admin 4848.
4.4.4 Kết quả
Hệ thống thư viện điện tử đã được hoàn thành các chức năng cơ bản trong module tìm kiếm, các module được phát triển bởi các nhóm khác cũng đang được hồn thành và sẽ được ráp vào hệ thống.
Hình 4.2 – Màn hình chính của hệ thống PubGuru.
CHƯƠNG 5: THỰC NGHIỆM VÀ ĐÁNH GIÁ 5.1 Mở đầu 5.1 Mở đầu
Một trong những mục tiêu thử nghiệm của đề tài là tạo ra một hệ thống thư viện điện tử thân thiện với người dùng tại Việt Nam. Để thực hiện mục tiêu này, bước đầu chương trình sẽ thực hiện thu thập dữ liệu chỉ mục ở các trường đại học tại Tp. Hồ Chí Minh, sau đó sẽ thử nghiệm tính tốn các chỉ số xếp hạng, tạo một cơ sở tham khảo riêng cho người dùng Việt Nam.
Quy trình tiến hành sẽ như sau:
Bước 1: Thu thập danh sách các giảng viên tại các tổ chức là khoa công
nghệ thông tin của các trường đại học trong phạm vi thử nghiệm, là các trường đại học nổi tiếng tại Tp. Hồ Chí Minh.
Bước 2: Chuẩn hóa tên các tổ chức, tên các giảng viên, nạp dữ liệu này
vào cơ sở dữ liệu ở hai bảng Org và Author.
Bước 3: Viết chương trình crawler thực hiện chức năng thu thập thông
tin chỉ mục của các tổ chức và tác giả đã nạp ở trên.
Bước 4: Kiểm tra tính chính xác của dữ liệu thu thập được.
Bước 5: Tiến hành cài đặt tính tốn các chỉ số, rút ra các kết luận.
Chương này sẽ trình bày chi tiết các bước tiến hành và kết quả đạt được.
5.2 Thu thập danh sách giảng viên
Việc thu thập dữ liệu về danh sách giảng viên được xem là khá khó khăn, một phần bởi vì dữ liệu này tương đối nhạy cảm, mặt khác thời gian của đề tài bị hạn chế.
Như đã xác định ở các phần trên, đề tài chủ yếu tập trung vào dữ liệu chỉ mục trong lĩnh vực công nghệ thông tin. Bước đầu, dữ liệu sẽ giới hạn trong các khoa công nghệ thông tin ở một số trường đại học nổi tiếng tại Tp. Hồ Chí Minh, ngồi ra bổ sung thêm đại học FPT. Giảng viên sẽ được giới hạn trong số các giảng viên cơ hữu ở các khoa công nghệ thơng tin của các trường đó.
Nguồn dữ liệu danh sách giảng viên chủ yếu là từ công bố trên các trang web của trường đại học hay của khoa tương ứng (gọi chung là tổ chức). Ngoài các nguồn dữ liệu trên, cịn có nguồn phụ từ một số trang web, blog khác, và dữ liệu tổng hợp từ nhiều cá nhân, bộ phận có trách nhiệm trong các trường, khoa.
Kết quả danh sách giảng viên thu thập được ở đây dựa trên những nguồn thơng tin có thể truy cập được rộng rãi, vì vậy có thể không đầy đủ và cần những đơn vị chính thức như phịng tổ chức hành chính các trường cung cấp thêm thơng tin. Tuy nhiên, có thể coi đây như là một danh sách đại diện đủ tốt cho mục đích thử nghiệm của đề tài, vì danh sách này bao gồm các giảng viên chủ chốt có đóng góp lớn nhất cho hoạt động khoa học của tổ chức của họ.
Các tổ chức, các nguồn dữ liệu chính tương ứng và số lượng giảng viên thu thập sơ bộ vào tháng một năm 2012 được cho trong bảng sau:
Bảng 5.1 – Các tổ chức và nguồn dữ liệu danh sách giảng viên tương ứng.
STT Tên tổ
chức Thông tin bổ sung Nguồn dữ liệu Số GV
1. Trường Đại