Tải bản đầy đủ (.docx) (65 trang)

quản lý nội dung trên sakai server, thực hiện biên dịch và kiểm thử trên test server khác bằng hạ tầng ssh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.76 MB, 65 trang )

MỤC LỤC
MỤC LỤC HÌNH
1
CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI
I.1. Mô tả yêu cầu
a. Hiện nay, Khoa Khoa Học và Kỹ Thuật Máy Tính có thực hiện các bài lab và assigment
cho sinh viên dưới hình thức cho sinh viên hiện thực các hàm chức năng chính của chương
trình vào các file yêu cầu rồi gửi lên Khoa. Giáo viên sẽ lấy code của sinh viên, thực hiện
quá trình biên dịch, kiểm thử, so sánh kết quả và chấm điểm. Công việc biên dịch, kiểm
thử được các thực hiện trên hệ thống máy ảo của bộ môn.
b. Giới hạn của quá trình trên là sự khác biệt về môi trường lập trình của sinh viên và giáo
viên khiến kết quả từ chương trình của sinh viên không như mong muốn, sinh viên không
thấy được kết quả trực tiếp mà phải chờ sau khi bài lab hết hạn và có kết quả tạo ra từ giáo
viên.
c. Mục tiêu của đề tài là tận dụng khả năng của SAKAI framework, xây dựng một công cụ
giúp giáo viên tổ chức và quản lý các bài lab, đồng thời hỗ trợ thực hiện khả năng biên
dịch, kiểm thử khi sinh viên nộp bài.
I.2. Các Business Rules
a. Sự an toàn cho SAKAI Server
2
 Vì một số lý do, các chương trình của sinh viên có thể làm thay đổi, dẫn đến
làm hệ thống trục trặc khi thực hiện việc biên dịch, kiểm thử. Do đó, việc biên
dịch và kiểm thự không nên đặt trên máy chủ SAKAI mà nên để trên một hệ thống
Test Server, có thể là các máy ảo, để tiện cho việc sao lưu, phục hồi hệ thống cũng
như không ảnh hưởng đến hệ thống Website của Khoa.
b. Tận dụng nguồn tài nguyên sẵn có
 Hiện nay, Khoa đã có sẵn hệ thống thực hiện việc biên dịch và kiểm thử các
chương trình của sinh viên. Hệ thống trên được thiết lập đã đáp ứng được các nhu
cầu về khả năng bảo mật, tính an toàn cho hệ thống, sự tương thích của các phần
mềm được cài đặt …
 Việc xây dựng lại hệ thống trên với các thay đồi phức tạp nhằm đáp ứng yêu


cầu của chương trình là rất khó và hoàn toàn không khả thi. Vì thế mà giải pháp
đưa ra phải có khả năng cho giá viên sử dụng lại các hệ thống Test Server sẵn có.
c. Khả năng độc lập giữa SAKAI và Test Server cao
 Do tính đa dạng của các môn học trong chương trình, hệ thống Test Server
có thể được triển khai trên nhiều flatform khác nhau. Các flatform này đôi khi
khác nhau rất nhiều về mặt kiến trúc, dẫn đến kết quả là các chương trình được
viết trên flatform này có khi không thể thực thi được trong các flatform khác.
 Ngoài ra, giáo viên chỉ quan tâm đến hệ thống Test Server của mình mà
không phải qi cũng quan tâm và hiểu rõ cấu trúc của SAKAI framework. Do đó,
việc yêu cầu giáo viên khi tạo một bài lab mà phải trải qua nhiều bước cấu hình
phức tạp trên SAKAI cũng như trên Test Server là một việc khó khăn.
 Vì những lý do đó, giải pháp đưa ra phải có tính chung nhất (thực thi được
trên mọi platform) và có tính độc lập cao giữa SAKAI và Test Server (giới hạn
việc thiết lập cho giáo viên trên Test Server với các bước đơn giản, không cần
quan tâm đến tình trạng của SAKAI cũng như tính tương thích giữa SAKAI
Server và Test Server)
d. Khả năng đáp ứng của chương trình
 Các sinh viên thương tập trung làm bài vào các ngày cuối của bài lab hay
