Sau một thời gian dài làm việc miệt mài và căng thẳng, chúng em đã hoàn thành được đề tài của mình.
Trang 1Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
LỜI CAM ĐOAN
Chúng em xin cam đoan rằng ngoài các tham khảo đã được ghi rõ, các kết quả đã thực hiện được trong luận văn này là do chính chúng em thực hiện Có một số phần trong báo cáo luận văn chúng em có lấy ý tưởng từ các tài liệu tham khảo để có thêm ý tưởng cho việc phát triển đề tài nhưng chúng em đảm bảo rằng đã thấu hiểu hoàn toàn các nội dung
đó Tuyệt đối không có việc sao chép hoàn toàn từ một tài liệu nào đó mà chúng em không hiểu được nội dung đã sao chép
LỜI CẢM ƠN
Trang 2Sau một thời gian dài làm việc miệt mài và căng thẳng, chúng em đã hoàn thành được đề tài của mình Trong suốt quá trình làm việc chúng em nhận được sự giúp đỡ rất nhiều từ gia đình, thầy cô và bạn bè, những người đã luôn ủng hộ chúng em khi chúng em cảm thấy khó khăn và chán nản nhất, những người đã đưa ra những đóng góp thiết thực và bổ ích để giúp chúng em định hướng và có cách giải quyết tốt nhất cho đề tài của mình trong suốt quá trình làm Luận Văn Tốt Nghiệp
Chúng em xin cảm ơn gia đình, bạn bè những người đã luôn ủng hộ chúng em trong suốt quá trình làm luận văn
Chúng em vô cùng biết ơn thầy Phạm Trần Vũ, thầy hướng dẫn của chúng em, người thầy kính yêu, người đã luôn đưa ra những lời khuyên chân thành và bổ ích cho đề tài của chúng em, nếu không có sự hướng dẫn tận tình của thầy thì chúng em không thể hoàn thành được đề tài này
Chúng em cũng xin chân thành cảm ơn Thầy Nguyễn Quang Hùng cùng với các thầy và các anh trong phòng hệ thống mạng và máy tính, những người đã hướng dẫn cho chúng
em rất nhiều trong Luận Văn Tốt Nghiệp này
Một lần nữa chúng em xin cảm ơn tất cả mọi người, Sự tin tưởng của mọi người chính là động lực để chúng em hoàn thành tốt luận văn này
TÓM TẮT LUẬN VĂN
Luận văn xây dựng một cơ chế Single-Sign-On từ Sakai vào môi trường Vn-Grid
Trang 3Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Công việc chính của Luận Văn là tích hợp các Grid-portlet theo chuẩn JSR 168 vào Sakai
để có thể từ Sakai truy cập vào hệ thống Vn-Grid
MỤC LỤC
LỜI CAM ĐOAN ii
Trang 4Chương 1: Tổng Quan Về Đề Tài Luận Văn vii
1.1 Giới thiệu đề tài vii
1.2 Mục tiêu của đề tài viii
1.3 Hướng tiếp cận của đề tài viii
1.4 Phương pháp triển khai đề tài viii
1.5 Cấu trúc luận văn viii
Chương 2: Các kiến thức nền tảng trong đề tài luận văn ix
2.1 Tổng quan về hệ thống tính toán lưới ix
2.2 Globus Toolkit 4.0 xi
2.3 Single Sign On xix
2.4 Tổng quan về sakai xxiii
2.5 Tổng quan về OGCE portal xxviii
2.6 Tổng quan về Axis Service xxx
2.7 Chuẩn portlet JSR 168 xxxii
Chương 3: Phân tích và hiện thực hệ thống đề tài luận văn xxxvii
3.1 Phân tích hệ thống xxxvii
3.2 Đề xuất cơ chế tích hợp portlet JSR 168 vào Sakai xliii
3.2.1 Xây dựng các tool tương ứng xliii
3.2.2 Tích hợp Grid portlet dựa vào chuẩn WSRP xlv
3.2.3 Tích hợp portlet JSR 168 vào Sakai xlv
Chương 4: Kết luận lii 4.1 Những thành quả đạt được của luận văn: lii
4.2 Những hạn chế của luận văn lii
4.3 Những khó khăn khi thực hiện đề tài lii
4.4 Hướng phát triển của luận văn: liii
Chương 5: Phụ lục và tài liệu tham khảo liv
5.1 Cài đặt Globus Toolkit 4.0 liv
5.2 Cài đặt OGCE portal lxv 5.3 Cài đặt sakai phiên bản 2.5.4 lxvii Tài liệu tham khảo lxxv
Trang 5Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
DANH MỤC HÌNH
Trang 6Chương 1: Tổng Quan Về Đề Tài Luận Văn
1.1 Giới thiệu đề tài
Trong thời gian gần đây với sự phát triển như vũ bão của nghành công nghệ thông tin Các hệ thống mạng ngày càng phát triển và nâng cấp cả về tài nguyên phần cứng, tốc độ, băng tần Cùng với đó là sự phát triển của nền công nghiệp, dịch vụ bắt buộc các doanh nghiệp và người dùng phải tiếp cận và ứng dụng công nghệ thông tin một cách mạnh mẽ Nhưng đi kèm với đó đòi hỏi một nguồn lực về tài chính và con người Ra đời trong hoàn cảnh đó, tại thời điểm hiện tại của luận văn một thế hệ công nghệ thông tin mới dần ra đời Đó là điện toán đám mây (Cloud Computing) Có thể nói các ông lớn như: IBM, Google, Microsoft… đang tập trung phát triển nhằm cung cấp các dịch vụ số cho các doanh nghiệp giải quyết các vấn đề về chi phí cơ sở hạ tầng và con người của doanh nghiệp trong việc ứng dụng công nghệ thông tin
Trong khi đó năm 2010 là một năm thành công ngoài sức mong đợi của mạng xã hội facebook Mark Zuckerberg, nhà sáng lập mạng xã hội facebook, đã tạo ra một thế hệ công nghệ kế nối mới trên internet, sau web, forum, blog Thì giờ hơn nữa tỉ người dùng facebook Điều đó chứng tỏ rằng khả năng tương tác, kết nối giữa người với người ngày càng được cải thiện Con người ngày càng có nhu cầu phải kết nối,nhanh, dễ dàng, và hiệu quả
Trong bối cảnh này thì trong cộng đồng nghiên cứu khoa học cũng đang cần xây dựng
và thiết lập một hệ thống Trong hệ thống đó phải kết hợp được những tính năng kết nối giống như facebook, các nhà hóa học, vật lý học, địa chất học, có thể tìm thấy nhau, chia
sẽ, thảo luận một cách dễ dàng Đồng thời đối với các nhà khoa học phải đối diện với ngày càng nhiều bài toán phức tạp và đòi hỏi một lượng tính toán, phân tích lớn Bởi vậy
hệ thống trên phải đáp ứng được sức mạnh tính toán, khả năng đáp ứng nhanh với một chi phí chấp nhận được thì Tính Toán Lưới[1](grid computing) là một lựa chọn đáp ứng được Một hệ thống kết hợp hai yêu cầu trên mà các nước phương Tây đã phát triển rất sớm từ năm 2003 là Sakai VRE Demonstrator[2] tại các trường đại học ở Anh và Mỹ Còn
ở Việt Nam thì chưa có một hệ thống nào tương tự như thế Do đó đề tài luận văn của nhóm góp phần nghiên cứu và xây dựng một hệ thống như trên
Tại trường đại học Bách Khoa thành phố Hồ Chí Minh hiện đang xây dựng hệ thống tính Toán Lưới (Vn-Grid)[3] Hệ thống tính toán lưới này được xây dựng trên bộ Globus Toolkit 4.0[4][5][6] và Sakai [7][8] 2.5.4 hoặc 2.7.1 Đề tài luận văn sẽ giải quyết bài toán truy cập hệ thống tính toán lưới thông qua Sakai Câu hỏi được đặt ra là tại sao phải phát triển theo hướng phải truy cập hệ thống tính toán lưới hay GlobusTookit 4.0 thông qua Sakai
mà không dùng một hệ thống khác? Bởi vì Sakai có thể đáp ứng được yêu cầu trên một cách tốt nhất Hiện nay có trên 350 tổ chức giáo dục sử dụng Sakai như một hệ thống quản lý giáo dục và khoa học, tạo ra một môi trường liên kết hợp tác giữa các nhà khoa học Từ đó ta có thể tạo ra một mạng lưới mà trên đó các nhà khoa học có thể chia sẻ tài nguyên, dữ liệu nghiên cứu của mình cho người khác, có thể sử dụng sức mạnh của các
Trang 7Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
thành viên trong cùng mạng lưới để giải quyết những bài toán có độ phức tạp cao Đó chính là lợi ích của việc xây dựng mạng lưới tính toán này
1.2 Mục tiêu của đề tài
Mục tiêu của đề tài là làm sao tạo ra môi trường truy cập hệ thống tính toán lưới thông qua Sakai portal Người dùng sau khi đăng nhập vào Sakai thì có thể lấy proxy để truy cập vào hệ thống tính toán lưới và thực hiện các công việc trên hệ thống tính toán lưới
1.3 Hướng tiếp cận của đề tài
Từ quá trình tìm hiểu lúc thực tập đến lúc bắt tay vào việc làm luận văn, nhóm đã tham khảo nhiều tài liệu trên mạng và có thể đưa ra ba hướng tiếp cận để hoàn thành đề tài này:
• Xây dựng các tool mới hoàn toàn cho Sakai để truy cập vào hệ thống tính toán lưới Hướng tiếp cận này thuận lợi ở chỗ ta là người chủ động trong việc xây dựng các tool này và có thể tùy biến các tool theo ý của ta Tuy nhiên để làm theo hướng này thì cần thời gian để tìm hiểu kiến trúc Sakai các công cụ xây dựng tool cho Sakai… Vì thời gian luận văn có hạn nên nhóm không thể đi theo hướng này
• Tích hợp các Grid-portlet vào Sakai dựa trên chuẩn WSRP[9] (Web Service for Remote Portlet), hướng này có ưu điểm là khá đơn giản chỉ cần cài đặt Sakai Portal
và OGCE(Open Grid Computing Enviroments)[10] portal sau đó tích hợp cơ chế WSRP lên Sakai và OGCE để Sakai có thể truy cập đến các portlet của OGCE và thực hiện các tác vụ để truy cập đến hệ thống tính toán lưới Lúc này Sakai portal chỉ đóng vai trò cầu nối cho OGCE portal truy cập đến hệ thống tính toán lưới Hướng này không phù hợp với yêu cầu của đề tài đó là tạo môi trường truy cập hệ thống tính toán lưới trực tiếp từ Sakai
• Tích hợp các grid-portlet có sẵn từ OGCE portal vào Sakai Các grid-portlet của OGCE portal được viết theo chuẩn JSR 168[11][12][13] trong khi từ phiên bản Sakai 2.4 thì Sakai đã bắt đầu hỗ trợ cho chuẩn portlet JSR 168 nên hướng này là hướng khả thi nhất và tốn ít thời gian để thực hiện đề tài Và nhóm quyết định thực hiện
đề tài theo hướng tích hợp các portlet có sẵn từ OGCE portal vào Sakai
1.4 Phương pháp triển khai đề tài
Nhóm quyết định lựa chọn phương án tích hợp các portlet có sẵn từ OGCE sang Sakai và triển khai trên 2 portlet đó chính là proxymanager portlet và jobsubmit portlet để xây dựng hệ thống mẫu cho luận văn Sau khi tích hợp thành công hai portlet này vào Sakai thì các grid-portlet khác có thể được tích hợp tương tự vào Sakai
1.5 Cấu trúc luận văn
Chương 1: Giới thiệu đề tài
Trang 8Trong chương này nhóm sẽ giới thiệu tổng quan đề tài, tầm quan trọng của đề tài, nhiệm
vụ của đề tài, hướng tiếp cận đề tài, phương pháp triển khai đề tai và cấu trúc của luận văn
Chương 2: Những kiến thức nền tảng của đề tài luận văn
Trong chương này nhóm trình bày gần như toàn bộ các vấn đề tìm hiểu trong quá trình luận văn bao gồm:
• Tổng quan về Grid Computing
• Globus Toolkit 4.0
• Dịch vụ Myproxy
• Dịch vụ GRAM
• Cơ chế Single Sign On (SSO)
• Sakai và kiến trúc của Sakai
• OGCE và kiến trúc của OGCE
• Giới thiệu về Axis Service
• Chuẩn portlet JSR168
Chương 3: Quá trình hiện thực đề tài luận văn
• Phân tích đưa ra mô hình thiết kế của hệ thống, Lựa chọn cách tiếp cận đề tài
• Cách thức tích hợp lần lượt hai portlet Myproxy manager và Jobsubmit của OGCE Portal vào Sakai
Chương 4: Kết Luận
Trình bày những nhận xét, đánh giá của nhóm về những khó khăn khi thực hiện đề tài, những kết quả được, những hạn chế của luận văn, và đề xuất hướng phát triển
2.1 Tổng quan về hệ thống tính toán lưới
Mở đầu
Khái niệm hệ thống tính toán lưới[1] ra đời cùng với sự hình thành và phát triển của mạng Internet thế hệ thứ hai (Internet-II) Cũng giống như lịch sử hình thành và phát triển của mạng Internet hiện nay bắt đầu từ những năm 70 của thế kỷ trước, xuất phát điểm ban đầu
Trang 9Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
của Internet là để phục vụ trao đổi thông tin khoa học - giáo dục giữa các trường đại học, viện nghiên cứu trên toàn thế giới Nhưng sau đó, vào giữa những năm 1990, Internet đã được thương mại hoá bởi các Công ty Viễn thông và dịch vụ giá trị gia tăng Hiện nay, các công nghệ mạng lưới (Grid Technologies) mới chỉ được giới khoa học – công nghệ biết đến qua các hoạt động nghiên cứu – phát triển và các thông tin từ các Hội nghị, Hội thảo điễn ra khá sôi động trong một thập kỷ trở lại đây Tuy nhiên, các công nghệ mạng lưới mà trong đó tính toán lưới, cùng với mạng Internet thế hệ thứ hai đã được đông đảo giới khoa học – công nghệ và đặc biệt là các công ty CNTT-VT đa quốc gia lớn trên thế giới đánh giá rất cao
Tính toán lưới hiện đang trên đà phát triển để trở thành nền tảng công nghệ chủ đạo của mạng Internet thế hệ mới, giữ vai trò giống như nghi thức TCP/IP đối với mạng
Internet hiện nay Các sản phẩm công nghệ trên nền mạng lưới đang được thương mại hoá
để đưa ra ứng dụng rộng rãi trong tương lai gần Công nghệ mạng lưới sẽ đưa mạng máy tính Internet ngày nay đến gần hơn với kiến trúc mạng lưới điện, nơi mà việc khai thác, sử dụng và cung cấp các tài nguyên tính toán cũng đơn giản như gắn thêm một thiết bị cung cấp/sửdụng điện mới vào mạng
Định nghĩa về tính toán lưới - Grid Computing
Tính toán lưới là một công nghệ cho phép các tổ chức ảo (Virtual organization) chia sẻ tài
khiển tập trung
gồm nhiều thành viên nằm rải rác khắp địa cầu Một số tổ chức ảo như:
• Đội thiết kế Blended Wing Body của hãng Boeing
• Bộ phận quản lý sản phẩm Global VPN của hãng Worldcom có mặt trên 28 quốc gia
• Phòng kế toán tài vụ của 1 công ty
trạm làm việc, máy chủ, nhóm máy tính (cluster), siêu máy tính hoặc có thể là tài nguyên lưu trữ như ổ đĩa cứng trong máy PC, các thiết bị lưu trữ chuyên dụng như RAID Các thiết bị đo lường, bộ dò (sensor) cũng là 1 dạng tài nguyên cần chia sẻ Thậm chí băng thông mạng, phần mềm cũng là tài nguyên của một tổ chức ảo
Tổng Quan về Mô Hình Mạng Lưới
Hệ thống tính toán lưới là hệ thống phần cứng và phần mềm kết nối mạng máy tính thế hệ sau, cho phép chia sẻ các tài nguyên tính toán (conputing resources) của các máy tính nối mạng, làm tăng gấp nhiều lần hiệu năng và tốc độ xử lý thông tin Tính toán lưới (Grid Computing) là công nghệ nền trong việc hình thành mạng lưới, là nền tảng phần mềm chạy trên nền các thiết bị phần cứng kết nối mạng truyền thống giúp xây dựng những ứng dụng mạng lưới có năng lực năng lực tính toán rất mạnh mẽ, có khả năng chuyển tải những khối lượng dữ liệu khổng lồ, khả năng lưu trữ và truy cập thông tin trên mạng mà
Trang 10bằng những giải pháp phần mềm và công nghệ mạng Internet truyền thống chỉ dựa trên nghi thức TCP/IP không thể đạt tới.
Hình 2 1: Mô hình kiến trúc hệ thống lưới
Mạng lưới được xây dựng trên nền tảng kiến trúc mở và phân tầng (có thể so sánh với cấu trúc phân tầng của họ giao thức nền tảng trao đổi thông tin trên mạng Internet là TCP/IP) Trong mỗi tầng của mạng lưới, các thành phần được chia sẻ các thuộc tính chung và có thể được bổ sung những tính năng mới mà không ảnh hưởng đến các tầng khác:
• Tầng tác chế (Fabric): giúp định vị các tài nguyên mạng lưới
• Tầng kết nối (Connectivity): giúp kết nối mạng lưới trên các mạng
• Tầng tài nguyên (Resource): giúp chia sẻ các tài nguyên mạng lưới
• Tầng kết hợp (Collective): giúp kết hợp và định vị nhiều kiểu tài nguyên
• Tầng ứng dụng (Application): giúp kết nối các ứng dụng hướng người dùng để truy cập và sử dụng tài nguyên mạng lưới
Globus được phát triển bởi tổ chức Globus Alliance, phiên bản 1.0 ra đời vào năm 1998, phiên bản gần đây nhất là phiên bản 5.0 ra đời vào tháng 1 năm 2010
Trang 11Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Hình 2 2: Kiến trúc của Globus Toolkit
Tầng local-service chứa các dịch vụ của hệ điều hành, dịch vụ mạng như TCP/IP…
Tầng chính chứa các công cụ để xây dựng các cơ chế bảo mật, gửi các công việc để thực
thi (job submission), quản lý tài nguyên, quản lý thông tin tài nguyên Tầng cao hơn cung
cấp các dịch vụ và công cụ để tương tác với các dịch vụ bên dưới và hiện thực các chức năng còn thiếu
Tầng bảo mật GSI
Tầng này cung cấp các phương thức xác thực của người dùng trong môi trường lưới và cơ chế bảo một trong trao đổi dữ liệu Nó dựa trên nền tảng SSL, PKI và chuẩn X.509 Tầng GSI cung cấp các dịch vụ, giao thức và thư viện để thực thi các vấn đề bảo mật trong môi trường lưới như:
• Xác thực một lần (single sign-on) trong việc sử dụng các dịch vụ của hệ thống lưới thông qua chứng nhận (certificate) của người dùng.
• Xác thực việc sử dụng tài nguyên thông qua certificate của host
• Mã hóa dữ liệu
• Ủy quyền
Trang 12Người dùng muốn truy cập vào các tài nguyên của hệ thống lưới cần phải có một
certificate subject ánh xạ với một tài khoản trên máy ở xa được cung cấp bởi người quản
trị của hệ thống Chứng thực này cần phải được ký bởi một tổ chức (CA) mà hệ thống tin tưởng Hầu hết các dịch vụ đòi hỏi người dùng phải được xác thực trước khi sử dụng các chức năng của nó Điều này đảm bảo việc chống thoái thác trách nhiệm và bảo mật dữ liệu cho cả người sử dụng lẫn hệ thống
Quản lý tài nguyên (resource management)
Globus resource allocation manager (GRAM): GRAM cung cấp khả năng thực thi các
công việc trên các máy ở xa, và trả kết quả thực hiện lại cho trình khách Khi người dùng
gửi một công việc lên gatekeeper deamon trên máy ở xa, thì gatekeeper deamon sẽ kiểm
tra xem người dùng này đã được xác thực hay chưa Nếu người dùng này đã được xác thực thì nó sẽ tạo một job manager để quản lý và điều khiển việc thực thi công việc này
Tùy thuộc vào biểu thời gian (scheduler) của hệ thống mà job manager có được tao ra ngay lập tức hay không Có nhiều loại biểu thời gian như: Portable batch system (PBS),
Load sharing facility (LSF), và Load Leveler Trong GRAM chứa Globus resource specification language (RSL) dùng để chứa các thông tin về tài nguyên mà một công việc
cần để thực thi như số lượng CPU, kích thước tối thiểu của bộ nhớ,…
Globus access to secondary storage (GASS): GASS là cơ chế truy cập tới các tập tin
trong hệ thống, nó cho phép ứng dụng có thể đọc, ghi các tập tin trên hệ thống từ xa GASS sử dụng GSI để đảm bảo đúng quyền hạn khi đọc ghi dữ liệu trên hệ thống
Dịch vụ cung cấp thông tin của tài nguyên (Information services)
Gói này cung cấp thuộc tính của các nút (node) tham gia vào hệ thống lưới Monitoring
and discovery service (MDS) cung cấp các hổ trợ để thông báo và truy vấn các thông tin
tài nguyên của hệ thống MDS gồm ba tầng: tầng dưới cùng là Information providers
(IPs), nó chịu trách nhiệm tập hợp dữ liệu về thông tin, trạng thái của tài nguyên; tầng thứ
hai là Grid resource information service (GRIS), nó chịu trách nhiệm trả lời các truy vấn
về thông tin của tài nguyên và cập nhật vào cache; tầng trên cùng là Grid information
index service (GIIS), nó làm đề mục (index) cho thông tin tài nguyên được cung cấp bởi
GRIS và GIIS khác mà đăng ký với nó
Quản lý dữ liệu (Data management)
Gói này cung cấp các tiện ích và thư viện để truyền tải, lưu trữ và quản lý các tập dữ liệu lớn Nó gồm 2 thành phần chính:
• GridFTP: Đây là giao thức mở rộng của giao thức FTP nhằm đảm bảo dữ liệu
được chuyển đổi trong môi trường lưới được bảo mật, đáng tin cậy và hiệu quả Ngoài ra, nó được chạy trên tầng GSI nhằm đảm bảo quá trình truyền nhận được xác thực đúng người, đúng quyền
Trang 13Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
• Replica location and management: thành phần này hỗ trợ một file có thể được lưu
trữ nhiều nơi trong môi trường lưới Replica location service (RLS) chịu trách
nhiệm tạo và xóa các bản sao (replica)
Dịch vụ Myproxy
Dự án về MyProxy[14] bắt đầu từ năm 2000 nhằm cung cấp một kho chứng chỉ trực tuyến dùng cho các grid-portal và Globus Toolkit Trước đây khi truy cập vào mỗi hệ thống tính toán lưới chúng ta phải có chứng chỉ lưu trên máy tính mà chúng ta đang sử dụng Điều này nghĩa là trên nếu chúng ta ngồi trên một máy tính mà không có chứng chỉ để truy xuất vào hệ thống lưới thì chúng ta sẽ không truy cập được vào hệ thống lưới đó Myproxy giúp chúng ta giải quyết đượcvấn đề này bằng cách sẽ lưu các chứng chỉ lên một kho chứng chỉ trực tuyến được gọi là Myproxy Server, từ đó khi chúng ta ở bất kì máy tính nào thì chúng ta đều có thể truy cập vào Myproxy Server để lấy chứng chỉ đó về
và truy cập vào hệ thống bình thường
Myproxy có thể được dùng bằng nhiều cách khác nhau Sau đây là một số cách dùng của nó:
Hình 2 3: Mô hình tổng quát của Myproxy service
Sau khi nhận được một chứng chỉ từ một cơ quan chứng thực (CA) ta có thể lưu chứng chỉ đó lên một kho chứng chỉ online được gọi là Myproxy server bằng lệnh myproxy-init Về mặc định lệnh myproxy-init lưu một chứng chỉ có thời hạn 7 ngày nhưng bạn có thể gia tăng thời gian hiệu lực của chứng chỉ đó Sau đó khi ta cần truy cập vào hệ thống lưới thì ta có thể lấy một chứng chỉ tạm thời từ myproxy server bằng lệnh myproxy-logon Với giải pháp myproxy server chúng ta không cần phải sao chép chứng chỉ truy cập hệ thống lưới từ máy này qua máy khác vì việc này rất dễ gây ra lỗi và sẽ không đảm bảo an toàn cho việc truy xuất hệ thống lưới của chúng ta
Trang 14Hình 2 4: Myproxy CA
Dùng MyProxy CA giúp chúng làm cho vấn đề lưu trữ chứng chỉ trở nên đơn giản hơn Trong trường hợp này Myproxy CA vừa là nơi cấp các chứng chỉ cho người dùng vừa là nơi lưu các chứng chỉ đó tức là ta không cần phải lấy chứng chỉ người dùng được cấp từ CA rồi dùng lệnh myproxy-init để lưu chứng chỉ đó lên Myproxy Server rồi khi cần dùng thì ta phải gọi lệnh myproxy-logon để lấy một chứng chỉ tạm thời về máy của mình, mà ở đây với MyProxy CA ta chỉ cần một lệnh myproxy-logon là có thể lấy một chứng chỉ tạm thời từ Myproxy CA để phục vụ cho việc truy cập hệ thống lưới
Hình 2 5: Myproxy trong Grid-portal
Một grid-portal là một trang web cung cấp một giao diện cho nhiều dịch vụ khác nhau, cho phép người dùng truy cập vào hệ thống lưới để thực hiện các tác vụ tính toán từ xa, truyền tải file và truy vấn thông tin về các dịch vụ thông qua một trình duyệt web chuẩn
Có nhiều cách để Myproxy có thể được dùng với các grid-portal Trường hợp tổng quát nhất để thông qua grid-portal truy cập đến hệ thống lưới đó là bạn đăng nhập vào portal
và portal sẽ liên hệ với Myproxy Server để lấy một chứng chỉ để nó có thể truy cập đến hệ thống lưới với danh nghĩa của ta Portal cần phải xác thực với Myproxy server để chứng minh rằng nó đang thay mặt ta để lấy chứng chỉ của ta về Một phương thức có thể dùng
đó chính là người dùng nhập thông tin của mình gồm username và password để đăng nhập vào portal, và sau đó portal sẽ dùng username và password này để xác thực bạn với Myproxy Server và lấy chứng chỉ của bạn về Một cách khác đó chính là sau khi bạn đăng nhập vào portal thì portal sẽ cung cấp một giao diện để bạn cung cấp thông tin về chứng chỉ của bạn (hostname của Myproxy Server, username và password của chứng chỉ…),
Trang 15Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
portal sẽ sử dụng những thông tin đó để xác thực với Myproxy Server để lấy chứng chỉ của bạn về
Cơ chế hoạt động của Myproxy
Hình 2 6: Cơ chế hoạt động của Myproxy
• Client A muốn xác thực một username sử dụng một password Thì client A gửi một request gồm username/password tới MyProxy server
• MyProxy Server sử dụng nhiều cơ chế khác để xác thực Username/Password trên
Có thể MyProxy Server sẽ kiểm tra các chứng chỉ của user này trên cơ sở dữ liệu của mình Hoặc có thể xác thực user này thông qua các cơ sở dử liệu bên ngoài theo cơ chế Pluggable Authentication Module[7] hay Simple Authentication and Security Layer(SASL)[8]
• Nếu việc xác thực thành công, MyProxy Server trả về một chứng chỉ mới cho user
• Client A sẽ tạo ra một Session Password P' để sử dụng trong lần kế tiếp nếu một ứng dụng nào đó đòi hỏi phải xác nhận Username
• Client sẽ lưu lại chứng chỉ lên MyProxy Server dưới tên là Username và password P' Client A chỉ định thời gian tồn tại của chứng chỉ này Đó cũng chính là thời gia hữu dụng của Sesion password P’ MyProxy Server tự động kiểm soát thời gian này
• Sau khi kết thúc quá trình trên Client A có một password P' dùng để truy cập vào các máy khác hoặc các dịch vụ khác trên hệ thống.Các dịch vụ này sẽ sử dụng Username và password P' để xác thực user thông qua MyProxy server Nếu sử dụng java API thì phương thưc này được cung cấp trong file SSOUtils.java
Tổng quan về GRAM
Để người dùng ở xa thực thi một chương trình thông qua một dịch vụ web ta cần phải định nghĩa và cài đặt một dịch vụ web gồm một phương thức gọi thực thi chương trình từ
xa, tuy nhiên để cài đặt được ta phải giải quyết các vấn đề sau:
• State Công việc tính toán có thể thực hiện các thao tác nhập/xuất trong khi chạy
làm ảnh hưởng tới trạng thái của tài nguyên tính toán và/hoặc tới hệ thống tập tin gằn với công việc này Do đó cần phải đảm bảo chỉ thực thi 1 lần: người dùng chỉ
có thể gửi lại yêu cầu sau khi nhận được kết quả phản hồi
• User executables Người dùng có thể cung cấp chương trình của riêng họ để gửi
thực thi từ xa
Trang 16• Staging of input and output Chương trình thực thi, dữ liệu vào/ra có thể lớn, ở
xa, và/hoặc được chia sẻ với các lời gọi thực thi khác Vì thế yêu cầu bố trí dữ liệu vào/ra là cần thiết
• Streaming output Một số chương trình thực thi cần được cung cấp khả năng cung
cấp kết quả kịp thời cho người dùng khi đang chạy Vì vậy người dùng phải được thông báo thường xuyên về dữ liệu ra của chương trình đang chạy
• Control Người dùng đôi khi cần ngưng 1 công việc đang thực thi vì 1 lý do nào
đó
• Scheduler Các tài nguyên tính toán lớn thường chịu sự điều khiển của 1 bộ lập
lịch để cấp phát tài nguyên theo các chính sách ưu tiên một cách tối ưu về hiệu năng
• Monitoring Đối với 1 số công việc (job/task) phức tạp cần được theo dõi quá
trình thực thi và các thao tác can thiệp kịp thời như pending, suspending, staging…
GT4 cung cấp một dịch vụ dùng để quản lý và cấp phát tài nguyên - Grid Resource Allocation and Management[10] (GRAM) nhằm đáp ứng các yêu cầu này Thông thường GRAM được triển khai cùng với các gói MyProxy và RFT để đáp ứng thêm được yêu cầu
về bảo mật, xác thực và trao đổi dữ liệu grid
Hệ thống GRAM kết hợp với các công cụ quản lý đã có được phát triển nhằm giải quyết các yêu cầu trên GRAM cho phép:
• Thực thi 1 chương trình bất kỳ,
• Hoàn thành các thao tác tin cậy,
• Thực hiện theo dõi các trạng thái,
• Quản lý ủy nhiệm thư,
• Bố trí tập tin và
• Tương tác với các bộ lập lịch đã có
Cách thức hoạt động của GRAM
Trang 17Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Hình 2 7: Cấu trúc cài đặt của GRAM
Trong hình trên, các thành phần chính của GRAM gồm:
• Tập các dịch vụ chạy trên GT4 Java container:
• Dịch vụ tạo, theo dõi và quản lý công việc
• Dịch vụ đại diện nhằm quản lý các uỷ nhiệm thư
• Dịch vụ chuyển tập tin tin cậy (RFT) quản lý dữ liệu vào/ra của công việc
• Một bộ tương thích lập lịch (GRAM adapter) để ánh xạ yêu cầu GRAM thành yêu cầu tương ứng tới bộ lập lịch địa phương (đã có sẵn)
• GridFTP server dùng để thực thi các lệnh bố trí dữ liệu vào/ra của công việc
Trang 18• Cơ chế WS-Sercurity nhằm xác nhận những uỷ quyền gắn với yêu cầu và cũng để xác thực người yêu cầu.
• Phân quyền được thực hiện bằng 1 callout cấp quyền Callout này sẽ truy vấn file gridmap, SAML server, hay 1 cơ chế cấp quyền khác
• Nếu có đủ quyền, công việc sẽ được thực thi và trả về 1 số hiệu ID cục bộ Lệnh tiện ích sudo sẽ được dùng để quản lý tài nguyên cục bộ
Các dịch vụ chạy trong GT4 container không yêu cầu 1 quyền đặc biệt: các thao tác cần quyền cao sẽ được thực hiện qua hàm “sudo”
Để tránh sự can thiệp của người dùng khác, công việc (job) được gửi đi thường được thực thi trong 1 bối cảnh an toàn tách biệt: ví dụ như dưới quyền của người dùng UNIX cụ thể dựa vào yêu cầu của công việc và chính sách cấp quyền
Để hỗ trợ việc tính tiền, theo dõi và ngăn chặn tấn công từ bên ngoài, GRAM cung cấp các kỹ thuật thanh toán (audit), và ghi chép (logging) nhằm lưu trữ quá trình hoạt động của hệ thống đặc biệt là các thao tác quan trọng
Thao tác liên quan tới dữ liệu
Các thao tác liên quan tới việc bố trí dữ liệu vào/ra của công việc được GRAM giao cho dịch vụ RFT đảm nhiệm Tuỳ theo yêu cầu, dịch vụ RFT khởi tạo kết nối GridFTP giữa máy nguồn và đích
Ngoài các thao tác bố trí dữ liệu chuẩn, GRAM còn hỗ trợ cơ chế cập nhật dữ liệu ra (standard output) 1 cách liên tục khi công việc đang tiến hành
Khái niệm
Single Sign-On[12] (SSO) là giải pháp phần mềm chứng thực tập trung đối với các ứng dụng chạy trên các platform khác nhau Khi đó, người dùng chỉ sử dụng 1 tài khoản (ID)
để được chứng thực và xác nhận quyền sử dụng tài nguyên của hệ thống
Với hệ thống có nhiều website và application thì việc sử dụng Single Sign On (SSO)
là khá cần thiết nhằm đem lại nhiều thuận tiện cho người dùng và tăng tính năng bảo mật
Lợi ích
• Tránh việc nhớ nhiều thông tin đăng nhập (username & password) khi dùng nhiều dịch vụ
• Tiết kiệm thời gian khi tái lập lại mật khẩu cho một người dùng (identity user)
• Bảo mật tất cả các cấp độ của việc thoát hay truy xuất vào hệ thống
• Người phát triển ứng dụng không cần phải hiểu và thực hiện nhận dạng bảo mật trong ứng dụng của họ
Trang 19Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Hình 2 8: Dịch vụ Single Sign On
Ví dụ: Trong trường học, người dùng sử dụng nhiều dịch vụ Đăng ký môn học, xem
điểm, xem thời khóa biểu được phát triển và lưu trử trên các ứng dụng khác nhau,ứng mỗi dịch vụ ta có một tài khoản riêng Nếu không sử dụng SSO thì với mỗi dịch vụ ta đều phải nhập thông tin để xác thực Khi một tổ chức đã thống nhất sử dụng SSO cho tất cả các dịch vụ của họ thì người dùng chỉ cần đăng nhập một lần duy nhất trên bất kỳ dịch vụ nào trong tổ chức, thì khi truy xuất những dịch vụ khác, người dùng không cần phải đăng nhập lại
SSO có thể được sử dụng dưới các dạng:
• Single Domain: Khi xác thực thành công vào domain.com, người dùng đồng thời được xác thực vào các sub-domain.domain.com tồn tại
• Multi Domain: Khi xác thực thành công vào facebook.com, người dùng đồng thời được xác thực vào example.com
SSO thường sử dụng Cookie để nhận diện, webserver (hay webgate) gửi cookie đã được mã hóa cho browser đã xác thực thành công, cookie này sẽ là chìa khóa sử dụng cho các xác thực tới các tài nguyên khác hoặc cho các xác thực có cùng cấp
Phần Cookie được mã hóa có thể bao gồm các thông tin: session, distinguished name của người dùng đã xác thực thành công, IP của client đã yêu cầu, thời điểm khởi tạo
Trang 20cookie, thời điểm sửa đổi cookie các thành phần không mã hóa của cookie có thể bao gồm: thời gian expired, domain hoạt động, SSL/ Httponly…
Thuật toán mã hóa được recommend hiện nay là AES, bên cạnh là các thuật toán kém bền vững hơn nhưng thông dụng như MD5-salt, RC4, RC6 vẫn được sử dụng phổ biến trong các mã hóa cookie/ session
Single Domain SSO
Cookie Path được cấu hình để dùng chung cho mọi subdomain: domain.com (bao gồm
dấu ở đầu)
Hình 2 9: Mô hình Single Domain SSO
Multi Domain SSO
Multi Domain SSO cho phép người dùng truy cập vào nhiều domains/hosts sau 1 lần đăng nhập Một ứng dụng xác thực chính sẽ cung cấp các cookie hợp lệ cho mỗi domain.Chẳng hạn người dùng truy cập vào gmail.com, khi đó toàn bộ services của Google, như Google.com, Picasa, Blogspot… đều nhận diện tính xác thực cho người dùng đó
Tuy nhiên cùng một cookie không thể được thiết đặt cho các domain khác nhau do chính sách bảo mật của hầu hết browser, do đó một domain chính sẽ được chọn để xác thực ở mọi quy trình, gọi chung là master domain Với mỗi domain khác mà người dùng thực hiện quá trình xác thực, mỗi webgate của hệ thống đó sẽ chuyển yêu cầu tới master domain để xem đã yêu cầu đến từ user đó đã được xác thực chưa trước khi cho truy cập vào hệ thống
Master domain sẽ hoạt động như quy trình của Single Domain SSO, nó chính là
“proxy” để truyền tải cookie hợp lệ về cho mỗi domain có yêu cầu xác thực
Trang 21Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Hình 2 10:Mô hình Multi Domain SSO
Các bước hoạt động:
• Ta thiết đặt master domain, login-service.domain.com
• Mỗi một domain nằm trong group SSO đều có script login riêng
• Mọi hệ thống trên mỗi domain đều sử dụng chung Session Database
• Khi mỗi Client yêu cầu người dùng xác thực, Webgate của nó sẽ redirects tới master domain có chứa login service Nếu người dùng chưa đăng nhập, master domain sẽ triệu gọi script login của webgate mà user vừa mới gởi yêu cầu để thực hiện việc login vào master domain Khi người dùng đã xác thực, một session sẽ được tạo trong database và master domain sẽ cung cấp session id cho client yêu cầu để có thể tạo cookie theo session đó
Ta có thể mô tả hoạt động của Multi Domain SSO ở hình 2 như sau:
• Bước 1: User gởi yêu cầu truy cập tới WebGate1 có domain là host1.domain1.com
• Bước 2: WebGate1 trả lại địa chỉ của Master Domain chính là WebGate2 có domain là host2.domain2.com
• Bước 3: Yêu cầu đăng nhập tự động chuyển từ Browser đến WebGate2 và WebGate 2 yêu cầu user xác thực, tạo ra SSOcookie và được lưu ở WebGate2
• Bước 4: WebGate2 trả về cho Browser SSO cookie
• Bước 5: Browser tự động sử dụng SSOcokie đó để truy cập vào WebGate1
• Bước 6: Nội dung cần truy cập được trả về cho Browser
• Bước 7: Nếu vẫn là User’s Browser đó yêu cầu truy cập vào Webgate 3 thì nó sẽ gởi đi yêu cầu truy cập cùng SSOcookie đã được tạo ra ở bước 4, yêu cầu và SSOcookie vẫn được chuyển tới WebGate2 nhưng lúc này SSOcookie được gởi tới
Trang 22trùng với SSOcookie được lưu ở WebGate2 nghĩa là User đó đã được xác thực nên lúc này sẽ không yêu cầu xác thực lại mà sẽ tự động chuyển yêu cầu truy cập đễn WebGate3 để truy cập vào hệ thống WebGate3.
2.4 Tổng quan về sakai
Năm 2004, Quỹ tài trợ Mellon Foundation quyết định tài trợ cho bốn trường đại học hàng đầu ở Mỹ, Đại học Michigan, Indiana University,Viện Công nghệ Massachusetts và Đại học Stanford để hợp tác phát triển một hệ thống nền mã nguồn mở như một môi trường phần mền để phát triển các công cụ hổ trợ cho việc giảng dạy, học tập, và nghiên cứu khoa học Sau đó thì đại học California tại Berkeley cũng tham gia phát triển Từ đó dự
án Sakai[5] chính thức được ra đời Ngày nay có tới cả triệu cá nhân thuộc các trường đại học và các tổ chức tham gia hợp tác xây dựng hệ thống Sakai Cùng với đó là một lượng rất lớn người dùng sử dụng Sakai như một phần trong công việc giảng dạy, học tập, nghiên cứu trên khắp thế giới
Hình 2 11: Sakai Portal
Sakai CLE (Collaboration and Learning Environment - CLE) là một phần mềm giáo dục miễn phí, mã nguồn mở được phân phối theo Giấy phép Giáo dục Cộng đồng (Educational Community License - một kiểu của giấy phép mã nguồn mở) Sakai CLE được dùng để dạy học, để nghiên cứu và để cộng tác nhiều người với nhau Hệ thống này
là một dạng của Hệ quản trị đào tạo (Learning Management System - LMS)
Trang 23Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Tính năng của sakai
Hình 2 12:Một số tính năng của Sakai
Sakai bao gồm nhiều tính năng chung của các Hệ quản trị đào tạo(tham khao), bao gồm đưa lên các tài liệu hướng dẫn, sách giáo trình, mục thảo luận, chat trực tuyến, bài tập lớn,
và các bài kiểm tra online…
Thêm vào đó, Sakai còn cung cấp một bộ công cụ làm việc nhóm dùng cho nghiên cứu và các dự án nhóm Để hỗ trợ các tính năng này, Sakai đã thêm vào khả năng thay đổi thiết lập của tất cả mọi công cụ dựa trên vai trò, thay đổi quyền hệ thống tùy theo người dùng Nó cũng tích hợp một wiki, mailing list và lưu trữ, và bộ đọc RSS Chính các chức năng này mà dự án Vn-Grid muốn tạo một cộng đồng nghiên cứu khoa học dựa vào Sakai ở đó ngoài những tính năng trên người dùng có thể truy cập vào hệ thống tính toán lưới để tận dụng sức mạnh tính toán phục vụ cho nhu cầu nghiên cứu khoa học
Bộ công cụ làm việc nhóm tích hợp trong nhân của Sakai:
• Announcements - để thông báo cho người dùng về những vấn đề chính yếu
• Drop Box - cho phép giảng viên và học viên trao đổi tài liệu với những thư mục riêng biệt cho mỗi sinh viên
• Email Archive - tất cả tin nhắn gửi đến địa chỉ email của trang web sẽ được lưu trữ tại đây
• Resources - chia sẻ nhiều loại thông tin yêu cầu độ bảo mật với các thành viên trong trang, hoặc cho phép nó được nhìn thấy bởi mọi người
• Chat Room - chat thời gian thực cho mọi thành viên đang đăng nhập vào site
Trang 24• Forums - công cụ để cho giảng viên và thành viên được cấp quyền có thể tạo ra các mục thảo luận
• Threaded Discussion
• Message Center - công cụ giao tiếp cho phép các thành viên sử dụng mail nội bộ
• Message Of The Day
• News/RSS - công cụ đọc RSS
• Poll tool - cho phép người dùng bình chọn trực tuyến
• Preferences
• Presentation - cho phép thực hiện thuyết trình trực tuyến
• Profile / Roster - hồ sơ người dùng, bao gồm hình ảnh, tên tuổi và các thông tin khác
• Repository Search - tìm kiếm thông tin được lưu trữ trên site
• Schedule - cho phép giảng viên đưa thông tin dưới dạng thông tin trên lịch
• Ngoài những công cụ trên Sakai còn rất nhiều các bộ công cụ khác phục vụ cho việc giảng dạy và bổ trợ giảng dạy
Kiến trúc của Sakai [13] :
Sakai không chỉ mà một môi trường hợp tác trong giáo dục mà còn là một framework cho việc phát triển các tool như Wiki, chat tool…một cách đơn giản nhất có thể Sakai được xây dựng trên nền như một ứng dụng java bằng tất cả các framework và kiến trúc hiện đại nhất như Spring, Hibernate, Servlets, Java Server Faces … Về mặt vật lý, Sakai được đặt trong Tomat server giữ vai trò reponse và request cho ứng dụng chạy trên Sakai Hình dưới là một số hình tổng quan về kiến trúc của Sakai:
Trang 25Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Aggregator
Presentation
Tools
Services Client
Tool Presentation
Tool Code
Application Services
Framework Services
Presentation Support
Java Server Faces in JSP
Java Tool Logic Java Beans
Sakai Application Services
Sakai JSF Widget Set
Sakai/OKI APIs
Sakai Stand-Alone
JSR-168 Renderer
WSRP Renderer
uPortal via JSR-168
uPortal via WSRP
Trang 26Mở Sakai lên trong mỗi user như hình dưới cho thấy rằng mỗi user phải làm việc với nhiều Sites.(hình)
Trong mỗi site đó lại có nhiều trang và tool khác nhau (hình nhỏ) Do đó lớp Aggregation này có chức năng tổng hợp các mảnh giao diện từ các trang và tool khác nhau để cho ra một trang web tổng thể cho user Ngoài ra lớp Aggregation này còn cho phép user tùy chọn cách trình diễn của các mảnh giao diện trên theo ý người dùng
Lớp Presentation
Bên dưới lớp Aggregation là lớp Presentation chứa một bộ các thành phần cấu thành một trang của Sakai Tham khảo hình dưới là một ví dụ các thành phần giao diện trong lớp Presentation tập hợp trong một file JSP
<sakai:view_container title="#{msgs.sample_title}">
<sakai:tool_bar> <sakai:tool_bar_item/> </sakai:tool_bar>
<sakai:instruction_message value="#{msgs.sample_one_instructions}" />
<sakai:group_box title="#{msgs.sample_one_groupbox}">
<h:inputText value="#{MyTool.userName}" />
<sakai:date_input value="#{MyTool.date}" />
<sakai:button_bar>
<sakai:button_bar_item action="#{MyTool.processActionDoIt}
value="#{msgs.sample_one_cmd_go}" />
</sakai:button_bar>
Hình 2 15: Lớp Presentation của Sakai
Các công nghệ hiện sử dụng ở lớp Presentation là JSF, JSP, Velocity,và Struts, RSF
Lớp Tool
Tool là một đơn vị chức năng rời rạc trong Sakai ví dụ như tool announcement, wiki…Mỗi tool giúp đáp ứng một chức năng nào đó của người dùng Các tool thao tác trên dữ liệu của mình bằng các dịch vụ cơ bản cung cấp ở lớp service Chức năng của Sakai kernel là quản lí các dịch vụ và các tool Sakai cho phép các nhà phát triển có thể tự xây dựng các dich vụ riêng của mình Do đó khi một dịch vụ mới hay một tool mới được xây dựng thì phải đăng kí với Sakai Kernel Ví dụ ta đang chạy Sakai mà copy vào thư mục wedapp/toolApp thì ngay lập tức toolApp sẽ được đăng ki với Sakai Kernel Các tool này được xây dựng dựa trên các dịch vụ bên dưới của lớp Service
Trang 27Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Lớp services
Việc thiết kế lớp dich vụ nhằm giúp đơn giản hóa quá trình phát triển Sakai che dấu đi các hiện thực chi tiết bên dưới của Sakai Nhà phát triển ứng dụng trên Sakai chỉ cần dựa trên các dich vụ được cung cấp Ví dụ như một tool không cần biết kiểu cơ sở dử liệu bên dưới
là MySQL hay Oracle… hay hệ thống file nào được các dịch vụ sử dụng và đặt ở đâu Các service cơ bản của Sakai như dịch vụ lấy, xóa, thêm một user hay thông tin về các môn học Hoặc ví dụ người phát triển có thể phát triển một dịch vụ thêm, điều chỉnh, xóa trên sổ lớp Từ đó các tool khác có thể sử dụng các dịch vụ này để thay đổi sổ lớp hay chẳng hạn viết một công cụ in sổ lớp dưới những định dạng khác nhau dựa trên dịch vụ đã
có Còn làm thế nào để xây dựng các dịch vụ này người đọc có thể tham khảo chương 11 của tài liệu tham khảo[Sakai-Courseware-Management-the Official-Guide]
Nhìn một các tổng quát thì Sakai như một bó khổng lồ các ứng dụng web chạy cùng một servlet container, cùng chia sẽ các dịch vụ trung tâm Khi một trình duyệt gửi một request; một ứng dụng sẽ nhận request đó, làm một vài công việc, xong trả về một respone chứa những thông tin mà request yêu cầu Quá trình này nhìn chung là khá phưt tạp trước hết request từ web browser sẽ đi qua một bột Aggregator ở lớp Aggregator sau
đó sẽ chia request thành nhiều request nhỏ để chỉ định cho các tool, sau đó các tool này sử dụng các dịch bên dưới và trả về các kết quả mong muốn Cuối cùng bộ Aggregator sẽ thu thập các kết quả trả về của các tool đó để trả về một response cho người dùng ở web Browser ,thông thường là một trang web
2.5 Tổng quan về OGCE portal
OGCE portal là một portal cung cấp các portlet và tool dùng để truy cập vào hệ thống Grid Computing thông qua môi trường web OGCE portal được phát triển dựa trên bột thư viện Java Cog Kit Nó bao gồm nhiều portlet như ProxyManager, JobSubmission, FileManager, Grid Information, Comp-file Manager… và các tool khác axis2, balancer, applets…
Hình 2 16: Các portlet đặc trưng của OGCE portal
Trang 28Hình 2 17: Portlet Myproxy Manager của OGCE portal
Portlet proxymanager dùng để quản lý các chứng chỉ proxy của user Chỉ khi chứng chỉ của user được load lên trong proxymanager portlet thì các portlet khác sẽ sử dụng chứng chỉ này đề xác thực và trở nên sẵn sàng để sử dụng
Hình 2 18: Portlet Comp-file-management của OGCE portal
Trang 29Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Portlet Comp-file-management dùng để truyền file giữa các tài nguyên Grid, upload file lên một tài nguyên Grid, download file từ tài nguyên Grid về máy
Kiến trúc OGCE portal
OGCE portal sử dụng Gridsphere container như một portlet container để quản lý tất cả các Grid portlet trong OGCE portal Do đó các portlet đều phát triển trên nền Gridsphere, ngoài tuân thủ chuẩn JSR 168, còn portlet còn phải tương thích với Gridsphere và sử dụng một vài gói thư viện để chạy như gridsphere-tag.jar…
Hình 2 19: Kiến Trúc của OGCE portal
Như hình ở trên tất cả các các portlet khác của portal đều phải sử dụng MyProxy Manager để lấy chứng chỉ trước khi sẵn sàng Các portlet này sẽ giao tiếp với Globus Tool Kit 4.0 bằng bộ thư viện interface cung cấp cho client là java CoG API Vì tất cả các portlet JSR 168 này đều khả chuẩn từ Gridsphere framework sang uPortal Do đó để chạy các portlet JSR 168 này trong pluto container ở trong Sakai là hoàn toàn có cơ sở Vì pluto về bản chất là một bản thu gọn của uPortal
2.6 Tổng quan về Axis Service
Trước hết tại sao nhóm phải giới thiệu gói dịch vụ Axis[14] ở đây là vì trong quá trình thực hiện đề tài thì nhóm gặp lỗi liên quan đến gói dịch vụ này của apache tomcat Cũng chính lỗi đó mà nhóm đã tốn rất nhiều thời gian để debug
Apache Axis là một gói dịch vụ dùng để điều khiển luồn dữ liệu vào và ra portal Vì các dữ liệu lưu thông trên portal đều đưa về dạng một file XML,ví dụ như các giá trị,
Trang 30thuộc tính của các Java Object, theo một giao thức nào đó cùng với thông tin phụ đi kèm
để truyền đi đến các dịch vụ Do đó để điều khiển các luồn vào ra này thì bên dưới Apache cung cấp một gói gọi là Axis ở cả client và server để điều phối dữ liệu
Trước hết xin gới thiệu hình mô tả cấu trúc bên trong của Axis
Hình 2 20: Kiến trúc của Axis Services
Hình trên là quá trình hoạt động của Axis Engine bên phía server Một message đến tại Transport Listener Trong trường hợp này ta xem nó là một HTTP servlet Công việc của Listener là sẽ đóng gói request đó thành một Message rồi đặt Message này vào một class gọi là MessageContext Trong MessageContext chứa Message còn chứa nhiều thuộc tính khác được Listener thiết lập Khi MessageContext đã được xây dựng thành công thì nó được truyền qua bộ AxisEngine Công việc của AxisEngine là xác định được service bên dưới mà request cần và trả về một reponse cho Listener Thông tin chi tiết về cấu tạo các class bên trong xin xem thêm tài liệu tham khảo, mô tả chi tiết các quá trinh tạo Message và truyền message
Trang 31Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
2.7 Chuẩn portlet JSR 168
Chuẩn portlet JSR 168[15] dùng để định nghĩa portlet và cách thức giao tiếp giữa portlet và portal
Hình 2 21: Mô hình chuẩn của JSR 168
Hình trên mô tả sự giao tiếp giữa portal và các portlet Sự giao tiếp này được thực hiện thông qua các API được cung cấp bởi chuẩn JSR 168
Một số khái niệm chính:
Portal
Portal là một ứng dụng web dùng để tích hợp các nội dung từ các nguồn khác nhau vào cùng một trang web Các nội dung có thể được cấu hình tùy thuộc vào người sử dụng khác nhau mà Portal cho phép Một Portal có thể chứanhiều Portlet
Portlet
Portlet là một thành phần dựa trên nền Web sử dụng các công nghệ của Java Portlet được quản lý bởi một Portlet Container Portlet dùng để xử lý các yêu cầu và tạo ra các thành phần dữ liệu động để phản hồi các yêu cầu
Portlet có thể tích hợp vào Portal và Portal sẽ cung cấp tầng trình diễn cho các thành phần của Portlet
Nội dung được tạo ra bởi các Portlet được gọi là Fragment Một Fragment là một mảnh dữ liệu được tạo ra bởi các ngôn ngữ như: HTML, XML… theo một định dạng được quy định Các Fragment này có thể được kết hợp với các Fragment của các Portlet khác để hình thành trang Web của portal
Trang 32Người sử dụng tương tác với Portlet thông qua cơ chế yêu cầu/phản hồi được cung cấp bởi Portlet Nội dung phản hồi yêu cầu được Portlet tạo ra và nội dung này cũng tùy thuộc vào cấu hình ứng với từng người sử dụng.
Portlet Container
Portlet Container cung cấp một môi trường để chứa đựng và quản lý chu kỳ sống của một Portlet
Portlet Container nhận yêu cầu từ Portal và chuyển yêu cầu này đến Portlet tương ứng
để Portlet xử lý yêu cầu và tạo nội dung phản hồi
Giao diện Portlet
Giao diện Portlet khai báo các API cơ bản nhất của một Portlet Mọi Portlet được xây dựng đều phải hiện thực hóa trực tiếp hoặc gián tiếp giao diện Portlet
Lớp GenericPortlet hiện thực hóa giao diện Portlet và định nghĩa các chức năng cơ bản nhất mà một Portlet cần có Do đó khi xây dựng Portlet, lập trình viên nên mở rộng trực tiếp hoặc gián tiếp lớp GenericPortlet này
Một Portlet được quản lý thông qua chu trình sống của nó bắt đầu từ lúc Portlet được tải lên, tạo thể hiện của nó và khởi tạo, hoạt động để phản hồi yêu cầu của người sử dụng đến lúc nó được loại bỏ Các phương thức được gọi đến trong chu trình sống của Portlet là:
• Gọi Phương thức init trong quá trình khởi tạo Portlet
• Nêu yêu cầu do máy khách gởi tới là yêu cầu hành động( Action Request) thì phương thức processAction được gọi Nếu yêu cầu do máy khách gởi tới là yêu cầu biểu hiện ( Render Request) thì phương thức render được gọi
• Khi Portlet Container xác định một Portlet không còn sử dụng nữa thì gọi đến phương thức destroy của Portlet đó Khi phương thức destroy được gọi thì Portlet
sẽ giải phóng tài nguyên mà nó đang sử dụng và lưu lại trạng thái hiện thời của nó
Trang 33Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
cho ta biết những tác vụ nào một Portlet cần thực hiện và những nội dung nào Portet cần phải tạo ra
Có 3 kiểu Portlet được quy đinh là:
• Một phản hồi của Portlet bao gồm những thông tin được tạo ra bởi Portlet gởi trả
về cho Portlet Container dựa trên yêu cầu được gởi đến như: sự thay đổi kiểu
Trang 34Portlet, tiêu đề, nội dung… Portlet Container sẽ sử dụng những thông tin này để tạo ra phản hồi đến người sử dụng, thông thường là một trang Web Portal.
• Mỗi đối tượng phản hồi chỉ có thể hoạt động trong phạm vi của một phương thức procesAction hay render
• Các chức năng cần thiết của đối tượng Portlet Respone được khai báo trong giao diện PortletRespone
Portlet Preferences
• Portlet thông thường được cấu hình cho phù hợp với từng người sử dụng Các thông tin về cấu hình của Portlet được gọi là Portlet Preference Portlet Container
sẽ chịu trách nhiệm lưu giữ những thông tin cấu hình này
• Portlet có thể truy cập vào các thông tin cấu hình của nó thông qua giao diện PortletPreferences và Portlet chỉ có thể thay đổi các thônt tinh về cấu hình của nó bên trong phương thức processAction
• Định nghĩa Portlet xác định các thuộc tính preference mà một Portlet sử dụng Định nghĩa này bao gồm các giá trị khởi tạo và xác định xem thuộc tính này có phải là thuộc tính chỉ đọc hay không
• Một Portlet muốn tăng thời gian xử lý bằng cách sử dụng cơ chế lưu trữ tạm thời nội dung cần phải định nghĩa thời gian hết hạn của nội dung lưu tạm thời ( tính bằng đơn vị giây) trong đặc tả triển khai của nó Ví dụ sau đây cho biết một Portlet muốn nội dung của nó được lưu trữ tạm thời và có thời gian hết hạn là 300 giây
• Một Portlet nếu đã định nghĩa thời gian hết hạn lưu trữ dữ liệu tạm thời của nó trong đặc tả triển khai của nó vẫn có thể thay đổi được
• Thời gian hết hạn của việc lưu trữ tạm thời này có thể được thay đổi bằng cách thay đổi thuộc tính của đối tượng RenderResponse
…
<portlet>
…
<expiration-cache>300</expiration-cache>
Trang 35Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
• Nếu thời gian hết hạn này được gán bằng 0 thì việc lưu trữ dữ liệu tạm thời bị bỏ qua đối với Portlet Nếu giá trị này được gán bằng -1 thì các nội dung lưu trữ tạm thời của Portlet sẽ không bao giờ bị hết hạn
• Nêu một Portlet không định nghĩa thời gian hết hạn của dữ liệu lưu trữ tạm thời trong đặc tả triển khai của nó thì việc thay đổi giá trị thời gian này trong đối tượng RenderResponse sẽ không có tác dụng do sẽ bị Portlet Container bỏ qua
• Nếu nội dung của Portlet được lưu trữ tạm thời và chưa hết hạn, đồng thời không
có một yêu cầu nào đến Portlet từ phía người sử dụng thì Portlet Container sẽ sử dụng nội dung được lưu trữ tạm thời khi cần thiết
Cấu trúc cây thư mục
Một ứng dụng Portlet cũng có cấu trúc cây thư mục được tổ chức giống như một ứng dụng Web Tuy nhiên có một số khác biệt sau:
- Có thêm tập tin /WEB_INF/portlet.xml là tập tin đặc tả triển khai của Portlet
- Các lớp được sủ dụng cho ứng dụng Portlet và các tài nguyên khác được truy cập bởi ứng dụng Portlet cần phải được lưu trong thưmục /WEB-INF/classes hoặc trong các tập tin JAR được lưu trong thư mục /WEB-INF/lib
Tập tin lưu trữ của ứng dụng Portlet
Một ứng dụng Portlet cũng được đóng gói như một ứng dụng Web Nghĩa là sử dụng dạng WAR (Web Application Archive) khi triển khai ứng dụng
Các đặc tả đóng gói và triển khai
Đặc tả triển khai của ứng dụng Web và ứng dụng Portlet
Trong các ứng dụng Portlet, luôn tồn tại 2 tập tin đặc tả là:
• Tập tin web.xml dung để đặc tả các tài nguyên của ứng dụng Web
• Tập tin portlet.xml dung để đặc tả các tài nguyên của ứng dụng Portlet
Các tài nguyên nào không liên quan đến Portlet thì được khai báo trong tập tin đặc tả web.xml Còn các tài nguyên nào liên quan đến Portlet thì được khai báo trong tập tin
Trang 36portlet.xml Ngoài ra, một số thông tin của Portlet cần phải được khai báo trong tập tin web.xml như sau:
• Mô tả về ứng dụng Portlet được khai báo bằng thẻ <description>
• Tên của ứng dụng Portlet được khai báo bằng thẻ <display-name>
• Việc ánh xạ các vai trò bảo mật( Security Role Mapping) của ứng dụng Portlet được khai báo bằng thẻ <security-role>
Triển khai ứng dụng Portlet và ứng dụng Web
Các Portlet, đặc tả triển khai và mọi tài nguyên phải được đóng gói trong cùng một tập tin WAR Trong đó, thư mục WEB-INF bao gồm các thành phần:
- Tập tin đặc tả triển khai /WEB-INF/portlet.xml
- Các lớp của Portlet nằm trong thư mục /WEB-INF/classes
- Các tập tin JAR được lưu trong thư mục /WEB-INF/lib
Trang 37Xây dựng cơ chế Single Sign On từ môi trường Sakai vào VN-GRID GVHD: TS Phạm Trần Vũ
Tính Toán Lưới được hiện thực bởi Globus Toolkit 4.0.x Và để truy cập vào hệ thống Tính Toán Lưới này bằng một môi trường web thì có nhiều portal hổ trợ công việc đó Hiện tại OGCE(Open Grid Computing Environments) là một trong những portal hỗ trợ gần như đầy đủ các chức năng tương tác với hệ thống Tính Toán Lưới qua Globus Toolkit 4.0 Trong portal OGCE gồm các portlet: iframe-portlet, jobsubmission, proxymanager-portlet, gp-browser-2, gp-job-submission, condor-job-submission… thông qua những portlet này người dùng sử dụng và quản lý hệ thống Grid Computing
Hình 3 1: Mô hình tổng quát hệ thống ban đầu
Hình trên mô tả tổng quát hệ thống OGCE portal kết nối với Globus Toolkit 4.0 Trong đó người dùng sử dụng các portlet JSR 168 để tương tác với hệ thống Tính Toán lưới Trong đó ta thấy có ba portlet mà tiêu biểu thể hiện trên hình là ProxyManager Portlet, JobSubmit Portlet, Comp-file-Manager portlet OGCE đáp ứng được khả năng truy cập hệ thống Tính Toán Lưới nhưng lại không được phát triển nhằm tạo ra một cộng đồng những người sử dụng hệ thống Tính Toán Lưới Quay lại mô hình ban đầu, kế bên portal OGCE lúc này là hệ thống Sakai của trường mà ở đây người dùng độc lập với hệ thống Tính Toán Lưới Mục đích của đề tài lúc này là làm sao kết nối hệ thống Sakai này với hệ thống Tính Toán Lưới của trường
Hình sau thể hiện mô hình mà nhóm đã quyết định xây dựng Sau khi ta hoàn thành xong thì người dùng có thể kết nối với hệ thống Tính Toán Lưới bên dưới thông qua Globus Toolkit 4.0 sử dụng cơ chế xác thực bằng chứng chỉ khóa công cộng