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

65 446 0
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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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

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 [...]... Cancel Lưu nội dung các file submission của sinh viên Thoát khỏi trang Take Lab, trở về trang Home View – Student mà không save lại bất kỳ dữ liệu nào • Các thanh navigator Liệt kê danh sách các file dependencies và submissions, khi click vào tên file, tên file và nội dung file sẽ hiện ra ở File Name và Content 29 CHƯƠNG III CÁC KIẾN THỨC LIÊN QUAN III.1 SSH trong JAVA a Giao thức SSH: SSH hay Secure... IV.2 Package a Org.sakaiproject.cslab.tool.model: Chứa các model như trên b Org.sakaiproject.cslab.tool.services .ssh : Chứa Class SSHBO hỗ trợ cho các lệnh SSH c Org.sakaiproject.cslab.tool.utils: Chứa ReadWriteBO phục vụ cho việc đọc/ghi dữ liệu d Org.sakaiproject.cslab.tool .test : Phục vụ việc test trên console các class khác e Org.sakaiproject.cslab.tool.bkbeans : Chứa các file backing bean được khai... trữ trạng thái của server, chủ yếu là session bean f Ngoài ra còn một số package hỗ trợ việc tạo dữ liệu ảo trong quá trình kiểm tra chức năng SSH trước khi chương trình hoàn thành IV.3 Hệ thống các trang JSP Các trang JSP trình bày nội dung của các file Backing bean tương ứng trong package bkbeans Backing bean và JSP tương ứng Dummypage.jsp Nội dung Kiểm tra quyền và chuyển user vào trang ManagerHome.jsp... 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... bắt gói thông tin trên mạng 3.1 -SSH Model  SSH sử dụng cơ chế mã hóa Public-key và Authentication để chứng thực người dùng  SSH thực thi các tính năng chính như đăng nhập tài khoản từ xa, thực thi command đồng thời hỗ trợ việc gửi / nhận file qua các giao thức SCP hay SFTP Ngoài ra SSH còn hỗ trợ các giao thức khác như Tunneling, Port Forwarding, X11  Cổng mặc định của giao thức SSH là 22 30  Version... dependency của SakaiMonitor, một project nhỏ chúng tôi thử nghiệm về chức năng thống kê số liệu từ Test & Quizz (Samigo) của Sakai: f SAKAI Framework CHƯƠNG IV HIỆN THỰC CÔNG CỤ CSLAB IV.1 Model Các class này được khai báo Serializable và save vào các đường dẫn tương đối theo từng bài lab được định nghĩa a LabInfo b DependencyInfo c UserInfo d SubmissionInfo e ShellInfo 34 IV.2 Package a Org.sakaiproject.cslab.tool.model:... • 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... là 22 30  Version mới nhật của SSH hiện nay là version 2 nâng cao tính bảo mật (ví dụ: sử dụng cơ chế trao đổi khóa Diffie – Hellman, message authentication code để kiểm tra tính toàn vẹn ) hay thêm một số chức năng (chạy nhiều shell trong một kết nối SSH …) b JSCH: thư viện SSH trong Java  JSch là thư viện Java hiện thực việc kết nối đến SHH Server sử dụng giao thức SSH- 2, được phát hành với dưới... Hierarchy, ngoài ra pom.xml là nội dung của file pom của project này, Effective POM là nội dung file pom của project này merge với các file pom cha, ông …v…v Nếu bạn mở một project trong Sakai và xem effective pom bạn sẽ thấy file pom rất dài và dễ dàng nhận ra được một phần trong đó là từ file sakai- src/master/pom.xml Ngoài ra m2eclipse còn cho phép bạn xem danh sách dependency và các mối quan hệ một cách... giảng viên thực hiện các thao tác lên bài lab hiện tại: sửa, xóa, xem tình trạng, trở về trang chính  Trang xem tình trạng bài lab 2.4-Lab Statistic • Bảng chứa danh sách các sinh viên và tình trạng làm bài • Cột Status Thể hiện tình trạng bài làm của sinh viên Đã làm 27 Chưa làm Trễ hạn (xuất hiện khi đã qua End Date) • Cột StudentID Khi click vào ID của sinh viên, bài làm của sinh viên sẽ hiện ra • . 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ạ. 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. 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

Ngày đăng: 20/08/2015, 17:40

Từ khóa liên quan

Mục lục

  • CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI

    • I.1. Mô tả yêu cầu

    • I.2. Các Business Rules

    • I.3. Các phương hướng thực hiện

    • I.4. Tính khả thi của phương hướng được lựa chọn

    • CHƯƠNG II. PHÂN TÍCH - THIẾT KẾ CÔNG CỤ CSLAB

      • II.1. Các chức năng chính

      • II.2. Cấu trúc công cụ CSLab

      • II.3. Hoạt động của công cụ CSLab

      • II.4. Thiết kế giao diện và hoạt động của các trang trong công cụ CSLab

      • CHƯƠNG III. CÁC KIẾN THỨC LIÊN QUAN

        • III.1. SSH trong JAVA

        • III.2. Lập trình công cụ trong SAKAI Framework

        • CHƯƠNG IV. HIỆN THỰC CÔNG CỤ CSLAB

          • IV.1. Model

          • IV.2. Package

          • IV.3. Hệ thống các trang JSP

          • IV.4. Hiệu ứng phụ

          • CHƯƠNG V. TRIỂN KHAI CÔNG CỤ CSLAB

            • V.1. Cài đặt

            • V.2. Cấu hình

            • V.3. Các lưu ý khi sử dụng

            • CHƯƠNG VI. TỔNG KẾT

              • VI.1. Các kết quả đạt được

              • VI.2. Một số giới hạn

              • VI.3. Các phương hướng phát triển

Tài liệu cùng người dùng

Tài liệu liên quan