assignment. Điều đó đồng nghĩa với hệ thống gần như phải đáp ứng được nhu cầu
của hơn 300 sinh viên một lúc.
 Vì thế, chương trình cần đảm bào với số lượng sinh viên như thế, chương
trình vẫn đáp ứng được yêu cầu của sinh viên trong 1 thời gian nhất định mà vẫn
hạn chế tải trọng lên SAKAI Server hay Test Server, vốn thường quá tải trong thời
gian này
e. Tính bảo mật
3
 Phải đảm bảo tính bảo mật cho các hệ thống SAKAI, Test Server cũng như
quyền hạn của user. Khi các sinh viên thực thi bài làm cùng một lúc, phải đảm bảo
rằng sinh viên này không thể ảnh hưởng đến kết quả của sinh viên khác
I.3. Các phương hướng thực hiện

a. Thực hiện biên dịch ngay tại SAKAI Server, chạy thử chương trình trên môi
trường ảo ngay trên SAKAI Server
 Ích lợi:
• Gần như cô lập quá trình thực thi chương trình khỏi SAKAI Server
• Tính sẵn sàng cao
• Không yêu cầu thêm phần cứng
 Yếu điểm:
• Môi trường không đa dạng
• Ảnh hưởng hiệu suất SAKAI Server
• Ảnh hưởng đến SAKAI Server trong quá trình cài đặt thư viện để compile
• Khó tùy biến cho các giáo viên không tham gia quản trị SAKAI Server
• Khó tách biệt môi trường dịch cho các user trong quá trình dịch tại SAKAI
Server
b. Thực hiện biên dịch ngay tại SAKAI Server, chạy thử chương trình trên một máy
Test Server khác bằng một phần mềm Client – Server tự hiện thực
 Ích lợi:
• Tách quá trình thực thi chương trình khỏi SAKAI Server
• Tính sẵn sàng cao cho chức năng compile
• Giảm được gánh nặng hiệu suất cho SAKAI Server
 Yếu điểm:
• Môi trường dịch không đa dạng
• Ảnh hưởng đến SAKAI Server trong quá trình cài đặt thư viện để compile
• Vẫn còn ảnh hưởng đến hiệu năng của SAKAI Server
• Yêu cầu cài đặt thêm 1 phần chương trình (Server part) trên Test Server
• Khó khăn trong việc quản lý user, tách biệt các môi trường cho các user
trong quá trình chạy thử
• Khó tách biệt môi trường dịch cho các user trong quá trình dịch tại SAKAI
Server
c. Quản lý nội dung trên SAKAI Server, thực hiện biên dịch và kiểm thử trên Test
Server khác bằng một phần mềm Client – Server tự hiện thực

 Ích lợi:
4
• Tách toàn bộ quá trình biện dịch và thực thi chương trình khỏi SAKAI
Server
• Giảm được gánh nặng hiệu suất cho SAKAI Server
• Môi trường đa dạng, tính tùy biến cao
 Yếu điểm:
• Tính sẵn sàng không cao
• Yêu cầu cài đặt thêm 1 phần chương trình (Server part) trên Test Server
• Khó khăn trong việc quản lý user, tách biệt các môi trường cho các user
d. Quản lý nội dung trên SAKAI Server, thực hiện biên dịch và kiểm thử trên Test
Server khác bằng hạ tầng SSH
 Ích lợi:
• Tách toàn bộ quá trình biện dịch và thực thi chương trình khỏi SAKAI
Server
• Giảm được gánh nặng hiệu suất cho SAKAI Server
• Môi trường đa dạng, tính tùy biến cao
• Dễ cài đặt
• Lợi dụng được sức mạnh của SSH Server trong quá trình quản lý, tách biệt
user
 Yếu điểm:
