Thực trạng ở Việt Nam và tính cấp thiết của đề tài
Hiện nay, nhu cầu tra cứu và chia sẻ tài liệu phục vụ cho công tác nghiên cứu
& giảng dạy trong các trường đại học là rất lớn Các sinh viên không chỉ muốn chia sẻ tài liệu với nhau trong cùng khóa, mà còn muốn tra cứu và tham khảo thêm tài liệu, luận văn từ các khóa trước hay từ các trường đại học khác thuộc cùng lĩnh vực nghiên cứu Tuy vậy, việc tiếp cận các tài liệu này, đặc biệt là các luận văn, các tài liệu, bài báo chuyên khảo, ở Việt Nam hiện nay là không dễ dàng, và thường được thực hiện qua các con đường không chính thống như tải về từ mạng internet, hay qua sao chép giữa các cá nhân với nhau Đó là chưa kể đến việc một số trường còn thiết lập các chính sách hạn chế truy cập đến một số tài liệu nội bộ, như chỉ được lưu hành trong phạm vi trường, khoa, nhóm nghiên cứu…
Bên cạnh đó, các hiện tượng gian lận, sao chép trong học tập diễn ra ngày một nhiều và ngày càng tinh vi hơn khiến cho việc phát hiện các gian lận là rất khó khăn Một số sinh viên không chỉ sao chép tài liệu từ các bạn cùng khóa, mà còn từ các khóa khác, hay thậm chí là từ các tài liệu, luận văn của các trường đại học khác. Phương pháp sao chép cũng ngày một tinh vi hơn, không chỉ cóp nguyên xi cả tài liệu, mà còn thay đổi trật tự các đề mục, các câu trong tài liệu, hay sử dụng các từ đồng nghĩa, đa nghĩa để thay thế Một khó khăn nữa đặt ra cho các giảng viên đó là họ thường chỉ có thể phát hiện sao chép với nguồn là từ các tài liệu trong nội bộ trường, mà không phát hiện được sao chép từ các nguồn tài liệu bên ngoài Việc gia tăng ngày một nhiều các hành vi gian lận đã ảnh hưởng tiêu cực đến chất lượng tài liệu, luận văn nói riêng, và tới chất lượng giáo dục nói chung Do vậy, nhu cầu cần có một hệ thống chia sẻ tài liệu vừa hỗ trợ tốt cho công tác nghiên cứu, vừa cung cấp khả năng so khớp, phòng chống gian lận trong học tập là rất cấp thiết.
Xuất phát từ những nhu cầu trên, nhóm nghiên cứu thuộc Trung tâm tính toán hiệu năng cao quyết định xây dựng một hệ thống tìm kiếm và so khớp tài liệu liên trường đại học Hệ thống cho phép người sử dụng, là những sinh viên, giảng viên của các trường đại học, có thể chia sẻ các tài liệu nghiên cứu của mình, cũng như tìm kiếm, tra cứu các tài liệu từ trong phạm vi trường mình cũng như từ các trường khác tham gia liên minh Với lợi thế về kho tài liệu liên trường đại học, hệ thống còn cung cấp giải pháp so khớp tài liệu, dựa trên hướng tiếp cận ngữ nghĩa,nhằm giải quyết vấn đề gian lận trong học tập. Để xây dựng được một hệ thống mạnh và đạt yêu cầu cần có một nền tảng công nghệ thích hợp Nền tảng công nghệ này cần có khả năng kết hợp sức mạnh tính toán, lưu trữ của nhiều máy tính, thuộc các trường đại học nằm phân tán về mặt địa lý Qua quá trình nghiên cứu, nhóm thấy rằng công nghệ tính toán lưới, mà cụ thể là công nghệ lưới dữ liệu là phù hợp với những yêu cầu đặt ra cho một hệ thống như vậy Tuy nhiên, tính toán lưới và các vấn đề liên quan đến nó vốn không đơn giản thậm chí với cả những người nghiên cứu và hoạt động trong lĩnh vực này. Chính vì thế để giúp đỡ những người sử dụng trong việc tiếp cận hệ thống, việc xây dựng một cổng thông tin điện tử ( portal ) là hết sức cần thiết, điều này sẽ che dấu đi kiến trúc phức tạp bên dưới và cung cấp giao diện thân thiện dễ sử dụng tới người dùng, giúp họ có thể tiếp cận hệ thống và sử dụng nó như một công cụ hữu ích trong công việc nghiên cứu của mình.
Tên của hệ thống - GOODAS – được lấy từ các chữ cái đầu của cụm từ tiếngAnh: Grid Oriented Online Document Analysing System.
Mục tiêu nghiên cứu
Mục đích của đồ án là phân tích thiết kế kiến trúc tổng thể của hệ thống và xây dựng thành phần cổng thông tin dựa trên nền lưới (grid portal) cho hệ thống,cung cấp một cách tiếp cận tới hệ thống dựa trên giao diện web, che dấu đi kiến trúc phức tạp bên dưới và đưa tới người dùng khả năng sử dụng hệ thống một cách dễ dàng.
Phương pháp nghiên cứu
Kiến trúc tổng thể của hệ thống được xây dựng dựa trên việc nghiên cứu các kiến trúc hệ thống sử dụng các phương pháp tiếp cận truyền thống cho bài toán quản lý tài liệu phân tán, đánh giá ưu nhược điểm và lựa chọn giải pháp phù hợp. Bên cạnh đó, cũng nghiên cứu tìm hiểu mô hình kiến trúc của các hệ thống ứng dụng khác được phát triển dựa trên nền công nghệ lưới dữ liệu (như hệ thống dự báo thời tiết, cảnh báo sóng thần…).
Với mục đích xây dựng portal cho hệ thống như đã trình bày ở trên, sử dụng cách tiếp cận tìm hiểu kiến trúc gridportal của các trung tâm tính toán hiệu năng cao trên thế giới, các frame work hỗ trợ xây dựng grid portal.
Phạm vị và kết quả nghiên cứu
Đồ án chỉ trình bày các vấn đề liên quan đến kiến trúc hệ thống và gridportal,các kết quả nghiên cứu và triển khai cũng như các công nghệ được sử dụng để xây dựng nên portal cho hệ thống.
Cấu trúc đồ án
Để giúp người đọc có được cái nhìn từ khái quát đến chi tiết công việc cũng như kết quả của đồ án, cấu trúc đồ án được trình bày như sau.
Chương 1 Giới thiệu về vấn đề quản lý tài liệu phân tán & các phương pháp tiếp cận truyền thống Trình bày hướng tiếp cận của hệ thống GoodAs, mô hình kiến trúc của hệ thống & vị trí của thành phần portal trong hệ thống
Chương 2 Trình bày tổng quan về grid portal, trong chương này các vấn đề như lưới và grid portal sẽ được đề cập, các công nghệ để xây dựng một grid portal cũng được trình bày trong phần này.
Chương 3 Chương này giúp người đọc hiểu rõ Gridsphere Portal Frame
Work, đó là framework đã được chọn để xây dựng portal cho hệ thống
Chương 4 Trình bày về Portal của hệ thống, cung cấp cho người đọc thông tin chi tiết các chức năng của portal cũng như các kết quả đã triển khai được trong thời gian thực hiện đồ án trên portal.
Chương 5 Trình bày những kết quả triển khai portal trên hệ thống.
Cuối cùng là phần Tổng kết, trong phần này sẽ đưa ra kết luận, cũng như hướng mở rộng của đồ án.
KIẾN TRÚC HỆ THỐNG TÌM KIẾM & SO KHỚP TÀI LIỆU LIÊN TRƯỜNG ĐẠI HỌC GOODAS
Giới thiệu chung
1.1.1 Bài toán quản lý tài liệu phân tán
Bài toán quản lý tài liệu phân tán trên các trường đại học có thể phát biểu như sau:
Cho các trường đại học với hệ thống máy tính được nối mạng, cùng với các kho lưu trữ tài liệu điện tử phục vụ học tập, nghiên cứu, thuộc nhiều lĩnh vực, nằm phân tán ở mỗi trường Cần xây dựng một hệ thống chương trình ứng dụng cho phép kết nối các tài nguyên phân tán từ các trường, hỗ trợ người dùng dễ dàng chia sẻ & tra cứu các tài liệu khoa học, bên cạnh đó, hỗ trợ đắc lực giảng viên các trường trong việc phát hiện các tài liệu, luận văn sao chép từ các nguồn trong hệ thống.
Vấn đề quản lý tài liệu điện tử nằm phân tán trên mạng đặt ra rất nhiều thách thức Đặc điểm của các tài liệu điện tử đó là các tài nguyên động Tính chất động không chỉ thể hiện về mặt dữ liệu (các tài liệu có thể được thêm, bớt, hay sửa đổi), mà còn về mặt sở hữu Các tài liệu thuộc sở hữu của các cá nhân nằm trong các tổ chức khác nhau Mỗi tổ chức lại có các chính sách quản lý tài nguyên và truy cập riêng Trong khi đó, yêu cầu về một hệ thống quản lý tài liệu phân tán trên mạng đòi hỏi tính mềm dẻo (khả năng dễ dàng thêm bớt các tài nguyên lưu trữ, tính toán), tính bảo mật cho dữ liệu thuộc các tổ chức, và tính cộng tác chia sẻ dữ liệu trong các nhóm hay trong các lĩnh vực nghiên cứu Việc giải quyết các yêu cầu đặt ra này trên một tập các tài nguyên động là rất phức tạp.
1.1.2 Các phương pháp tiếp cận truyền thống
Cho đến này, đã có rất nhiều các giải pháp sử dụng các công nghệ tính toán phân tán khác nhau để giải quyết vấn đề trên Tuy nhiên các cách tiếp cận này chưa xây dựng được một giải pháp đầy đủ cho vấn đề chia sẻ tài nguyên động, đáp ứng yêu cầu cho mô hình cộng tác giữa các tổ chức Sau đây, xin được điểm qua một vài công nghệ tính toán phân tán đã được áp dụng:
Công nghệ Internet & tính toán ngang hàng (Peer-to-peer Computing) (được triển khai trong các dự án như Napster, Freenet hay SETI@home ) thường tập trung vào các giải pháp tích hợp theo chiều dọc cho các vấn đề chuyên biệt, thay vì định nghĩa một giao thức chung cho phép chia sẻ tài nguyên và làm việc cộng tác. Hơn nữa, hình thức chia sẻ cũng còn nhiều hạn chế, như chia sẻ tệp tin không có kiểm soát truy nhập, hay chia sẻ tính toán với một máy chủ tập trung Khi các ứng dụng trở nên phức tạp hơn và yêu cầu làm việc cộng tác trở nên rõ ràng hơn, thì công nghệ Internet và tính toán ngang hàng cho thấy nhiều hạn chế Ví dụ, khả năng truy cập một lần (single sign-on), ủy quyền và các công nghệ chứng thực khác trở nên rất quan trọng và cần thiết khi các dịch vụ chia sẻ dữ liệu và tính toán phải cộng tác với nhau, hay khi chính sách điểu khiển truy nhập đến các tài nguyên trở nên phức tạp.
Các công nghệ điện toán doanh nghiệp như CORBA, Enterprise JavaBeans,
Java 2 Enterprise Edition, hay DCOM đều được thiết kế để phát triển các ứng dụng phân tán Các công nghệ này cung cấp các giao diện truy cập tài nguyên chuẩn, các cơ chế triệu gọi phương thức từ xa cũng như các cơ chế giúp đơn giản hóa việc trao đổi tài nguyên trong phạm vi một tổ chức đơn Tuy nhiên, các cơ chế này lại không giải quyết được các yêu cầu đặt ra với các tổ chức ảo Việc chia sẻ thường mang tính chất tĩnh & gói gọn trong phạm vi một tổ chức Dạng thức chủ yếu của các liên tác là theo mô hình Client-server, thay vì là sự phối hợp hoạt động của nhiều tài nguyên.
Các nhà cung cấp dịch vụ ứng dụng (ASPs), các nhà cung cấp dịch vụ lưu trữ (SSPs) và các công ty cung cấp các dịch vụ hosting khác thường triển khai các ứng dụng doanh nghiệp cũng như cung cấp khả năng lưu trữ cho các khách hàng của mình Công nghệ VPN thường được sử dụng để mở rộng hệ thống mạng của khách hàng, bổ sung thêm các tài nguyên được quản lý và điều khiển bởi các ASPs hay SSPs Một số SSPs cung cấp các dịch vụ chia sẻ file, truy cập thông qua HTTP, FTP, hay WebDAV với cơ chế mật khẩu hay danh sách điểu khiển truy nhập Chính việc sử dụng VPN hay các cơ chế cấu hình tĩnh này khiến cho việc thực hiện hóa các mô hình chia sẻ tài nguyên giữa các tổ chức trở nên rất khó khăn
1.1.3 Hướng tiếp cận của hệ thống GoodAs
Dựa trên việc tìm hiểu các giải pháp công nghệ đang được sử dụng để giải quyết vấn đề quản lý tài liệu phân tán, đánh giá ưu nhược điểm của các phương pháp trên, nhóm nghiên cứu đã quyết định sử dụng một hướng tiếp cận mới cho vấn đề này Qua quá trình nghiên cứu, nhóm nhận thấy công nghệ tính toán lưới [1], với nhiều ưu điểm trong việc kết hợp sức mạnh tính toán và lưu trữ của các tài nguyên nằm phân tán, là phù hợp với những yêu cầu đặt ra cho một hệ thống quản lý tài liệu như vậy Ưu điểm của công nghệ lưới
Khả năng kết hợp các tổ chức tham gia vào hệ thống
Trong điều kiện cơ sở hạ tầng tại Việt Nam còn thấp, kinh phí đầu tư cho một hệ thống lớn còn rất khó khăn, do đặc trưng của hệ thống lưu trữ và chia sẻ dữ liệu đòi hỏi một lượng lớn tài nguyên phần cứng, ta khó có thể xây dựng một hệ thống tập trung đạt chất lượng cao cho người dùng Một khó khăn nữa đặt ra với bài toán quản lý tài liệu liên trường đại học đó là số lượng các trường đại học là rất nhiều, và việc một trường mới đăng ký tham gia hệ thống phải không ảnh hưởng nhiều đến hệ thống đã có Giải pháp lưới dữ liệu có khả năng giải quyết được những khó khăn trên bằng cách kết hợp tài nguyên tính toán và khả năng lưu trữ sẵn có của các trường đại học, tạo thành một hệ thống chung.
Hơn nữa, với đặc tính khả mở sẵn có của lưới, khi một trường đại học hay một tổ chức muốn tham gia vào hệ thống, tổ chức đó chỉ việc triển khai hạ tầng lưới và đăng ký kết nạp vào lưới thông qua việc cài đặt các cơ chế bảo mật để tin tưởng lẫn nhau trong quá trình chia sẻ tài nguyên Hệ thống lưới với các dịch vụ quản lý và phát hiện tài nguyên có thêm đảm bảo việc thông tin về các tài nguyên trên hệ thống (kể cả mới tham gia) liên tục được cập nhật đến các site.
Tính ổn định, vững vàng & bảo mật cao
Trong những năm trở lại đây, tính toán lưới nói chung và lưới dữ liệu nói riêng đã có những bước tiến không ngừng trên phạm vi toàn thế giới Tính toán lưới cho phép kết hợp sức mạnh tính toán của nhiều máy tính đơn lẻ, tạo thành sức mạnh tính toán tổng hợp Các kiến trúc về lưới được phát triển và ứng dụng vào nhiều các dự án lớn trên thế giới, cho thấy khả năng ứng dụng vào thực tế của công nghệ lưới là rất lớn
Công nghệ tính toán lưới được xây dựng với mục tiêu kết hợp các máy tính có kiến trúc khác nhau Vì vậy, việc thay đổi, nâng cấp của các nút lưới không hề ảnh hưởng tới sự tham gia vào hệ thống của nút lưới đó Các thành phần trong lưới cũng độc lập với nhau tạo nên tính ổn định cho hệ thống, tránh lỗi thắt cổ chai cho toàn hệ thống
Khả năng tạo lập bản sao, dự phòng dữ liệu
Lưới cung cấp một khả năng rất mạnh cho hệ thống lưu trữ là tạo lập và quản lý bản sao Bản sao được tạo ra để nâng cao hiệu năng truy cập và tính sẵn dùng Đặc trưng cơ bản của lưới là các tổ chức tham gia nằm cách nhau về mặt địa lý và dữ liệu được phân bố phân tán trên các máy tính khác nhau Với việc tạo ra nhiều bản sao ở các vị trí khác nhau, người dùng có thể lựa chọn và thực hiện truy cập tới bản sao dữ liệu có hiệu năng cao hơn Việc lựa chọn bản sao dựa trên nhiều tiêu chí: khoảng cách giữa người dùng và tài nguyên, băng thông mạng, tải của máy lưu trữ v.v Các yếu tố trên đều có ảnh hưởng tới tốc độ và độ trễ từ người dùng đến máy lưu trữ dữ liệu Đặc trưng này là đặc biệt phù hợp với hệ thống quản lý tài liệu phân tán như GoodAs, bởi các trường đại học tham gia hệ thống có thể nằm rải rác trên khắp cả nước Bên cạnh đó, nếu các trường đại học, các tổ chức tin tưởng lẫn nhau và cho phép tài liệu của tổ chức mình được sao lưu dự phòng sang các tổ chức bạn sẽ làm tăng tính sẵn sàng và tin cậy của hệ thống Trong trường hợp tài nguyên trên nút lưu trữ dữ liệu nào đó không truy cập được, người dùng có thể truy cập tới bản sao của dữ liệu và tiếp tục thực hiện công việc mà không bị gián đoạn
Với những lý do trên, công nghệ tính toán lưới đã được lựa chọn làm hướng tiếp cận để thiết kế mô hình kiến trúc cho hệ thống, và được sử dụng để xây dựng hạ tầng tính toán và lưu trữ cho hệ thống GoodAs.
Mô hình kiến trúc của hệ thống
Với hướng tiếp cận dựa trên công nghệ tính toán lưới, giải pháp hệ thống đưa ra kết nối các tài nguyên tính toán, lưu trữ của các trường đại học thành một lưới dữ liệu, mỗi trường là một nút lưới Người dùng truy cập và sử dụng các chức năng của hệ thống thông qua cổng thông tin của mỗi trường Hình 1 minh họa Mô hình kiến trúc của hệ thống Mô hình này mô tả các module chức năng của hệ thống Các module này được phân chia thành các tầng, ứng với nhiệm vụ và phương thức hoạt động của chúng.
Hình 1.1 - Mô hình kiến trúc hệ thốngTheo đó, kiến trúc hệ thống gồm 4 tầng:
Tầng tài nguyên: là tầng thấp nhất của hệ thống, bao gồm tất cả các tài nguyên cơ bản, như các hệ thống tính toán, hệ thống lưu trữ của các trường đại học cũng như hạ tầng mạng kết nối các tài nguyên lại với nhau về mặt vật lý.
Tầng Middleware (hay tầng phần mềm nền): bao gồm rất nhiều các dịch vụ, các giao diện lập trình ứng dụng (APIs), cung cấp khả năng quản lý các tài nguyên tính toán & lưu trữ nằm phân tán Tầng middleware giúp triển khai hạ tầng lưới một cách toàn diện, tạo cơ sở để phát triển những ứng dụng trên nền lưới Hiện nay, Globus Toolkit là một trong những grid middleware được sử dụng rộng rãi nhất trong các dự án tính toán lưới.
Một số dịch vụ được cung cấp bởi tầng Middleware như:
- Hạ tầng bảo mật lưới
- Dịch vụ quản lý bản sao
- Dịch vụ thông tin hệ thống
- Dịch vụ quản lý giấy phép ủy quyền
Tầng dịch vụ ứng dụng: dựa trên cơ sở hạn tầng lưới (các dịch vụ nền, các APIs được cung cấp bởi tầng middleware), tầng dịch vụ ứng dụng cung cấp các dịch vụ lưới mà các nhà phát triển có thể triển khai, hướng ứng dụng & hướng người dùng, nhằm tận dụng sức mạnh mà hạ tầng lưới mang lại Trong phạm vi hệ thống quản lý tài liệu điện tử, tầng ứng dụng triển khai các dịch vụ tiện ích như quản lý tài liệu, tìm kiếm, đánh chỉ mục, so khớp văn bản…
Tầng trình diễn: được triển khai theo mô hình cổng thông tin trên nền lưới(grid portal), kết nối người dùng với hệ thống lưới Cung cấp một điểm truy nhập chung nhất, thông qua giao diện web, cho toàn bộ các tài nguyên tính toán, lưu trữ phân tán, cũng như các dịch vụ lưới tiện ích của hệ thống Có thể nói, tầng trình diễn làm trong suốt sự phức tạp của lưới tới người dùng.
Thiết kế các thành phần của hệ thống
Việc triển khai các thành phần của hệ thống được minh họa bởi sơ đồ sau:
Hình 1.2 - Mô hình các thành phần của hệ thống
1.3.1 Cổng thông tin trên nền lưới (Grid Portal)
Người dùng truy cập & sử dụng các tính năng của hệ thống bằng giao diện web, thông qua grid portal Portal đóng vai trò là tầng trung gian, giúp người dùng có thể triệu gọi và sử dụng các dịch vụ hay thậm chí truy cập thẳng đến các tài nguyên lưới.
Người dùng truy cập hệ thống thông qua portal của các trường, từ đó kết nối đến các dịch vụ lưới trên các site cục bộ và thực hiện các yêu cầu của người dùng, như tìm kiếm, so khớp văn bản…Với mỗi yêu cầu của người dùng, site cục bộ sẽ liên hệ với Information Server để lấy về thông tin các site khác trên hệ thống & đồng thời gửi các yêu cầu xử lý (như tìm kiếm hay so khớp một văn bản) tới các site đó Sau khi nhận được kết quả từ các site khác, site cục bộ phải tổng hợp kết quả và trả về cho người dùng qua portal Việc tổng hợp kết quả yêu cầu cần có các thông tin về dữ liệu mô tả từ các site, được hỗ trợ bởi dịch vụ dữ liệu mô tả từ Information Server.
1.3.2 Lưới dữ liệu hệ thống (GoodAs DataGrid)
Dữ liệu văn bản trong hệ thống được lưu trữ phân tán trên nhiều trường, do đó vấn đề là phải xây dựng một tầng dịch vụ lưu trữ theo mô hình lưới dữ liệu [3].Dịch vụ lưu trữ này kết nối các tài nguyên từ các trường, tạo thành một kho tài liệu chung nhất và trong suốt với người sử dụng, qua đó cung cấp các tiện ích trên dữ liệu như tìm kiếm, so khớp, download, upload Trên mỗi site - tương ứng với hệ thống máy tính của mỗi trường đại học, ngoài việc tổ chức cơ sở dữ liệu về tài liệu của người dùng cục bộ, còn triển khai hạ tầng lưới, cung cấp các tiện ích dưới dạng các dịch vụ lưới Các dịch vụ trên mỗi site kết nối với nhau qua môi trường lưới cho phép người dùng tiếp cận thông tin trên toàn hệ thống mà chỉ thông qua một giao diện dịch vụ duy nhất.
Hình 1.3 – Mô hình phân cấp truy nhập dữ liệu liên trường Bên cạnh đó, dựa trên một nền tảng dịch vụ rất mạnh từ tầng phần mềm nền là dịch vụ quản lý bản sao, lưới dữ liệu hệ thống GoodAs còn cung cấp khả năng nhân bản dữ liệu giữa các nút lưới giúp tăng độ tin cậy và tăng hiệu năng trong trường hợp download dữ liệu Để đảm bảo tính tự trị của mỗi trường thì việc nhân bản là do các trường tự nguyện Sau khi quản trị của hai trường thỏa thuận với nhau, họ có thể tạo bản sao tại nhiều trường cũng như nhân bản từng nhóm dữ liệu hoặc toàn bộ dữ liệu.
1.3.3 Máy chủ dịch vụ thông tin (Information Server) Để quản lý các tài nguyên trên môi trường phân tán như lưới, hệ thống triển khai một Information Server, trên đó cung cấp dịch vụ Giám sát & quản lý thông tin toàn hệ thống (Monitoring & Discovery Service) và Dịch vụ dữ liệu mô tả, là nơi lưu trữ tập trung dữ liệu mô tả về văn bản được cập nhật từ tất cả các trạm Thông qua Information Server, các site sẽ nắm được thông tin về hệ thống (các site tham gia khác, tình trạng hoạt động, các dịch vụ), đồng thời sử dụng dịch vụ dữ liệu mô tả trong việc tổng hợp các kết quả tìm kiếm, so khớp từ các site khác.
1.3.4 Mô đun Quản lý ủy quyền lưới (Credential Management)
Một tính năng nữa mà hệ thống hỗ trợ đó là khả năng truy cập thẳng đến các tài nguyên lưới trông qua giao diện portal Nếu như việc đăng nhập vào portal và sử dụng các tính năng của hệ thống thông qua triệu gọi các dịch vụ lưới là khá dễ dàng với người dùng thì việc truy cập đến các tài nguyên lưới là không hề dễ dàng.
Với hạ tầng bảo mật lưới được xây dựng dựa trên cơ sở hạ tầng khóa công khai PKI, người dùng muốn truy cập vào hệ thống lưới phải có giấy ủy nhiệm lưới.Giấy ủy nhiệm lưới là một cặp gồm giấy chứng nhận và một khóa mã hóa còn gọi là khóa bí mật Giấy chứng nhận một thực thể là kết nối giữa tên định danh của thực thể đối với khóa bí mật của họ Sự kết nối này được thực hiện nhờ chữ kí điện tử của bên thứ ba đáng tin cậy gọi là nhà thẩm quyền (hay CA).
Dựa trên hạ tầng bảo mật đó, các thực thể trên lưới xác thực nhau qua cơ chế bắt tay ba bước Khi truy xuất bất kỳ nguồn dữ liệu nào, người dùng phải thực hiện các bước sau:
- Trình cho tài nguyên giấy chứng nhận để chứng tỏ mình là người sử dụng thực sự có thẩm quyền trên lưới
- Tài nguyên cũng phải trình ra một giấy chứng nhận, để người dùng tin tưởng đây là tài nguyên thực sự đã được chứng nhận, không phải là giả mạo
- Khi tin tưởng nhau, quá trình truy xuất tài nguyên được diễn ra
Khó khăn đặt ra không chỉ ở quy trình xác thực phức tạp mà còn ở việc không phải lúc nào người dùng lưới cũng có những giấy ủy quyền bên mình Mô đun quản lý ủy quyền lưới được xây dựng nhằm giải quyết các vấn đề trên, cung cấp cho người dùng một giao diện bảo mật thống nhất, trong đó người sử dụng được xác định bằng hai thông tin là tài khoản và mật khẩu truy cập Giải pháp đưa ra, thực chất là sử dụng kho lưu trữ giấy phép ủy quyền Kho lưu trữ này không chỉ đóng vai trò lưu trữ giấy ủy quyền lưới của người dùng, mà còn hỗ trợ họ trong việc thực hiện các quy trình xác thực một cách tự động Người dùng chỉ việc trình mật khẩu truy nhập đến giầy ủy quyền của họ đặt trên kho, các quy trình xác thực còn lại sẽ được thực hiện một cách tự động & trong suốt đến người dùng.
Hình 1.4 – Quản lý ủy quyền lưới sử dụng kho lưu trữ ủy quyền
1.3.5 Mô đun quản lý đăng ký lưới (VOMS Module)
Khi một site mới gia nhập lưới, ngoài việc phải triển khai các hạ tầng tính toán lưới như Global Toolkit, Portal , site đó còn phải đăng ký hoạt động với lưới, mà thực chất là thông qua việc đăng ký người dùng lưới mới, được thực hiện bởi các người quản trị của mỗi site Ở các hệ thống lưới vừa và nhỏ, người dùng lưới sẽ phải tự đăng ký sử dụng tài nguyên với từng cụm máy thực thi Quá trình này là thủ công, đòi hỏi tốn nhiều thời gian và công sức cho cả phía người dùng cũng như người quản trị các cụm máy thực thi.
Hình 1.5 - Mô hình quản lý người dùng với VOs Ở hệ thống quản lý tài liệu, nơi có sự tham gia của nhiều đơn vị, kéo theo số lượng lớn người dùng cũng như nhiều loại tài nguyên, thì quy trình thủ công như vậy không thể đáp ứng được Yêu cầu đặt ra là: cần phải nâng mức quản lý người dùng lên 1 cấp (Hình 2.5) bằng cách gom nhóm việc đăng ký sử dụng tài nguyên vào một đầu mối thống nhất cho toàn bộ lưới, hệ thống sẽ phải tự động cập nhật các người dùng trên site này lên toàn bộ hệ thống tài nguyên bên dưới Quy trình đăng ký và cập nhật phải đảm bảo tính trong suốt cho lưới với người dùng Từ các yêu cầu trên, giải pháp được chúng tôi lựa chọn là: hệ thống quản lý thành viên tổ chức ảo VOMS [4] (Virtual Organization Membership Service).
Xét trên quan điểm của VO (Virtual Organization), việc người dùng tham gia lưới cũng chính là tham gia VO của tổ chức lưới; việc người dùng đăng ký lưới cũng chính là đăng ký vào VO Để đáp ứng các yêu cầu về tính trong suốt với lưới cho người dùng, VOMS, hệ thống quản lý thành viên tổ chức ảo, được phát triển để hiện thực hóa quy trình quản lý người dùng trong môi trường lưới Với việc áp dụngVOMS, quy trình đăng ký mới một site với hệ thống được đơn giản hóa rất nhiều.Người quản trị của site đó chỉ việc truy cập vào trang đăng ký của VOMS Server của hệ thống để đăng ký người dùng lưới cho site mình, hệ thống sẽ tự động cập nhật thông tin người dùng lưới mới trên tất cả các trạm thực thi khác trên lưới.
Vị trí của thành phần portal trong hệ thống
Như đã nói trong các phần trước, những hệ thống xây dựng trên công nghệ lưới thường có độ phức tạp cao và rất khó để triển khai rộng rãi ra bên ngoài Hệ thống đã xây dựng cũng không phải là một ngoại lệ hơn nữa phải đưa những kết quả của hệ thống phổ biến ra bên ngoài cho người dùng Để giải quyết khó khăn này,giải pháp được lựa chọn là xây dựng một portal cho hệ thống, cung cấp khả năng truy cập hệ thống qua trình duyệt web.
Portal được xây dựng phải trình diễn các kết quả hệ thống sinh ra cho người dùng, cho phép người dùng sử dụng các công cụ hệ thống cung cấp và phải tuân thủ các quy tắc bảo mật lưới Với mục đích như vậy, mô hình thành phần của portal như sau:
Hình 1.6 – Mô hình các thành phần của portal
Cung cấp khả năng quản lý người dùng hệ thống, cho phép thêm mới, xóa, sửa người dùng
Chức năng này cho phép cấu hình các tham số cho portal, triển khai hoặc loại bỏ chức năng trên portal, tùy theo mong muốn triển khai Ngoài các chức năng chính ra, portal phải được thiết kế trực quan, dễ sử dụng, tăng tính tương tác giữa người dùng với hệ thống Hơn nữa, vì portal được xây dựng dựa trên Gridsphere Portal Framework nên cần sử dụng triệt để các thành phần cũng như dịch vụ sẵn có.
1.4.2 Truy cập hệ thống lưới
Với đặc điểm của lưới là yêu cầu cao về tính bảo mật, người dùng muốn truy cập lưới phải thông qua một máy tính cài đặt môi trường lưới hoặc sử dụng dòng lệnh truy cập từ xa Điều này gây một số phiền toái cho người dùng như giao diện không thân thiện hay tính không cơ động Để giải quyết vấn đề trên, portal hệ thống lưới sẽ hỗ trợ người dùng truy cập hệ thống lưới và thực hiện các công việc quản trị lưới thông qua giao diện web của portal Người dùng chỉ việc đăng nhập vào portal từ bất kỳ đâu thông qua giao diện web, lấy giấy phép ủy quyền truy cập lưới là có thể truy cập và thực hiện các công việc trên lưới (quản lý tệp, đệ trình công việc) như người dùng lưới có ủy quyền tương ứng.
Hệ thống cung cấp khả năng tìm kiếm tài liệu theo nội dung Người dùng nhập vào một câu truy vấn, hệ thống sẽ tiến hành tìm kiếm trên tất cả các site (các trường đại học tham gia) và trả lại kết quả cho người dùng (danh sách các tài liệu liên quan đến câu truy vấn đó) một cách trực quan Người dùng có thể lựa chọn download hoặc xem tài liệu đó trực tiếp ngay trên portal.
Khi người dùng xem một văn bản, hệ thống sẽ tự động tiến hành so khớp văn bản đó với các văn bản khác trong kho dữ liệu hiện có trên tất cả các site, tìm ra các văn bản tương tự với văn bản mà người dùng lựa chọn xem, từ đó đưa ra danh sách các văn bản tương tự để hỗ trợ người dùng trong quá trình tra cứu và tìm ra tài liệu mong muốn.
Với mỗi tài liệu người dùng upload lên, hệ thống sẽ tiến hành so khớp với các tài liệu trong kho dữ liệu hiện có, sử dụng giải thuật so khớp dựa trên ngữ nghĩa để tìm ra các tài liệu tương tự, trùng khớp nhất & trả về cho người dùng dưới dạng danh sách các tài liệu liên quan Tính năng này có thể áp dụng để hỗ trợ giảng viên phát hiện việc sao chép của các tài liệu mà sinh viên nộp.
1.4.5 Quản lý không gian cá nhân
Cung cấp chức năng quản lý không gian cá nhân của người dùng, các thông tin cá nhân được quản lý bao gồm mật khẩu, email, người dùng hoạt động trong tổ chức nào,
Bên cạnh đó, mỗi người dùng sẽ có một kho tài liệu riêng, hệ thống hỗ trợ họ trong việc quản lý các tài liệu này Cho phép họ xem trực tiếp trên portal, hay download về máy, chỉnh sửa các thuộc tính (tên, thẻ, chế độ truy cập ,…) cho các tài liệu.
TỔNG QUAN VỀ GRID PORTAL
Tổng quan lưới & portal cho lưới
Tính toán lưới [2], hiểu một cách đơn giản là sự phát triển tiếp theo của tính toán phân tán Mục đích là tạo ra một máy tính ảo lớn mạnh từ một tập lớn các hệ thống không đồng nhất nhằm nâng cao khả năng tính toán, chia sẻ các tài nguyên khác nhau.
Như vậy tính toán lưới hướng đến việc chia sẻ và sử dụng hiệu quả các nguồn tài nguyên thuộc về nhiều tổ chức trên một quy mô rộng lớn (thậm chí là quy mô toàn cầu) Chính các công nghệ mạng và truyền thông phát triển mạnh mẽ trong những năm qua đã biến những khả năng này dần trở thành hiện thực Các nghiên cứu về tính toán lưới đã và đang được tiến hành là nhằm tạo ra một cơ sở hạ tầng lưới cho phép dễ dàng chia sẻ và quản lý các tài nguyên đa dạng và phân tán trong môi trường lưới
Hình 2.7 - Minh hoạ về tính toán lưới
Hình 2.1 là một ví dụ về lưới, như một mạng liên kết các tài nguyên phân tán về mặt địa lý, các tài nguyên rất phong phú, đa dạng, bao gồm tập các siêu máy tính, các thiết bị truyền thông vệ tinh, các kho lưu trữ, các cụm (cluster) tính toán hiệu năng cao, các tổ chức liên kết ảo trong lưới Người dùng trong lưới cũng hết sức đa dạng, từ các người dùng thông thường, cho tới các người dùng chuyên dụng, có kiến thức sâu về chuyên môn như các nhà nghiên cứu, các nhà khoa học Và lưới chính là sự tập hợp, chia sẻ, chọn lựa các nguồn tài nguyên này thông qua một chính sách thống nhất, phân phối các siêu máy tính và các hệ cluster để đạt hiệu năng tốt hơn trong tương lai.Sau đây là một số đặc điểm của tính toán lưới:
- Các tài nguyên hết sức đa dạng, không đồng nhất, tài nguyên ở đây được hiểu theo nghĩa tổng quát Đó có thể là các tài nguyên phần cứng: tài nguyên tính toán, tài nguyên lưu trữ, các thiết bị đặc biệt khác ; các tài nguyên phần mềm: các CSDL, các phần mềm đặc biệt và đắt giá ; các đường truyền mạng Các tài nguyên này có thể rất khác nhau về mặt kiến trúc, giao diện, khả năng xử lý Việc tạo ra một giao diện thống nhất cho phép khai thác và sử dụng hiệu quả các nguồn tài nguyên này là hoàn toàn không dễ dàng.
- Các tài nguyên không chỉ thuộc về một tổ chức mà thuộc về rất nhiều tổ chức tham gia lưới Các tổ chức chỉ phải tuân thủ một số quy định chung khi tham gia vào lưới còn nói chung là hoạt động độc lập Do vậy các tài nguyên này đều có quyền tự trị tương đối Các tổ chức khác nhau có chính sách sử dụng hay cho thuê tài nguyên của họ khác nhau và do vậy cũng gây khó khăn cho việc quản lý.
- Các tài nguyên phân tán rộng khắp về mặt địa lý, chính từ đặc điểm này mà phải có các cơ chế quản lý phân tán.
Từ thủa ban đầu của World Wide Web, ở một thời điểm người dùng chỉ có thể truy cập được một trang web khi đó nảy sinh ra mong muốn làm thể nào để có thể kết nối được tất cả mọi người thông qua truy cập mạng hay kết nối internet, tuy nhiên mong muốn đó có vẻ như không tưởng vì gặp nhiều khó khăn về công nghệ. Thời gian sau, nhiều công nghệ mới nổi lên như java, java script, các ứng dụng dạng server cung cấp nhiều chức năng, dễ sử dụng và có độ tin cậy cao trở thành nền tảng của kết nối internet toàn cầu, là công cụ đắc lực để biến mong muốn trước đây thành hiện thực.
Ngày nay, các công ty và tổ chức sử dụng internet cần nhiều hơn thế, họ muốn cùng một lúc người dùng có thể duyệt nhiều trang web khác nhau mà không phải trải qua quá nhiều các thao tác phức tạp, và portal chính là câu trả lời cho vấn đề này.
Vậy portal là gì? Portal là một ứng dụng chạy trên nền web mà có khả năng tích hợp và cá nhân hoá các ứng dụng, thông tin và các dịch vụ cộng tác Portal cung cấp cho người dùng một điểm truy cập đơn tới các nguồn dữ liệu, nội dung và các dịch vụ đa dạng của một đơn vị nghiệp vụ (business) hay các tài nguyên trên mạng internet.
Theo JSR 168 định nghĩa Portal: Là một ứng dụng Web thường bao gồm các tính năng: Cá nhân hóa giao diện người dùng (Personalization), Đăng nhập một lần (Single sign-on), tích hợp thông tin từ nhiều nguồn khác nhau và đưa vào tầng trình diễn (Presentation) của hệ thống thông tin Tích hợp thông tin nghĩa là tích hợp nội dung từ nhiều nguồn khác nhau vào trong một trang Web Portal có tính năng cá nhân hóa linh hoạt để người dùng có thể tùy biến nội dung theo sở thích Một số portal nổi tiếng trên internet như Excite, Yahoo, American Online, CNN.com hay Frendster vv.
Tuy nhiên, một Website bình thường cũng có thể cung cấp các truy cập tới các nguồn thông tin trên Internet và chứa các ứng dụng hợp tác nhờ vào các liên kết Vậy Portal khác một Website thông thường ở điểm nào? Portal có khả năng cá nhân hóa thông tin theo nhu cầu người dùng Chẳng hạn, một người dùng thường quan tâm đến các lĩnh vực thể thao, thời sự và các ứng dụng như email, chat, … có thể khai báo các dịch vụ và các nguồn thông tin chỉ thuộc về hai lĩnh vực thể thao và thời sự này trên giao diện Portal Hình ảnh dưới đây là ví dụ về một portal
Hình 2.8 - Minh họa một portal
Portal cho phép hiển thị các ứng dụng hay các trang web trong những cửa sổ riêng của nó gọi là các portlet, một cửa sổ trình duyệt có thể chứa nhiều portlet Ví dụ một trang portal ở trên có thể chứa các portlet login, tìm kiếm, hiển thị các feed mới, hay quản lý các cuộc hẹn với một ứng dụng dạng lịch.
Portlet được bố trí trên các trang của portal, người dùng có thể duyệt từ portlet này đến portlet khác một cách dễ dàng thông qua các tab, menu kéo thả vv…Portal trong hình trên bao gồm các trang chính như là Blog, Games, Tin tức,
Với các trang web tĩnh và các trang web động truyền thống, các bố cục để hiển thị thông tin được thiết kế ngay từ ban đầu Sau khi website đã được phát triển, việc chỉnh sửa nội dung thông tin có thể dễ dàng thực hiện, nhưng việc chỉnh sửa về mặt bố cục lại rất khó khăn Mặt khác khả năng mở rộng website về chức năng là hạn chế Muốn thay đổi cách bố trí thông tin hay mở rộng thêm một chức năng nào đó cho website thì thường phải sửa đổi thiết kế và cấu trúc chương trình.
Hình 2.9 - Các thành phần chức năng của portal
Trong sơ đồ trên, ngoài thành phần lõi của portal còn có thêm các thành phần phát triển thêm, các thành phần được phát triển thêm này tùy thuộc vào mục đích của tổ chức sử dụng portal Portal được truy nhập thông qua các trình duyệt web.
Các dịch vụ cơ bản của một portal:
- Quản lý các đối tượng người dùng : Có ba loại đối tượng người dùng: người dùng đăng ký chỉ có thể xem các nội dung thông tin được phép; người dùng có quyền hiệu chỉnh, cập nhật các nội dung thông tin và người quản trị portal
- Quản lý phân quyền : Với mỗi đối tượng sử dụng sẽ có các quyền tương ứng với các chức năng
Các công nghệ xây dựng portal cho lưới
Cùng với sự phát triển mạnh mẽ của tính toán lưới, Grid Portal càng chứng minh được vai trò của mình trong việc đưa tính toán lưới vào đời sống cộng đồng. Chính vì tầm quan trọng của nó mà đã có nhiều dự án xây dựng Grid Portal Framework được triển khai, kết quả là cũng có không ít Portal Framework ra đời để phục vụ cho việc xây dựng Grid Portal Trong phạm vi đồ án xin được giới thiệu đôi nét về một số Grid Portal Framework hiện đang được cộng đồng lưới đánh giá cao.
2.2.1 Gridsphere Portal Framework Đây là một trong nhưng framework khá quen thuộc đối với các nhà nghiên cứu về lưới, không chỉ có giao diện đẹp, dễ sử dụng, Gridsphere còn có cộng đồng sử dụng lớn, nhiều dự án liên quan được triển khai, nâng cấp phiên bản mới đều đặn Hơn thế nữa, Gridsphere [7] còn hộ trợ tập hợp các portlet phục vụ cho các dịch vụ lưới gọi là các grid portlet, tuy nhiên có một điểm đáng tiếc là phiên bản mới nhất của các grid portlet này mới chỉ tương thích với thư viện lập trình của Globus Toolkit 3.0 Một đặc điểm quan trọng của Gridsphere là các portlet của nó tương thích hoàn toàn với websphere portlet của IBM và chuẩn JSR 168.
2.2.2 Công cụ phát triển portal cho lưới
Framework này đã gây được tiếng vang lớn đối với cộng đồng phát triển lưới trong việc cố gắng cung cấp các thành phần có khả năng tái sử dụng cho phép truy cập dịch vụ lưới dựa trên Globus Toolkit Grid Portal Development Kit (GPDK)
[10] có thể coi như một portal có thể được mở rộng và cải tiến các chức năng về quản lý file, đệ trình công việc và khả năng giám sát công việc Chủ trương củaGPDK là tách riêng phần logic và trình diễn, việc triển khai các chức năng mới có thể được thực hiện dễ dàng hơn nhờ việc tuân theo các công thức mô tả trước.Chính vì vậy, để sử dụng được GPDK người dùng cần phải được đào tạo một cách bài bản, để có thể xây dựng portal dựa trên GPDK người phát triển phải hiểu được mã nguồn từ đó xây dựng thêm các tính năng mới Một hạn chế nữa của GPDK là khả năng tái sử dụng thấp trên tầng trình diễn Người phát triển phải tự mình tạo ra các trang trình diễn trên portal.
2.2.3 Portal cộng tác khoa học vật lý thiên thể
Portal được phát triển với mục đích cung cấp một web portal cho cộng đồng vật lý học thiên thể cho phép biên dịch và thực thi các ứng dụng mô phỏng trên các nguồn tài nguyên lớn Về mặt thiết kết, ASCP [6] cũng có thiết kế tương tự với GPDK nhưng tính năng và dịch vụ của nó hướng tới mục đích ban đầu nhiều hơn, nó cho phép các nhà vật lý học sử dụng các ứng dụng mô phỏng trên các nguồn tài nguyên phân tán thông qua giao diện web thay vì sử dụng dòng lệnh như trước đây. Tuy nhiên, điểm hạn chế của nó cũng giống với GPDK là việc triển khai quá phức tạp, muốn xây dựng portal dựa trên ASCP cần phải trải qua các khóa học hết sức bài bản.
Như vậy, đứng trên góc độ dễ sử dụng và kết thừa thì Gridsphere Portal Framework là công cụ hỗ trợ xây dựng portal nhanh hơn các bộ framework khác, hơn nữa do tương thích hoàn toàn với chuẩn JSR 168 và portlet của websphere nên không sợ tụt hậu về công nghệ khi sử dụng Gridsphere để phát triển portal cho các ứng dụng lưới Trong phần sau, đồ án sẽ trình bày chi tiết hơn về framework này.
Trong chương này chúng ta đã có một cái nhìn bao quát về lưới cũng như portal dùng trong lưới Công nghệ lưới tuy không còn mới mẻ nhưng chính sự phức tạp của nó đã gây không ít trở ngại trong việc phổ biến lưới tới cộng đồng Những ứng dụng dựa trên lưới ít được phổ biến vì nó đòi hỏi người dùng phải có kiến thức chuyên sâu về lưới, tuy nhiên nhược điểm này có thể khắc phục bằng cách xây dựng một portal cho hệ thống để che dấu đi kiến thức phức tạp bên dưới, không đòi hỏi người dùng có kiến thức chuyên sâu, cho phép họ truy cập tới hệ thống từ bất cứ đâu bỏ lại các khó khăn về truy cập mạng, tường lửa, vv
Có thể nói portal chính là một công cụ hữu hiệu để phổ biến các ứng dụng trên lưới, giúp cho cộng đồng sử dụng lưới trở nên đông đảo hơn.
GRIDSPHERE – CÔNG NGHỆ XÂY DỰNG PORTAL CHO LƯỚI
Giới thiệu Gridsphere
Gridsphere là một dự án đầu tiên được phát triển bởi EU Gridlab năm 2002 nhằm một số mục đích chính đó là tạo ra một portal framwork mở, chuẩn và thích hợp nhất trước nhu cầu cần thiết của cộng đồng người sử dụng lưới, mang đến sự kết hợp của hai công nghệ là Web và Grid và cuối cùng là tạo ra cộng đồng người sử dụng và các nhà phát triển trên framwork đó để hướng đến những mục tiêu cao hơn.
Trước Gridsphere không phải là dự án đầu tiên xây dựng portal cho lưới, trước đó cũng đã có một số dự án như GridPortal Development KIT, HotPage, Astrophysics Simulation Collaboratory, song hành với chúng là các khái niệm về portlet, điển hình trong số đó là jetspeed 1.0.
Dưới đây là một số mốc phát triển chính của Gridsphere.
- Mùa xuân năm 2002: Hoàn thiện tài liệu phân tích và thiết kế hệ thống dựa trên các portlet sẵn có ở thời điểm đó.
- Tháng 8/2002 Viết dòng code đầu tiên.
- Tháng 12/2002 sử dụng nguyên mẫu portal mượn từ portlet API của IBM Websphere.
- Năm 2003 hoàn thiện các chức năng của portal với các core portlet ( các core portlet này sẽ được để cập trong phần sau), mô hình dịch vụ phức tạp và thư viện thẻ trực quan (visual tag library).
- Tháng 1/2004: Cài đặt chuẩn JSR 168 portlet API.
- Tháng 2/2004: Gridsphere lần đầu tiên xuất hiện trong một bài báo của IBM Network Developers.
- Tháng 8/2004: Gridsphere tương thích với công cụ phát triển tích hợp của SUN.
- Tháng 11/2004: OGCE ( Open Grid Computing Enviroment) tương thích hoàn toàn với JSR 168.
- Tháng 12/2005: Tổ chức phát triển Gridsphere trở thành thành viên của ExpertGroup, nghiên cứu và phát triển để đưa ra chuẩn portlet mới JSR 268.
Khi phát triển grid portal dựa trên nền tảng của Gridsphere ta hoàn toàn có thể tin tưởng và yên tâm vì Gridsphere có cộng đồng người sử dụng và phát triển rất đông đảo Mailing list của Gridsphere có hơn 250 chuyên gia sẵn sàng trả lời bất kỳ câu hỏi nào của bạn, hơn nữa đã có rất nhiều dự án đã, đang được phát triển dựa trên nền tảng của Gridsphere:HPC Europa, D-Grid, P-Grade, BIRN, Telescience, Australian Virtual Observatory, UK E-Science Gridsphere hỗ trợ đa ngôn ngữ như như tiếng Anh, tiếng Trung Quốc, Tiếng Nhật, tiếng Ý, Hiện chưa có tiếng Việt nhưng đồ án đã việt hóa framework này và gửi lại nhóm phát triển Gridsphere, hy vọng họ sẽ cập nhật trong phiên bản mới Gridshere cũng được nâng cấp phiên bản đều đặn Với sự phát triển mạnh mẽ như vậy, hàng năm có rất nhiều các hội thảo về Gridsphere diễn ra ở nhiều nước trên thế giới.
Gridsphere là phần mềm mã nguồn mở hoàn toàn, bất kỳ ai quan tâm cũng có thể tải mã nguồn tại trang chủ của dự án: http://www.gridsphere.org hoặc trên hệ thống svn của dự án ở địa chỉ http://svn.gridsphere.org.
Kiến trúc Gridsphere
Gridsphere cung cấp thực thi các portlet, trình chứa portlet, tập hợp các dịch vụ cốt yếu và các portlet được trình bày dưới đây:
Hình 3.11 - Mô hình kiến trúc Gridsphere
Hình vẽ trên thể hiện các thành phần chính, đó là một trình chứa servlet kết hợp với một server ứng dụng web Một yêu cầu tới portal sẽ được kích hoạt bởi trình duyệt web của người dùng sẽ gọi tới Gridsphere servlet và hành động giống như người điều vận điều khiển tới bộ máy xếp đặt chịu trách nhiệm tô chát đưa ta các kết quả thích hợp tới trình duyệt web của người dùng Cả Gridsphere servlet và bộ máy xếp đặt đều sử dụng các dịch vụ nhân, bao gồm cả cơ quan đăng ký portlet, để triệu gọi chính xác các portlet ở trang portal hiện tại của người dùng.
Các xếp đặt trên portal được định nghĩa bởi các file miêu tả XML, ví dụ dưới đây là file XML hiển thị banner của portal
Hình 3.12 - File mô tả các xếp đặt trong Gridsphere
Cấu trúc lồng nhau của file mô tả không tạo ra sự rắc rối, mà ngược lại cho phép người dùng dễ dàng chỉnh sửa hoặc làm theo các xếp đặt này.Mỗi một thành phần xếp đặt này được định nghĩa trong Gridsphere, ví dụ như PortletFrame, PortletTabbedPane, vv mỗi thành phần biểu thị một xếp đặt của portlet trên portal.
Sơ đồ trình tự UML dưới đây thể hiện một portlet được tô chát và hiển thị trên trang portal như thế nào:
Hình 3.13 - Biểu đồ trình tự hiển thị một portlet của Gridsphere
Sơ đồ trên cho thấy một trang portal đơn giản chỉ gồm một tabbed Pane, trong tabbedPane này chỉ có một tab, và trong tab này cũng chỉ có một frame
Thông thường, một trang portal của Gridsphere gồm hai tabbedPane, mỗi tabbed pane này lại có nhiều tab và frame khác giúp điều hướng dễ dàng giống như portal của Amazon hay trang web của Apple
Như đã trình bày ở trên, một tình huống được gây ra bởi một lần kích chuột lên một thành phần thực thi hành động trên các xếp đặt, khi đó nó sẽ liên hệ tới gốc của cây xếp đặt, sau đó thành phần của cây xếp đặt sẽ được tô chát lại, tuy nhiên chỉ có những thành phần nằm trên tab gây ra hành động của cây xếp đặt chứ không phải tất cả các thành phần trên cây đều được tô chát lại.
Bộ máy xếp đặt hỗ trợ khả năng mềm dẻo và tùy chỉnh toàn phần, những thành phần mới có thế được thêm vào rất đơn giản bằng cách sử dụng một thành phần miêu tả XML và lớp thành phần tương ứng thực thi giao diện PortletComponent Thực tế đã cho thấy mô hình bộ máy sử dụng trên Gridsphere đã được mở rộng bởi các dự án phục vụ cho các mục đích xác định sử dụng các thành phần trực quan để tô chát iFrame, XHTML và các xếp đặt khác.
Cũng có thể thấy rằng các portal khác không hỗ trợ việc tạo ra và sử dụng thành phần xếp đặt, hầu hết mới chỉ dừng lại ở chỗ cho phép tùy chỉnh thủ công và giới hạn ở một mức nào đó giống như chỉnh sửa các trang web mẫu, chúng không hỗ trợ người phát triển tạo ra và sử dụng các thành phần xếp đặt mới và trình diễn trên portal.
3.2.2 Mô hình portlet của Gridsphere
Khi dự án xây dựng Gridsphere được đề xuất thì chuẩn JSR 168 Portlet API chưa ra đời, lúc này có hai lựa chọn đề xây dựng Gridsphere Hướng thứ nhất là dựa trên dự án mã nguồn mở Jakarta Jetspeed để phát triển, thực tế ở thời điểm đó Jetspeed là công cụ xây dựng portal mã nguồn mở nổi tiếng và đã có những bước phát triển rất đáng kể, nó đang cố gắng xây dựng nên mô hình portlet API Tuy nhiên, nhìn xa hơn thì Jetspeed phụ thuộc và rất nhiều các dự án nguồn mở khác của Jakarta, mà các dự án này thì thay đổi rất nhanh, đơn cử như Jakarta Turbine Thêm vào đó, portlet API được cung cấp khá phức tạp và không đủ mạnh giúp phát triển portlet dễ và đóng gói các portlet của nhà cung cấp portal khác.
Tuy nhiên, khi xem xét IBM Websphere 4.1 Portlet API đội dự án đã nhìn thấy giải pháp cho mình, tài liệu miêu tả portlet API của Websphere phần nào dựa trên portlet API của Jetspeed nhưng đã có những cải tiến đáng kể, điều này khiến nhóm phát triển Gridsphere tin tưởng rằng mô hình portlet API tương lai sẽ tương tự như Websphere API Do đó, nhóm phát triển đã lựa chọn giải pháp dựa trên java doc và hướng dẫn Websphere cho các nhà phát triển như là điểm khởi đầu Trong năm đầu tiên, họ đã bổ xung Websphere Portlet API và xây dựng các portlet lõi của Gridsphere nhằm phục vụ cho mô hình đã xác định, một trong những điểm thuận lợi của Websphere là mô hình đóng gói rõ ràng, cho phép tích hợp portlet của nhà cung cấp thứ ba như Web Archive hay WAR file theo cách tương tự như đặc tả Servlet API.
Theo mô hình portlet của Websphere thì không có giao diện định nghĩa một portlet, để xây dựng portlet mong muốn ví dụ MyPortlet người phát triển phải kế thừa từ lớp trừu tượng AbstractPortlet như trong biểu đồ dưới đây
Hình 3.14 – Sơ đồ lớp khi phát triển một portlet của Gridsphere
Mô hình portlet của Websphere tạo ra sự phân biệt giữa các portlet ứng dụng và portlet cụ thể, trong khi portlet cụ thể là một thể hiện tham số của portlet ứng dụng Ví dụ một portlet trích dẫn kho có thể có nhiều thể hiện cụ thể, mỗi thể hiện biểu diễn cho các tham số khác nhau là các trích dẫn khác nhau của một kho hoặc nhiều kho khác nhau Như đã trình bày trong biểu đồ trình tự, một portlet ứng dụng có nhiều thể hiện cụ thể của nó được khởi tạo trong phương thức init() và initConcrete() Tương tự, các portlet được hủy qua phương thức destroyConcrete() và destroy() Những phương thức vừa nên chỉ được triệu gọi duy nhất một lần trong xuốt vòng đời của portlet trong khi phương thức actionPerformed() và doView() được triệu gọi mỗi khi có yêu cầu của trình duyệt phía khách Phương thức actionPerformed() được triệu gọi mỗi khi có một hành động xảy ra trên portlet,thông thường như là đệ trình form, kích chuột vào một nút nhấn hay một siêu liên kết Phương thức doView() thì được gọi thường xuyên hơn mặc dù mỗi portlet thường có ba chế độ khác nữa là sửa, cấu hình và giúp đỡ tương ứng với các phương thức doEdit(), doConfigure() và doHelp().
Giống như xếp đặt của portal được định nghĩa trong một file miêu tả thì cũng có một file miêu tả portlet là portlet.xml, định nghĩa các thông tin cấu hình và cung cấp cho trình chứa portlet những chi tiết cần thiết cho một thể hiện Cả PortletConfig và PortletSetting đều được sử dụng trong quá trình khởi tạo portlet, chúng chứa thông tin đọc được từ file triển khai mô tả của portlet.
JSR 168 Portlet API thì tương tự với Websphere portlet API, tuy nhiên một portlet trong JSR 168 được định nghĩa bởi một giao diện portlet và được cài đặt bởi một lớp dựa trên GenericPortlet giống như mô tả theo sơ đồ dưới đây:
Hình 3.15 - Sơ đồ lớp khi phát triển portlet JSR 168.
Một người phát triển Portlet kế thừa lớn GenericPortlet để tạo ra MyPortlet như trong ví dụ Giao diện chu kỳ sống được cung cấp trong JSR 168 tương tự với Websphere API, tuy nhiên không có sự phân biệt giữa portlet cụ thể và portlet ứng dụng Chỉ duy nhất một portlet tồn tại và được khởi tạo Thay vì sử dụng phương thức actionPerformed() để xử lý các hành động, JSR 168 sử dụng phương thức tương tự là processAction() Không khó để tạo ra sự tương ứng giữa Websphere API và JSR 168 mặc dù Websphere hỗ trợ thêm một vài giao diện khác cho thông điệp portlet và tốt hơn về vấn đề địa phương hóa.
Sau khi JSR 168 được ghi nhận, nhóm phát triển Grisphere đối mặt với vấn đề phải làm thế nào để hỗ trợ JSR 168 Portlet API mà vẫn quản lý các portlet được tạo ra theo mô hình trước đó, để giải quyết cần hoàn thành danh sách công việc sau:
Triển khai Gridsphere
3.3.1 Các gói phần mềm yêu cầu
Các gói phần mềm yêu cầu
Apache-Ant 1.6.5: Download gói binary của ant tại: http://ant.apache.org Tomcat: Download phiên bản tomcat mới nhất tại: http://tomcat.apache.org.
JDK (Java Development Kit): Download phiên bản JDK mới nhất tại địa chỉ http://java.sun.com
Gridsphere:Phiên bản mới nhất ở thời điểm này là 2.2.7, có thể tải mã nguồn và các tài liệu về Gridsphere tại địa chỉ http://www.gridsphere.org eclipse: Download phiên bản mới nhất tại www.eclipse.org
Với eclipse chỉ cần giải nén ở một thư mục tùy chọn trên ổ cứng.
Ngoài ra, nếu bạn muốn dùng mysql thay cho Hsql thì bạn cần download mysql server và driver (mysql-connector-java-5.0.4-bin.jar cho nó tại trang web http://www.mysql.com sau đó đưa file mysql-connector-java-5.0.4-bin.jar vào thư mục CATALINA_HOME/common/lib.
- Trong tài liệu này cài đặt JDK tại /usr/local/java
- Tomcat được cài đặt tài /usr/local/tomcat
- Ant được cài đặt tại /usr/local/ant
Chuyển sang quyền root bằng lệnh su, nhập root's password.
Sửa file /etc/profile: gedit /etc/profile, và thêm vào các dòng sau:
ANT_HOME=/usr/local/ant
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/ant
PATH=JAVA_HOME/bin:$PATH
PATH=ANT_HOME/bin:$PATH
PATHALINA_HOME/bin:$PATH export PATH CATALINA_HOME JAVA_HOME ANT_HOME
Sau khi đã thêm các biến môi trường vào file /etc/profile dùng lệnh
/etc/profile để cập nhật biễn môi trường
Sau lệnh cập nhật có thể dùng lệnh echo $CATALINA_HOME để kiểm tra xem biến môi trường đã được cập nhật vào shell chưa, nếu kết quả xuất hiện /usr/local/tomcat là thành công, tương tự cho các biến còn lại Cũng có một vài trường hợp không thể cập nhật thành công biến môi trường cho đến khi khởi động lại máy tính nhưng hiện tượng này không xảy ra thường xuyên.
Vào thư mục CATALINA_HOME/conf/ sửa file tomcat-user.xml, thêm dòng:
Sau khi đã thêm các biến môi trường, khởi động eclipse, chọn đường dẫn cho workspace (là nơi mặc định chứa các project sau này).Tạo một java project mang tên gridsphere:
Hình 3.18 - Tạo một project mang tên Gridsphere
Giải nén gói mã nguồn của Gridsphere tại một thư mục trên ổ cứng, copy toàn bộ các file và thư mục con trong thư mục mã nguồn vừa giải nén vào thư mục project gridsphere vừa tạo Từ nay chúng ta gọi thư mục này là
Thêm các thư viện jar vào eclipse project gridsphere vừa tạo:
- Thư viện của tomcat trong $CATALINA_HOME/lib
- Thư viện của gridsphere trong GRIDSPHERE_HOME/lib
- Thư viện của ant trong $ANT_HOME/lib
Việc thêm các thư viện này có thể thực hiện được bằng cách click chuột phải vào gridsphere project trong eclipse, chọn project property, java build path.
Bước cuối cùng là cài đặt gridsphere, nhấn chuột phải vào file build.xml của gridsphere project, chọn Ant built ở dòng thứ 2, sau đó bỏ chọn help (mặc định) để chọn install.
Hình 3.19 - Build project Gridsphere sử dụng ant plugin
Hình 3.20 - Chọn đích build cho project
Sau đó chọn Run , tiếp đến trả lời hai hộp thoại hiện ra đều là "y" là OK.
Nếu cài đặt thành công, sẽ có một thông điệp hiện ra là BUILDSUCCESSFULL Khi đó có thể khởi động webserver và chạy Gridsphere.
Lập trình trên Gridsphere
Lập trình trên Gridsphere thực chất là viết các portlet trên đó, như đã trình bày ở trên, Gridsphere có khả năng tương thích với nhiều loại portlet, và vấn đề là bạn nên chọn loại portlet phù hợp với ứng dụng của mình để phát triển, mang lại hiệu quả cao nhất.
Portlet thực chất là một công nghệ dựa trên java web based component, nó được quản lý bởi portlet container, xử lý các yêu cầu và tạo ra nội dung động tương ứng với yêu cầu Portlet được sử dụng trong portal theo cơ chế "plug and play", khi người sử dụng cảm thấy cần thiết sử dụng portlet thì họ sử dụng portlet đó như là tài nguyên của hệ thống, khi không cần thì họ chỉ việc gỡ ra và không dùng nữa, mọi thao tác đều hết sức đơn giản.Nội dung được tạo ra bởi portlet được gọi là một đoạn (fragment hay piece), và nó có thể kết hợp với các portlet khác để tạo ra sự hiển thị hoàn chỉnh cho một chức năng nào đó.Portlet container quản lý vòng đời của một portlet, triệu gọi chúng khi có yêu cầu Vòng đời của một portlet bao gồm 3 giai đoạn, thứ nhất là khởi tạo portlet thông quan phương thức init(), tiếp theo là xử lý yêu cầu tương ứng với nhiệm vụ của portlet đó, và hủy portlet thông qua phương thức destroy.Xử lý yêu cầu với portlet được chia làm hai loại, loại thứ nhất là render request handler được quản lý qua phương thức render() Loại thứ hai là action request handler thông qua phương thức processAction() JSR portlet được định nghĩa trong gói javax.portlet.Portlet bao gồm các phương thức chủ yếu: public void init(PortletConfig config) throws PortletException public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException. public void render(RenderRequest request, RenderResponse response) throws PortletException, IOException.public void destroy(); Đặc tả JSR cung cấp lớp portlet trừu tượng là javax.portlet.GenericPortlet thực thi (implement) từ lớp Portlet.JSR container mở rộng từ lớp GenericPortlet để tạo ra sự thực thi riêng của nó Nó cung cấp các chức năng truyền thống như là doEdit(), doView(), doHelp()
Tạo JSR portlet project trong môi trường của Gridsphere Gidsphere hỗ trợ ant built script để tạo ra bộ khung của một portlet.
Ví dụ : cd /thư mục gridsphere, ant new-project sẽ hỏi tiêu đề của portlet muốn tạo ( eg Example Portlets), tên ứng dụng web (eg exampleportlets) và tạo ra một hệ thống thư mục ( eg exampleportlets) trong thư mục GRIDSPHERE_HOME/projects Tiếp đến bạn sẽ phải chọn loại portlet nào muốn phát triển, ví dụ jsr hay gs portlet.( nên sử dụng jsr 168 portlet vì tính khả chuyển và được hỗ trợ bởi nhiều framework) Script cũng tự động tạo ra các file cần thiết cho bạn cấu hình các portlet như portlet.xml, layout.xml, group.sample.xml, portlet-config.xml. Để tạo ra một portlet sau khi đã có bộ khung, chúng ta cần 3 bước, đầu tiên là tạo file code/jsp Tiếp theo là config các file portlet.xml, layout.xml, group.xml trong thư mục WEB-INF tương ứng Bước cuối cùng là sử dụng lệnh ant install để cài đặt portlet vào trong portal.
Giống như khi bắt đầu làm quen với một ngôn ngữ lập trình nào đó, ví dụđầu tiên mà ta thực hiện đó là HelloWorld Sau đây chúng ta sẽ viết một portelt như vậy.
Trước tiên bạn tạo một portlet project, nếu chưa có có thể làm theo các bước đã hướng dẫn ở trên.
Giả sử bạn đã có một portlet project mang tên coolportlets trong thư mục GRIDSPHERE/projects Để tạo ra một HelloPortlet trong package ví dụ org.hpcc.coolportlets.portlets cần tạo ra hệ thống thư mục tương ứng với package trong thư mục src của coolportlets, ở đây là src->org->hpcc->coolportlets->portlets. Trong thư mục portlets, bạn tạo ra file HelloPortlet.java
Phương thức processAction() sẽ trở nên vô cùng phức tạp khi có nhiều hành động cần xử lý trên cùng một form, các lệnh rẽ nhánh cúng có thể giải quyết vấn đề này nhưng toàn bộ mã nguồn sẽ trở nên vô cùng phức tạp, khó đọc, bảo trì và phát triển.
Gridsphere cung cấp mô hình cho phép quản lý form và các thành phần của trang HTML một cách rất đơn giản, mô hình này cung cấp một thư viện các thẻ giúp cho việc trình diễn giống như là sắp xếp các thành phần tương tự như dùng swing trong java, từ nay chúng ta gọi khả năng này là visual bean.Thay vì sinh mãHTML trong mã của portlet, Gridsphere cung cấp cơ chế dựa trên CSS/HTML,visual bean cung cấp cho người phát triển portlet có thể chỉnh sửa hay tạo ra các thành phần trình diễn một cách rất đơn giản như là nútnhấn, textbox , vv Các thành phần bean được định danh bởi beanId, giá trị của beanId giống như các nhãn, hình thức giống với kiểu đặt tên của biến trong các ngôn ngữ lập trình.Nhãn của beanId nên phản ánh nhiệm vụ của beanId đó trong portlet.
Bean được tạo ra và cập nhật sau mỗi yêu cầu, khi đó người phát triển có thể sử dụng các bean này Cơ chế gần giống với java bean trong lập trình JSP.
Mọi thành phần bean đều có một lớp tương ứng với nó giúp cho việc quản lý các bean này một cách dễ dàng trong mã của portlet.
Ví dụ như thành phần trình diễn trong trang JSP là:
thì trong mã nguồn của portlet chúng ta có thể triệu gọi, xử lý nó thông qua lớp TextFieldBean, cụ thể :
TextFieldBean textField1 = event.getTextFieldBean("textField1");
Lập trình viên java khi phát triển portelt sẽ không cần biết HTML và CSS được xử lý như thế nào mà chỉ tập trung vào xử lý các bean.
Mục đích chính của portlet service là đóng gói hoạt động nghiệp vụ và logic để có thể tái sử dụng với các portlet khác nhau, tối thiểu hóa nghiệp vụ logic đặt trong các portlet và có thể dùng nó giống như là một thư viện Services được tạo ra và hủy bởi PortletServiceFactory PortletService cung cấp phương thức init() và destroy để quản ly vòng đời."User services" cung cấp phương thức điều khiển truy nhập dựa trên thông tin điều khiển truy nhập của người sử dụng Service được định nghĩa bởi một mô tả portlet service
Dưới đây là một ví dụ về portlet service: HelloService, portlet này theo dõi việc nhập tên người sử dụng.
Tạo ra file src/services/examples/HelloService.java với hai phương thức public interface HelloService extends PortletService { public void addName(String name); public List getNames();
Tạo ra file thực thi phương thức: src/services/examples/impl/HelloServiceImpl.java. public class HelloServiceImpl implements PortletServiceProvider,
HelloService { private List list = new ArrayList(); public void init(PortletServiceConfig config) { } public void destroy() { } // for now don’t use public void addName(String name) { list.add(name);
} public List getNames() { return list;
Thêm một file miêu tả đầu vào trong thư mục webapps/WEB- INF/PortletServices.xml:
an example service
services.examples.HelloService
services.examples.impl.HelloServiceImpl
Sử dụng services vừa tạo ra có thể được sử dụng thông qua một portlet, thể hiện của service có thể lấy được thông qua PortletContext public class HelloWorld extends AbstractPortlet { public void init(PortletConfig config) throws UnavailableException { hello =
(HelloService)config.getContext().getService(HelloService.class);
} public void processAction(ActionRequest req, ActionResponse res) { String name = req.getParameter(“name”); hello.addName(name);
CỔNG THÔNG TIN HỆ THỐNG TÌM KIẾM & SO KHỚP TÀI LIỆU GOODAS
Đặc tả các ca sử dụng portal
4.1.1 Biểu đồ tác nhân của portal
Hình 4.21 – Các tác nhân của hệ thống
Người quản trị hệ thống: có chức năng quản lý người dùng (xác nhận đăng ký, phân nhóm, gán vai trò,…), quản trị các chức năng của portal (cấu hình, triển khai các portlet,…), cấu hình các tham số của hệ thống, và có khả năng truy nhập đến hệ thống lưới thông qua portal Người dùng này có kiến thức chuyên sâu về máy tính và internet Vì quản trị một hệ thống tham gia lưới nên lớp người dùng này cũng cần có kiến thức trong lĩnh vực tính toán lưới.
Người dùng sinh viên: Là sinh viên các trường đại học, có thể đăng ký tham gia hệ thống thông qua portal của trường & được xác nhận bởi quản trị Người dùng này uc Actors
Lecturer Student ôextendằ ôextendằ ôextendằ có khả năng tìm kiếm & tra cứu tài liệu (có thêm download tài liệu về máy hay xem trực tiếp trên portal) trên hệ thống phục vụ cho công việc học tập Bên cạnh đó, là người dùng portal nên sinh viên cũng có khả năng quản lý các thông tin cá nhân của mình trên portal.
Người dùng giảng viên: là giảng viên của các trường đại học tham gia hệ thống, có thể đăng ký tham gia qua portal của trường & vai trò được xác nhận bởi người quản trị Bên cạnh khả năng tìm kiếm & tra cứu tài liệu liên trường đại học, giảng viên còn có khả năng quản lý kho tài liệu cá nhân của mình (upload, chỉnh sửa thông tin,
…) Người dùng giảng viên còn có khả năng upload tài liệu lên để so khớp, khả năng này hỗ trợ giảng viên trong việc phát hiện các tài liệu gian lận của sinh viên.
4.1.2 Biểu đồ các ca sử dụng của portal
Hình 4.22 – Các ca sử dụng của hệ thống
Các ca sử dụng quản trị portal
Document Matching ôincludeằ ôincludeằ ôincludeằ ôincludeằ ôincludeằ ôincludeằ ôincludeằ
Hình 4.23 – Các ca sử dụng quản trị portal
4.2.1 Ca sử dụng Quản trị người dùng
Mã : UC_01 User Management (Quản trị người dùng)
Mức độ ưu tiên: Độ phức tạp:
Mục đích Use case này hiển thị danh sách người dùng kèm theo các liên kết tới các chức năng quản lý người dùng như: thêm, sửa, xóa, đặt quyền…
Chính Quản trị hệ thống
Ca sử dụng này bắt đầu khi người quản trị portal đăng nhập vào hệ thống, nếu chưa thì cần nhập tên và mật khẩu để hệ thống kiểm tra tính xác thực của người dùng, nếu chính xác thì người dùng có thể bắt đầu ca sử dụng Điều kiện sau
Kịch bản chính Bước Người dùng Hệ thống
1 Quản trị viên truy cập vào giao diện “Quản trị” và lựa chọn uc Admin Use Case
User Management ôincludeằ ôincludeằ ôincludeằ chức năng “Người dùng”.
Hiển thị các chức năng hệ thống dành cho người quản trị và danh sách người dùng của hệ thống & các thông tin người dùng.
Người quản trị tạo người dùng mới
- Khi người quản trị nhấn vào liên kết “Thêm người dùng mới”
- Hệ thống hiện ra form mới để người dùng nhập các thông tin tên đăng nhập hệ thống, tên thật, email, tên tổ chức đang làm việc, mật khẩu, loại người dùng
( Admin, hay người dùng thông thường),
- Sau khi nhập xong các thông tin yêu cầu, người quản trị portal nhấn nút LƯU thì hệ thống sẽ kiểm tra các thông tin như email có đúng định dạng không, mật khẩu phải lớn hơn 6 ký tự, hai ô nhập mật khẩu phải giống nhau, tên đăng nhập cho người dùng mới phải chưa tồn tại trong hệ thống.
- Nếu thỏa mãn các yêu cầu trên hệ thống sẽ tạo một người dùng mới và chuyển các thông tin vừa nhập cho thành phần quản lý người dùng lưới để thực hiện ánh xạ người dùng lưới
- Hoàn tất thao tác mà không gặp lỗi thì hiển thị thông báo thành công cho người dùng và chuyển sang trang danh sách người dùng Tại đây người quản trị có thể xóa hoặc sửa những người dùng đã có trong hệ thống.
Kịch bản khả dĩ khác Không thể kết nối đến cơ sở dữ liệu, không hiện lên danh sách người dùng hệ thống, không thể kết nối đến thành phần bảo mật của hệ thống.
Kết thúc Ca sử dụng kết thúc khi người dùng nhấn vào liên kết của chức năng khác hoặc đăng xuất khỏi hệ thống.
Các yêu cầu đặc biệt
Hình 4.24 – Biểu đồ trình tự Quản lý người dùng
4.2.2 Ca sử dụng cấu hình tham số portal
Mã : UC_02 Portal Config (Cấu hình portal)
Mức độ ưu tiên: Độ phức tạp:
Mục đích Use case này cho phép cấu hình các tham số cho các thành phần liên quan đến portal như bảo mật, trình diễn hay các dịch sd User Managem
Administrator User Manage Page UserManagerPortlet UserManagerService UserData alt
[status= validated] access User Manager() doListUsers() getUsers() getUserList()
:userlist displayUsers(userlist) access Edit User() doEditUser(userID) getUser(userID) getUserInfo(userID) :userinfo :userinfo
:userinfo displayUserInfo(userinfo) edit User Info() update User Info() doConfirmEditUser(userInfo) validateUser(userInfo) validate(userInfo)
:status :status saveUser(userInfo) updateUser(userInfo)
:updateStatus displayMsg(updateStatus) vụ triển khai trên portal
Chính Quản trị hệ thống
Ca sử dụng này bắt đầu khi người quản trị portal đăng nhập vào hệ thống, nếu chưa thì cần nhập tên và mật khẩu để hệ thống kiểm tra tính xác thực của người dùng, nếu chính xác thì người dùng có thể bắt đầu ca sử dụng Điều kiện sau
Kịch bản chính Bước Người dùng Hệ thống
1 Quản trị viên truy cập vào giao diện “Quản trị”
2 Portal hiển thị tất cả các tham số vào trong các ô text & lựa chọn
Người quản trị có thể chỉnh sửa các tham số cho các thành phần như bảo mật, triển khai các dịch vụ của chính portal, hay dàn trang hiển thị sau đó nhân nút LƯU
Hệ thống sẽ cập nhật các tham số này vào file cấu hình XML, nếu thành công hệ thống sẽ hiển thị thông báo thành công cho người quản trị.
Kịch bản khả dĩ khác Không cập nhật được các tham số của hệ thống, hệ thống cần thông báo cho người quản trị.
Kết thúc Ca sử dụng kết thúc khi người dùng nhấn vào liên kết của chức năng khác hoặc đăng xuất khỏi hệ thống.
Các yêu cầu đặc biệt
4.2.3 Ca sử dụng Truy cập hệ thống lưới
Hình 4.25 – Các ca sử dụng truy cập hệ thống lưới
4.2.3.1 Ca sử dụng Quản lý ủy quyền lưới
Mã : UC_03 Manage Credentials (Quản lý ủy quyền lưới)
Mức độ ưu tiên: Độ phức tạp:
Mục đích Use case này cho quản lý các giấy phép ủy quyền truy cập lưới của người dùng quản trị, theo dõi, thay đổi trạng thái của các uye quyền này, hoặc có thể lấy về giấy ủy quyền lưới mới.
Chính Quản trị hệ thống
Ca sử dụng này bắt đầu khi người quản trị portal đăng nhập vào hệ thống, nếu chưa thì cần nhập tên và mật khẩu để hệ thống kiểm tra tính xác thực của người dùng, nếu chính xác thì người dùng có thể bắt đầu ca sử dụng Điều kiện sau
Kịch bản chính Bước Người dùng Hệ thống
1 Quản trị viên truy cập vào giao diện “Hệ thống lưới”, chọn “Quản uc Access Grid Use Case
Submit Jobs ôincludeằ ôincludeằ lý ủy quyền”
Portal hiển thị danh sách tất cả các giấy phép ủy quyền truy cập lưới của người dùng, kèm theo các thông tin trạng thái của các ủy quyền này
Người quản trị có thể lựa chọn Làm mới danh sách ủy quyền, hủy kích hoạt các ủy quyền đang hoạt đông hoặc ngược lại, hay lựa chọn xem thông tin chi tiết một giấy ủy quyền hoặc tạo một giấy ủy quyền mới.
Các ca sử dụng hệ thống
Hình 4.28 – Các ca sử dụng hệ thống
4.3.1 Ca sử dụng quản lý thông tin cá nhân
Mã : UC_06 Personal Management (Quản lý thông tin cá nhân)
Mức độ ưu tiên: Độ phức tạp:
Use case này cho phép người dùng (sinh viên hoặc giảng viên) quản lý các thông tin cá nhân của mình (như Tên, tổ chức, email, ngôn ngữ, thay đổi mật khẩu,…) cũng như lựa chọn các nhóm chức năng cho tài khoản của mình & tùy biến giao diện hiển thị.
Chính Giảng viên, Sinh viên
Ca sử dụng này bắt đầu khi người dùng đăng nhập vào hệ thống, nếu chưa thì cần nhập tên và mật khẩu để hệ thống kiểm tra tính xác thực của người dùng, nếu chính xác là người dùng có thẩm quyền thì có thể bắt đầu ca sử dụng Điều kiện sau
Không thành công uc Use Case Mo
Search ôincludeằ ôincludeằ ôincludeằ ôincludeằ
Kịch bản chính Bước Người dùng Hệ thống
1 Người dùng đăng nhập vào hệ thống, chọn chức năng “Người dùng”
Hệ thống hiển thị các thông tin cá nhân của người dùng & cho phép người dùng tùy chỉnh các thông tin đó
3 Người dùng hiệu chỉnh các thông tin cá nhân Khi hoàn thành, nhấn nút Lưu
Hệ thống kiểm tra lại các thông tin mới hiệu chỉnh, nếu thỏa mãn, tiến hành cập nhật CSDL người dùng & hiện thông báo cập nhật thành công
Kịch bản khả dĩ khác Không thể kết nối đến cơ sở dữ liệu, không thể kết nối đến thành phần bảo mật của hệ thống Hiển thị thông báo đến người dùng.
Kết thúc Ca sử dụng kết thúc khi người dùng nhấn vào liên kết của chức năng khác hoặc đăng xuất khỏi hệ thống.
Các yêu cầu đặc biệt
Hình 4.29 – Biểu đồ trình tự Cập nhật thông tin thành viên nhóm
4.3.2 Ca sử dụng quản lý tài liệu cá nhân
Mã : UC_07 Document Management (Quản tài liệu cá nhân)
Mức độ ưu tiên: Độ phức tạp:
Mục đích Use case này hiển thị danh sách các tài liệu thuộc sở hữu của người dùng, cho phép người dùng upload tài liệu mới, xem tài liệu trong danh sách, chỉnh sửa các thuộc tính của tài liệu,…
Ca sử dụng này bắt đầu khi người dùng giảng viên đăng nhập vào hệ thống, nếu chưa thì cần nhập tên và mật khẩu để hệ thống kiểm tra tính xác thực của người dùng, nếu chính xác là người dùng có thẩm quyền thì có thể bắt đầu ca sử dụng Điều kiện sau
Kịch bản chính Bước Người dùng Hệ thống sd Update Group Info
Page ProfileManagerPortlet GroupManagerService LayoutManagerService UserData loop
[with each selected group] update groups & Save() doSaveGroups(selectedGroups) addUserToGroup(user, selectedGroup) addToGroup(user, selectedGroup) addGroupTab(selectedGroup) reloadPage()
1 Giảng viên đăng nhập vào hệ thống, chọn chức năng “Tài liệu”, rồi “Quản lý”
Hệ thống hiển thị danh sách các tài liệu thuộc sở hữu của người đó, với các thông tin thêm (Tên văn bản, loại văn bản, ngày giờ tạo lập, kích thước, tags, access mode của văn bản )
Người dùng tải tài liệu mới lên
- Người dùng kích vào liên kết “Upload”
- Hệ thống hiện ra form mới để người dùng nhập các thông tin về tài liệu muốn upload (tên tài liệu, chế độ truy cập tài liệu, đường dẫn đến tài liệu trên máy)
- Sau khi nhập xong các thông tin yêu cầu, người dùng nhấn nút “Tải lên” thì hệ thống sẽ kiểm tra các thông tin về file tài liệu (kích thước, khả năng truy cập file trên máy, )
- Nếu thỏa mãn các yêu cầu trên hệ thống sẽ tiến hành lưu trữ file tài liệu vào kho tài liệu của trường tương ứng & cập nhật các thông tin về tài liệu vào trong CSDL của trường
- Hoàn tất thao tác mà không gặp lỗi thì hiển thị thông báo thành công cho người dùng và cập nhật danh sách tài liệu của người dùng
Người dùng xem một tài liệu trong danh sách
- Người dùng kích vào một file tài liệu trong danh sách
- Hệ thống thu nhận thông tin về file đó và chuyển sang trang hiển thị
- Văn bản được hiển thị theo yêu cầu của người dùng Người dùng có thể Tải văn bản xuống máy hay chỉnh sửa các thông tin về tài liệu (Tên tài liệu, các thẻ, chế độ truy cập) Sau khi ấn nút Lưu, các thông tin trên sẽ được lưu vào CSDL của hệ thống.
Kịch bản khả dĩ khác Không thể kết nối đến cơ sở dữ liệu, không hiện lên danh sách tài liệu, không thể kết nối đến thành phần bảo mật của hệ thống. Hiển thị thông báo đến người dùng.
Kết thúc Ca sử dụng kết thúc khi người dùng nhấn vào liên kết của chức năng khác hoặc đăng xuất khỏi hệ thống.
Các yêu cầu đặc biệt
Hình 4.30 – Biểu đồ trình tự Quản lý tài liệu cá nhân sd Document Upload
DocManagePage DocManagePortlet FileManager UserFiles access Manage Page() doMyView() listUserFile(userID) getUserFiles(userID) :userFiles :userFiles
:userFiles display(userFiles) click Upload() doUploadFile(file) uploadFile(file, userID, groupID) uploadNewFile(fileInfo) :uploadStatus :uploadStatus
Hình 4.31 – Biểu đồ trình tự Thay đổi thuộc tính tài liệu
4.3.3 Ca sử dụng tìm kiếm văn bản
Mã : UC_08 Search (Tìm kiếm & tra cứu tài liệu)
Mức độ ưu tiên: Độ phức tạp: Mục đích
Use case này cho phép người dùng (sinh viên hoặc giảng viên) tìm kiếm tài liệu theo nội dung, xem & download tài liệu Đồng thời hệ thống cũng tự động đề xuất các tài liệu liên quan, hỗ trợ việc tra cứu của người dùng.
Chính Giảng viên, Sinh viên sd Document Vi
DocManagePage DocManagePortlet FileManager UserFiles alt
[else] access Manage Page() doMyView() listUserFiles(userID) getUserFiles(userID) :userFiles :userFiles
:userFiles display(userFiles) view File() doViewDoc() fileToSWF(fileToView)
:swfFile displayDoc(swfFile) change file's attributes & Save() doSaveInfo(fileInfo) updateFileInfo(fileInfo) update(file)
Tác nhân Khác Điều kiện trước
Ca sử dụng này bắt đầu khi người dùng đăng nhập vào hệ thống, nếu chưa thì cần nhập tên và mật khẩu để hệ thống kiểm tra tính xác thực của người dùng, nếu chính xác là người dùng có thẩm quyền thì có thể bắt đầu ca sử dụng Điều kiện sau
Kịch bản chính Bước Người dùng Hệ thống
1 Người dùng đăng nhập vào hệ thống, chọn chức năng “Tìm kiếm”
Người dùng nhập truy vấn tìm kiếm vào ô tương ứng, chọn phạm vi tìm kiếm (Cục bộ hoặc Toàn hệ thống) rồi ấn nút
Hệ thống tiếp nhận & kiểm tra yêu cầu tìm kiếm Xác định phạm vi tìm kiếm, thực hiện tìm kiếm trên site cục bộ hoặc toàn hệ thống (nếu toàn hệ thống, phải gọi dịch vụ thông tin hệ thống để lấy danh sách các site tham gia), rồi tổng hợp kết quả Cuối cùng hệ thống hiển thị danh sách các tài liệu trong kết quả tìm kiếm với các thông tin thêm (Tên văn bản, đoạn mô tả của văn bản với các từ khóa tìm kiếm in đậm )
Người dùng xem một văn bản trong danh sách kết quả tìm kiếm
- Người dùng kích vào một file tài liệu trong danh sách
- Hệ thống thu nhận thông tin về file đó và chuyển sang trang hiển thị
- Tài liệu được hiển thị cho người dùng Cùng với đó, hệ thống tiến hành so khớp tài liệu đó với các tài liệu trong kho hiện có, sắp xếp kết quả và đưa ra các tài liệu có liên quan nhất như một danh sách đề xuất cho người dùng
Kịch bản con 2 Người dùng tải xuống văn bản
- Người dùng kích vào biểu tượng download trong trang hiển thị danh sách kết quả tìm kiếm hoặc ấn vào nút
“Tải xuống” khi đang xem một tài liệu
Biểu đồ lớp cho các ca sử dụng
4.4.1 Biểu đồ lớp Ca sử dụng Quản lý thông tin cá nhân
Hình 4.35 – Biểu đồ lớp Quản lý thông tin cá nhân
4.4.2 Biểu đồ lớp ca sử dụng Quản lý ủy quyền lưới class user
+ getUsersByAttribute(String, String, QueryFilter) : List
ProfileManagerPortlet + CONFIGURE_JSP: String = "profile/config {readOnly}
- groupManagerService: GroupManagerService = null + HELP_JSP: String = "profile/help.jsp" {readOnly}
- userManagerService: UserManagerService = null + VIEW_USER_JSP: String = "profile/viewus {readOnly}
- createSuccessMessage(FormEvent, String) : void + doConfigureSettings(FormEvent) : void + doSaveGroups(FormEvent) : void + doSavePass(FormEvent) : void + doSaveUser(FormEvent) : void + doViewUser(FormEvent) : void
- getMessagingFrame(FormEvent, boolean) : DefaultTableModel + init(PortletConfig) : void
- makeLocaleBean(String, String, Locale) : ListBoxItemBean + setUserTable(FormEvent, boolean) : DefaultTableModel
+ getUsersByAttribute(String, String, QueryFilter) : List
+ createUserTabbedPane(PortletRequest, int, String) : PortletTabbedPane
- pageFactory: PortletPageFactory = null + addGroupTab(PortletRequest, PortletGroup) : void + createUserTabbedPane(PortletRequest, int, String) : PortletTabbedPane + destroy() : void
+ getPortletPage(PortletRequest) : PortletPage + getUserTabbedPane(PortletRequest) : PortletTabbedPane + init(PortletServiceConfig) : void
+ refreshPage(PortletRequest) : void + reloadPage(PortletRequest) : void + removeGroupTab(PortletRequest, PortletGroup) : void
+ addUserToGroup(User, PortletGroup) : void + deleteGroup(PortletGroup) : void + deleteUserGroup(UserGroup) : void + deleteUserInGroup(User, PortletGroup) : void + destroy() : void
+ existsGroupWithName(String) : boolean + getCoreGroup() : PortletGroup + getGroup(String) : PortletGroup + getGroups() : List + getGroups(User) : List + getUserGroup(User, PortletGroup) : UserGroup + getUserGroups() : List
+ getUsersInGroup(PortletGroup) : List + GroupManagerServiceImpl() + init(PortletServiceConfig) : void + isUserInGroup(User, PortletGroup) : boolean + saveGroup(PortletGroup) : void + saveUserGroup(UserGroup) : void
Hình 4.36 – Biểu đồ lớp Quản lý giấy phép ủy quyền lưới
4.4.3 Biểu đồ lớp Ca sử dụng Quản lý tài liệu cá nhân class Manage Credenti
CredentialContextComp + CREDENTIAL_CONTEXT_PARAM: String = "credentialCont {readOnly}
+ CREDENTIAL_DN_LIST_PARAM: String = "credentialCont {readOnly}
+ CREDENTIAL_DN_PARAM: String = "credentialDnParam" {readOnly}
- log: volatile PortletLog = SportletLog.get
+ MESSAGE_CANT_DEACTIVATE_CRED: String = "portlets.secur {readOnly}
+ MESSAGE_CANT_RETRIEVE: String = "portlets.secur {readOnly}
+ MESSAGE_DEACTIVATE_CRED: String = "portlets.secur {readOnly}
+ MESSAGE_LABEL: String = "portlets.secur {readOnly}
+ MESSAGE_PASSPHRASE: String = "portlets.secur {readOnly}
+ MESSAGE_RETRIEVE_CXT: String = "portlets.secur {readOnly}
+ MESSAGE_USERNAME: String = "portlets.secur {readOnly}
+ RETRIEVAL_CONTEXT_PARAM: String = "retrievalConte {readOnly}
+ CredentialContextComp(ActionComponentFrame, String) + getCredentialContext(Map) : CredentialContext + getCredentialContext(CredentialManagerService, Map) : CredentialContext
# getCredentialDnParam(Map) : String + getRetrievalContext(Map) : CredentialRetrievalContext + getRetrievalContext(CredentialRetrievalService, Map) : CredentialRetrievalContext
- log: volatile PortletLog = SportletLog.get
- log: volatile PortletLog = SportletLog.get
# userNameField: TextFieldBean = null + CredentialContextEditComp(ActionComponentFrame, String) + doCancel(Map) : void
+ doCredentialEdit(Map) : void + doCredentialEditApply(Map) : void + doCredentialNew(Map) : void + doCredentialNewApply(Map) : void
- log: volatile PortletLog = SportletLog.get
# passphraseBean: PasswordBean = null + CredentialContextListViewComp(ActionComponentFrame, String) + doCredentialDeactivate(Map) : void
+ doCredentialList(Map) : void + doCredentialListRetrieve(Map) : void + onInit() : void
- log: volatile PortletLog = SportletLog.get
Hình 4.37 – Biểu đồ lớp Quản lý tài liệu cá nhân
4.4.4 Biểu đồ lớp Ca sử dụng Tìm kiếm tài liệu
Hình 4.38 – Biểu đồ lớp Tìm kiếm tài liệu class common
- DISPLAY_PAGE: String = "common/docmana {readOnly}
+ uploadFile(ActionFormEvent) : void java.lang.Object filemanager::FileInfo
+ FileInfo(int) : void + getAbsolutePath() : String + getAccessMode() : int + getCreatedDate() : String + getFile_Id() : int + getFileName() : String + getFileType() : String + getSize() : int + getUser_Id() : int + setAbsolutePath(String) : void + setAccessMode(int) : void + setCreatedDate(String) : void + setFile_Id(int) : void + setFileName(String) : void + setFileType(String) : void + setSize(int) : void + setUser_Id(int) : void java.lang.Object filemanager::DatabaseUtils
+ DatabaseUtils() : void + getConnection() : Connection + getConnectionMDS() : Connection + getConnectionRLC() : Connection + getConnectionRLI() : Connection java.lang.Object filemanager::FileManager
+ changeAccessMode(int, int) : boolean + deleteFile(int) : boolean + Document Upload() : void + getAccessMode(int) : int + getFileInfo(int) : FileInfo + getGroupIndexPath(int) : String
- getUserId(String) : int + listGroupFile(int) : FileInfo[]
+ listUserFile(String) : ArrayList + updateFileInfo(FileInfo) : boolean + uploadFile(File, String, int) : boolean
+ match(String, int, String) : List + search(String, int, String, int) : List
- DISPLAY_PAGE: String = "common/docsear {readOnly}
+ getPath() : String + getScore() : double + getSummary() : String + getTitle() : String + setPath(String) : void + setScore(double) : void + setSummary(String) : void + setTitle(String) : void java.util.Comparator ôstaticằ
+ getRelatedDocs(String, int, String) : List + search(IndexSearcher, String, int) : List + searchGrid(String, int) : List
4.4.5 Biểu đồ lớp Ca sử dụng So khớp tài liệu
Hình 4.39 – Biểu đồ lớp So khớp tài liệu class match
- DISPLAY_PAGE: String = "common/docfile {readOnly}
+ escapeHTML(String) : String + match(String, int, String) : List + matchGrid(String, int, String) : List
+ getPath() : String + getScore() : double + getSummary() : String + getTitle() : String + setPath(String) : void + setSummary(String) : void + setTitle(String) : void
+ match(String, int, String) : List + search(String, int, String, int) : List
TRIỂN KHAI HỆ THỐNG
Hệ thống triển khai
Hệ thống GOODAS đã được đưa vào triển khai thực tế tại trung tâm tính toán hiệu năng cao Cụ thể đã được triển khai trên ba máy, đại diện cho ba nút lưới, tương ứng với các trường đại học Do hạn chế về số lượng máy thử nghiệm, máy chủ thông tin, và máy chủ thành phần quản lý đăng ký lưới được tích hợp trên các nút lưới của hệ thống Thành phần portal, về lý thuyết là được triển khai trên tất cả các site (mỗi trường một portal đều có một cổng thông tin), tuy nhiên trển khai thực tế chỉ đặt một portal trên site 3 Chi tiết thành phần, chức năng của hệ thống triển khai được đưa ra trong bảng sau:
# Tên máy Chức năng Thành phần triển khai
-Một nút lưới ứng với một trường Đại học
- Globus Toolkit 4 -Dữ liệu của site 1 -Các dịch vụ tiện ích -Dịch vụ thông tin
-Một nút lưới ứng với một trường Đại học
-Đăng ký người dùng lưới
-Globus Toolkit 4 -Dữ liệu của site 2 -Các dịch vụ tiện ích -Module VOMS
-Một nút lưới ứng với một trường Đại học
-Globus Toolkit 4-Dữ liệu của site 3 -Các dịch vụ tiện ích -Portal
Kết quả triển khai portal
5.2.1 Giao diện trang chủ của portal
Hình 5.40 – Giao diện trang chủ GoodAs portal
5.2.2 Nhóm các chức năng quản trị
5.2.2.1 Chức năng quản lý người dùng
Hình 5.41 – Giao diện Quản lý người dùng
Hình 5.42 – Giao diện Thay đổi thông tin người dùng
5.2.2.2 Chức năng truy cập hệ thống lưới
Hình 5.43 - Giao diện Quản lý giấy phép ủy quyền lưới
Hình 5.44 – Giao diện Quản lý tệp trên hệ thống lưới
Hình 5.45 – Giao diện Đệ trình công việc
5.2.3 Nhóm các chức năng sử dụng hệ thống
5.2.3.1 Chức năng quản lý tài liệu cá nhân
Hình 5.46 – Giao diện Quản lý tài liệu cá nhân
5.2.3.2 Chức năng tìm kiếm tài liệu
Hình 5.47 – Giao diện Tìm kiếm tài liệu
Hình 5.48 – Giao diện Xem kết quả tìm kiếm & đề xuất
5.2.3.3 Chức năng so khớp tài liệu
Hình 5.49 – Giao diện So khớp tài liệu
5.2.3.4 Chức năng quản lý thông tin cá nhân
Hình 5.50 – Giao diện Quản lý thông tin cá nhân
Đánh giá kết quả triển khai
Về chức năng: Hệ thống đã thực hiện được các chức năng chính và cơ bản nhất như tìm kiếm, so khớp, và quản lý tài liệu cá nhân Ngoài ra hệ thống cũng cung cấp các chức năng phụ trợ khác hỗ trợ người quản trị cũng như người dùng lưới như: quản trị người dùng, cấu hình tham số hệ thống, truy cập hệ thống lưới,… Tuy nhiên, cần xây dựng thêm các tính năng hỗ trợ người dùng làm việc & nghiên cứu cộng tác.
Về hiệu năng: Do hạn chế về mặt cơ sở hạ tầng nên các thử nghiệm tiến hành trên một phạm vi nhỏ hẹp, chưa có điều kiện đánh giá hiệu năng cụ thể của các dịch vụ Chưa có khả năng tiến hành cài đặt trên nhiều trạm và phân tán thực sự về mặt địa lý Tuy nhiên bước đầu hệ thống cũng cho thấy nét khả quan về mặt hiệu năng khi triệu gọi các dịch vụ lưới, tìm kiếm, so khớp hay upload, download tài liệu.
Về tính dễ sử dụng: Hệ thống đã có được giao diện thân thiện với ngôn ngữ tiếng Việt và tiếng Anh Các chức năng bố trí hợp lý, không gian thao tác được thiết kế phù hợp do vậy người dùng có thể dễ dàng thao tác với các chức năng Tài liệu có thể xem trực tiếp trên portal & được hiển thị một cách trực quan, tiện dụng
Về khả năng mở rộng: Bước đầu hệ thống mới chỉ triển khai trong nội bộ trung tâm Tuy nhiên tính khả thi và khả năng mở rộng của dự án là rất lớn Với đặc tính khả mở của lưới cùng với các dịch vụ phát hiện tài nguyên trên lưới, việc thêm bớt một site không ảnh hưởng đến các chức năng và các site khác của hệ thống.Việc triển khai portal trên một site mới cũng được thực hiện dễ dàng với khả năng tùy chỉnh cao cho phù hợp với tài nguyên của site mới.
Đánh giá kết quả công việc
Đồ án tốt nghiệp cơ bản đã thực hiện được các mục tiêu đề ra ban đầu: tập trung vào thiết kế mô hình kiến trúc của hệ thống dựa trên hướng tiếp cận lưới dữ liệu và tìm hiểu mô hình hoạt động của Gridsphere Portal Framework, khảo sát yêu cầu portal cho hệ thống xây dựng, tùy chỉnh các thành phần sẵn có theo mục đích của đồ án Ngoài ra, đã hoàn thiện một số thành phần mới như quản lý tài liệu cá nhân, tìm kiếm & so khớp tài liệu, xem tài liệu trực tiếp trên portal, truy cập hệ thống lưới vv để tích hợp vào framework Từ đó, hoàn thiện thành phần Portal cho hệ thống quản lý tài liệu liên trường đại học GoodAs Các chức năng của portal đã đề ra ban đầu cũng được hoàn thiện và kiểm thử, thành phần portal đã kết hợp tốt với các thành phần còn lại của hệ thống, tạo nên một khối hoàn chỉnh và thống nhất.
Hướng phát triển
Qua quá trình xây dựng hệ thống, nhóm nghiên cứu nhận thấy có thể tự động hóa quá trình cài đặt, triển khai hạ tầng lưới & portal trên các nút lưới mới (có thể thực hiện phân phối thành các LiveCD bao gồm cả bản hệ điều hành, đến các gói phần mềm cần thiết để cài đặt hạ tầng lưới) Việc tự động hóa này sẽ góp phần giúp cho việc mở rộng hệ thống được nhanh chóng và thuận lợi hơn.
Cần phát triển các giải thuật phân loại tài liệu theo nhóm lĩnh vực một cách tự động Cơ chế phân loại tài liệu hiện tại dựa trên việc phân nhóm người dùng là khá thụ động và chưa linh hoạt.
Các chức năng cơ bản của hệ thống đã hoàn thành Tuy nhiên, để hệ thống thực sự tiện ích, thuận tiện và hỗ trợ đắc lực trong nghiên cứu và giảng dạy với đa dạng người sử dụng thì cần phải hoàn thiện thêm các chức năng như chia sẻ nhóm người dùng hay hỗ trợ thống kê dữ liệu cho người quản trị Bên cạnh đó, nếu có thể kết nối hệ thống tìm kiếm và so khớp tài liệu tại mỗi trường với hệ thống quản lý đào tạo và hỗ trợ giảng dạy của các trường đó sẽ góp phần tăng tính hoàn thiện & ứng dụng của hệ thống hơn nữa.