• Tính sẵn sàng không cao
I.4. Tính khả thi của phương hướng được lựa chọn
a. Qua quá trình phân tích, xem xét khả năng hiện thực, chúng em quyết định chọn
phương án cuối cùng: Quản lý nội dung trên SAKAI Server, thực hiện biên dịch
và kiểm thử trên Test Server khác bằng hạ tầng SSH. Đó cũng là nội dung đề tài
và phương hướng trong quá trình phát triển công cụ CSLab trên SAKAI của chúng
em
b. Ưu điểm
 SSH Server có thể cài đặt trên nhiều môi trường khác nhau và SSH chạy trên

nền giao thức TCP/IP. Điều đó làm cho danh mục các platform có thể cài đặt trên
Test Server là rất lớn. SAKAI Server không cần biết Test Server là máy thật hay
máy ảo, chạy môi trường gì, đã cài đặt gì trên đó mà chỉ cần Test Server có cài đặt
SSH Server và chạy trên nền TCP/IP và có thể hoạt động với công cụ CSLab. Từ
đó, giảng viên có thể tùy biến nội dung bài lab tùy ý mà không cần lo lắng về khả
năng bị giới hạn cho không cài đặt được môi trường phù hợp.
 Với dịch vụ SSH, ta có thể đăng nhập vào Test Server bằng nhiều account
khác nhau. Điều đó làm cho môi trường khi chạy thử phần mềm là tách biệt nhau
5
bởi các môi trường cá nhân của user với các cơ chế bảo mật sẵn có mà ta không
cần hiện thực nhiều.
 Với hệ thống sẵn có của Khoa, việc cài thêm một dịch vụ SSH Server là
không đáng kể. Từ đó, ta vẫn có thể dùng lại hệ thống cũ với công cụ CSLab mà
không có nhiều thay đổi.
 Test Server và SAKAI Server là hoàn toàn tách biệt nhau, chúng chỉ tương
tác với nhau qua các thông số cấu hình Test Server được cung cấp trong quá trình
tạo bài lab. Từ đó, Test Server có thể dùng lại nhiều lần với nhiều bài lab khác
nhau hay tắt đi khi không còn bài lab nào mà vẫn không ảnh hưởng đến SAKAI
Server. Ngoài ra, Người quản trị của SAKAI Server và giảng viên không cần biết
đến hệ thống của người kia mà chỉ cần quản lý hệ thống của chính mình là được.
 Test Server có thể là một máy thật hay là một máy ảo. Với các máy ảo, giảng
viên có thể tận dụng khả năng tái sử dụng, sao lưu và phục hồi bằng chức năng
Take Snapshot của trình quản lý máy ảo.
CHƯƠNG II. PHÂN TÍCH - THIẾT KẾ CÔNG CỤ CSLAB
II.1. Các chức năng chính
2.- Usecase Model
6
a. Tổng quát
 Quản lý nội dung bài lab
 Lưu trữ và quản lý nội dung bài làm của sinh viên và kết quả trả về từ Test

Server
b. Về phía giảng viên
 Xem danh sách tất cả bài lab
 Thêm, xóa, sửa nội dung bài lab
 Xem thông tin bài lab, tình trạng bài lab, thống kê
 Xem bài làm, kết quả của các sinh viên
c. Về phía sinh viên
 Xem danh sách và tình trạng các bài lab đang kích hoạt
 Thực hiện và lưu trữ bài làm
 Biên dịch, kiểm thử bài làm và lưu trữ kết quả
II.2. Cấu trúc công cụ CSLab
a. Công cụ CSLab được thiết kế hoàn toàn nằm trên SAKAI Server mà không cần
cài đặt bất cứ phần nào trên Test Server. Tuy nhiên, do sử dụng cơ chế SSH để
truyền nội dung qua Test Server nên Test Server yêu cầu phải được cài đặt sẵn dịch
vụ SSH
2.2-Tool Structure
b. Về phía SAKAI Server: công cụ CSLab gồm 3 thành phần chính
 CSLab Front-End: thực hiện các chức năng quản lý, cung cấp giao diện, …
tương tác trực tiếp với người dùng
7
 Storage Component: thực hiện các chức năng ghi, chép, quản lý file … trong
chương trình
 SSH Component: đóng vai trò như một SSH client, dùng để kết nối đến SSH
Server, thực hiện các tác vụ truyền nhận file, thực thi câu lệnh trên Test Server, …
c. Về phía Test Server: hoàn toàn được xem như một đối tác thứ ba. Mọi cấu hình
trên Test Server đều phải được cấu hình bởi giảng viên (người tạo bài lab) và sau đó
cung cấp các cấu hình đó cho công cụ CSLab trong quá trình tạo bài lab. Các thông
tin cấu hình cần thiết bao gồm
 Địa chỉ IP / hostname của Test Server
 Port dành cho dịch vụ SSH

 để các file bài làm khi công cụ CSLab upload lên
 Vị trí chính xác file kết quả sau khi chương trình thực thi
 Số lượng connection tối đa cho một bài lab khi kết nối đến Test Server
 Thời gian tối đa chờ 1 câu lệnh hoàn thành
 Nội dung các câu lệnh cần thực thi
 Tài khoản cho sinh viên đăng nhập vào Test Server. Tài khoản này khác với
tài khoản của sinh viên trên SAKAI và không công bố cho sinh viên biết tài khoản
này mà chỉ được chương trình sử dụng ngầm bên dưới
II.3. Hoạt động của công cụ CSLab
a. Hoạt động của chương trình được bắt đầu khi giảng viên thực hiện quá trình tạo
nội dung bài lab cho đến khi giáo viên quyết định xóa bài lab đã tạo
8
2.3-Sequence Diagram
b. Công cụ CSLab lưu trữ nội dung bài lab và các thông tin khác dưới hình thức các
file object của các đối tượng Serializable. Các đối tượng đó bao gồm:
 LabInfo: lưu trữ các thông tin cơ bản của bài lab
 DependencyInfo: lưu trữ nội dung các file source code chỉ mang tính chất tham
khảo, không thể thay đổi bởi sinh viên
 SubmissionInfo: lưu trữ nội dung các file source code mà sinh viên cần hoàn
thiện, đây cũng là nơi lưu trữ nội dung làm bài của sinh viên
 ConfigInfo: lưu trữ các thông tin cơ bản về Test Server trong suốt quá trình thực
hiện SSH session. Nội dung thông tin này được upload lên SAKAI dưới dạng 1 file
config
 ShellInfo: lưu trữ một tập các câu lệnh đơn để thực thi sau khi kết nối vào Test
9
Server. Trong một bài lab có thể có nhiều tập câu lệnh, xem như có nhiều kịch bản
khác nhau cho quá trình biên dịch, kiểm thử. Nội dung thông tin này được upload
lên SAKAI dưới dạng 1 file shell script
 UserInfo: lưu trữ tài khoản dùng để đăng nhập vào Test Server cho từng tài
khoản SAKAI của sinh viên. Nội dung thông tin này được upload lên SAKAI dưới

dạng 1 file mapping.
 SSHPermission: dùng để quản lý số lượng connection tối đa cho từng bài lab.
Mỗi đối tượng là duy nhất cho mỗi bài lab và hoàn toàn độc lập với nhau. Đối tượng
này không được lưu xuống thành 1 file mà tồn tại suốt quá trình bài lab còn hiệu lực
và bị xóa sau ngày deadline của bài lab.
10
2.3-Object Lifecycle
11
c. Các file object được lưu lại thành 1 cây thư mục. Gốc của cây thự mục được
admin của SAKAI Server xác định trong quá trình cài đặt tool
2.3-Repository Directory
 Thư mục của Site
 Thư mục của Lab
 Thư mục Upload Files của Lab
 Thư mục METADATA của Lab
 Thư mục Scripts của Lab
12
 Thư mục Dependencies của Lab
 Thư mục Base Submissions của Lab
 Thư mục của Student
 Thư mục Submissions của Student
 Thư mục Result của Student
 Thư mục TEMP
d. Hoạt động của chương trình dựa trên sự tương tác của giảng viên
2.3-Instructor Activities
 Quá trình tạo mới bài lab
13
e. Hoạt động của chương trình dựa trên sự tương tác của sinh viên
2.3-Student Activities
 Quá trình Test bài lab sử dụng Test Server

14
II.4. Thiết kế giao diện và hoạt động của các trang trong công cụ CSLab
a. Giao diện các trang và hoạt động của các thành phần
 Trang chính của giảng viên
2.4-Instructor Home Page
• Bảng chứa danh sách các bài lab
Cho phép user chọn từng hàng cụ thể. Hàng được chọn được đổi sang màu khác.
• Thanh chức năng
Khi Instructor load trang chủ của công, instructor được chuyển đến trang này.
Trên thanh chức năng chỉ có tùy chọn Add được enable, các chức năng còn lại bị
15
disable. Khi user chọn một hàng, các tùy chọn Edit, Delete, View Summary,
View Statistic trên thanh chức năng được enable.
 Trang chính của sinh viên
2.4-Student Home Page
• Bảng chứa danh sách các bài lab đang kích hoạt
• Cột Status
Thể hiện tình trạng của rừng bài lab
16
Đã làm
Mới và chưa làm (chưa quá nửa thời gian)
Gần hết hạn và chưa làm (quá nửa thời gian)
• Cột Lab Name
Khi click vào tên lab, trang Take Lab sẽ hiện ra cho sinh viên làm bài
 Các trang trong Create/Edit Lab Wizard
2.4-Create Lab Info () – General Information
17
2.4-Create Lab Info(2) – Dependencies
2.4- Create Lab Info(3) – Base Submissions
18

2.4-Create Lab Info(4) – Configure Server
2.4- Create Lab Info(5) – Mapping User
19
2.4- Create Lab Info(6) – Set Command
2.4- File Upload – Mutiple Mode
20
2.4- File Upload – Single Mode
• Bread Crumb Trail
Bread Crumb Trail chỉ hiển thị khi user đã từng xuất hiện tại bước tạo lab tương
ứng. User có thể quay lại các trang trước bằng cách chọn tên bước tương ứng và
Bread Crumb Trail sẽ không thay đổi cho đến khi user bước sang 1 một bước
mới.
21
• Date Picker
User không thể nhập dữ liệu vào khung text của Date Picker mà chỉ có thể lựa
chọn này bằng cách click vào biểu tượng calendar bên cạnh.
• Khung hiển thị danh sách các file đã import
User không thể edit hay tác động lên khung này. User chỉ có thể thay đổi danh
sách các file đã import bằng cách click vào link “Click to Import File” bên dưới
để vào trang Upload File – Muitiple Mode.
22
• Khung hiển thị nội dung config
Khi chưa import file, các giá trị trên khung được để trống và chỉ xuất hiện khi
user đã import file bằng cách click vào link “Click to Import File” bên dưới để
vào trang Upload File – Single Mode. User cũng có thể dùng cách đó để sửa đổi
thông tin đã có. User cũng không thể edit hay tương tác lên khung này.
• Khung hiển thị nội dung mapping user
Chỉ hiển thị nội dung khi user đã import file bằng cách click vào link “Click to
Import File” bên dưới để vào trang Upload File – Single Mode. User cũng có thể
23

dùng cách đó để sửa đổi thông tin đã có. User cũng không thể edit hay tương tác
lên khung này.
• Các nút navigation
Chỉ enable khi instructor đã nhập thông tin vào trang hiện tại
Thoát và không lưu bất cứ gì
Trở lại trang trước, luôn xuất hiện trừ trang đầu tiên
Chỉ xuất hiện ở trang cuối và chỉ enable khi instructor đã nhập thông
tin vào trang
• Khung hiển thị danh sách các file đã upload
Chỉ hiển thi các file đã được upload sau khi user chọn nút upload. User có thể
xóa file đã upload bằng cách click vào biểu tượng thùng rác bên cạnh tên file.
24
 Trang xem thông tin tổng quan bài lab
25

×