Xây dựng cơ chế Single Sign On từ môi trường Sakai vào Việt Nam - GRID

. MỤC LỤC LỜI CAM ĐOAN ii Chương 1: Tổng Quan Về Đề Tài Luận Văn vii 1.1 Giới thiệu đề tài vii 1.e Mfc tiêu của đề tài viii 1.g Hướng tiếp cận của đề tài viii 1.h Phương pháp triển khai đề tài viii 1.i 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 e.1 Tổng quan về hệ thống tính toán lưới ix e.e Globus Toolkit h.j xi e.g Single Sign On xix e.h Tổng quan về sakai xxiii e.i Tổng quan về OGCk portal xxviii e.6 Tổng quan về lxis Service xxx e.m 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 g.1 Phân tích hệ thống xxxvii g.e Đề xuất cơ chế tích hợp portlet JSR 168 vào Sakai xliii g.e.1 Xây dựng các tool tương nng xliii g.e.e Tích hợp Grid portlet dựa vào chuẩn oSRP xlv g.e.g Tích hợp portlet JSR 168 vào Sakai xlv Chương 4: Kết luận lii h.1 Những thành quả đạt được của luận văn: lii h.e Những hạn chế của luận văn lii h.g Những khó khăn khi thực hiện đề tài lii h.h 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 i.1 Cài đặt Globus Toolkit h.j liv i.e Cài đặt OGCk portal lxv i.g Cài đặt sakai phiên bản e.i.h lxvii Tài liệu tham khảo lxxv Chươ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 cnng, 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 vf bpt buộc các doanh nghiệp và người dùng phải tiếp cận và nng dfng công nghệ thông tin một cách mạnh mq. Nhưng đi kèm với đó đòi hri một ngusn 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 tCloud Computingu. Có thể nói các ông lớn như: IvM, Google, Microsowtx đang tập trung phát triển nhằm cung cấp các dịch vf 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 nng dfng công nghệ thông tin. Trong khi đó năm ej1j là một năm thành công ngoài snc mong đợi của mạng xã hội wacebook. Mark yuckerberg, nhà sáng lập mạng xã hội wacebook, đã tạo ra một thế hệ công nghệ kế nối mới trên internet, sau zeb, worum, blog. Thì giờ hơn nữa t{ người dùng wacebook. Điều đó chnng tr 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 đsng nghiên cnu 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ư wacebook, 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 sq, thảo luận một cách dễ dàng. Đsng 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 phnc tạp và đòi hri một lượng tính toán, phân tích lớn. vởi vậy hệ thống trên phải đáp nng được snc mạnh tính toán, khả năng đáp nng nhanh với một chi phí chấp nhận được thì Tính Toán Lưới|1}tgrid computingu là một lựa chọn đáp nng đượ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 ejjg là Sakai VRk Demonstrator|e} tại các trường đại học ở lnh 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 cnu và xây dựng một hệ thống như trên. Tại trường đại học vách hoa thành phố Hs Chí Minh hiện đang xây dựng hệ thống tính Toán Lưới tVn-Gridu|g}. Hệ thống tính toán lưới này được xây dựng trên bộ Globus Toolkit h.j|h}|i}|6} và Sakai |m}|8} e.i.h hoặc e.m.1. Đề tài luận văn sq 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 hri đượ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 h.j thông qua Sakai mà không dùng một hệ thống khácÄ vởi vì Sakai có thể đáp nng được yêu cầu trên một cách tốt nhất. Hiện nay có trên gij tổ chnc giáo dfc sÅ dfng Sakai như một hệ thống quản lý giáo dfc 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 cnu của mình cho người khác, có thể sÅ dfng snc mạnh của các thành viên trong cùng mạng lưới để giải quyết những bài toán có độ phnc 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 Mfc 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 bpt 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 cf xây dựng tool cho Sakaix 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 oSRP|Ñ} toeb Service wor Remote Portletu, hướng này có ưu điểm là khá đơn giản ch{ cần cài đặt Sakai Portal và OGCktOpen Grid Computing knviromentsu|1j} portal sau đó tích hợp cơ chế oSRP lên Sakai và OGCk để Sakai có thể truy cập đến các portlet của OGCk và thực hiện các tác vf để 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 OGCk 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ừ OGCk portal vào Sakai. Các grid-portlet của OGCk portal được viết theo chuẩn JSR 168|11}|1e}|1g} trong khi từ phiên bản Sakai e.h thì Sakai đã bpt đầ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ừ OGCk 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ừ OGCk sang Sakai và triển khai trên e portlet đó chính là proxymanager portlet và Üobsubmit 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 Trong chương này nhóm sq giới thiệu tổng quan đề tài, tầm quan trọng của đề tài, nhiệm vf 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 gsm:  Tổng quan về Grid Computing.  Globus Toolkit h.j.  Dịch vf Myproxy.  Dịch vf GRlM.  Cơ chế Single Sign On tSSOu.  Sakai và kiến trúc của Sakai.  OGCk và kiến trúc của OGCk.  Giới thiệu về lxis 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 thnc tích hợp lần lượt hai portlet Myproxy manager và Jobsubmit của OGCk 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.

pdf75 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3043 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Xây dựng cơ chế Single Sign On từ môi trường Sakai vào Việt Nam - GRID, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
phải bằng cách nào đó đưa các chức năng hiện có ở OGCE portal vào Sakai.. Trước hết để kết nối hệ thống Sakai và hệ thống Grid Computing hiện nay chúng ta phải làm gì? Rõ ràng là phải giải quyết được vấn đề truy cập, cấp phát quyền người dùng , sao cho người dùng của Sakai có thể truy cập vào hệ thống tính toán lưới thông qua Globus. Cơ chế xác thực và cách quản lý user của Sakai và Globus Toolkit 4.0 là hoàn toàn khác nhau. Một bên Sakai sẽ sử dụng cơ chế xác thực User Directory Service. Một bên Globus Toolkit 4.0 sử dụng chứng chỉ khóa công cộng để quản lý người dùng. Qua quá trình khảo sát và nghiên cứu thì nhóm thực hiện đề tài chưa đi sâu giải quyết vấn đề mâu thuẫn trên. Tức là trên hệ thống Sakai có nhiều nhóm người dùng khác nhau, có nhóm sử dụng hệ thống Tính Toán Lưới, có nhóm không sử dụng tại một thời điểm nào đó. Do đó phải cần can thiệp bên dưới sao cho những nhóm người dùng sử dụng các portlet chức năng của Globus Toolkit 4.0, có khả năng đăng nhập Globus một cách tự động. Còn những nhóm người dùng không được cấp quyền sử dụng Globus thì không có bất kỳ một chứng chỉ nào để truy cập Globus. Từ những đánh giá ở trên ta sẽ có được mô hình hoạt động chi tiết của hệ thống mong muốn như hình dưới. Trong mô hình đó cần có một dịch vụ getProxyService( username, SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xxxix Xâ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ũ passphrase). Dịch vụ này có chức năng tự động lấy các chứng chỉ proxy mà người dùng username trên sakai có về sakai. 1 .Là quá trình dịch vụ getProxyService() lưu tất cả các chứng chỉ proxy vào một bảng chứng chỉ proxy. 2. Là quá trình từ phía người sẽ có một portlet ProxyManager tự động cập nhật tất cả các chứng chỉ proxy và liệt kê ra cho người dùng username sử dùng một trong các chứng chỉ đó. Hình 3. 3:Sơ đồ hoạt động của hệ thống mong muốn Dưới đây là các hình ảnh của hai portlet ProxyManager và JobSubmission trên portal OGCE trong mô hình hệ thống ban đầu. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xl Xâ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 3. 4:Portlet MyproxyManager của OGCE portal Hình trên là hình ảnh của proxymanager-portlet, portlet này sẽ tương tác với MyProxy server để lấy các chứng chỉ Proxy của user. Mục đích của nhóm là rút gọn giai đoạn này người dùng Sakai sẽ không còn phải nhập username và passphrase một lần nữa. Mà sẽ có một dịch cụ GetProxyservice(username, passphrase) bên dưới trong Sakai đảm nhận vai trò này. Giao diện người dùng sẽ chuyển sang giao diện của hình tiếp theo. Giữ lại cac chức nay còn lại của ProxyManager Portlet. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xli Xâ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 3. 5: Lấy Proxy của người dùng qua OGCE portal Hình trên là hình ảnh proxymanager-portlet của OGCE portal đã lấy về chứng chỉ Proxy của user. Proxymanager-portlet còn hỗ trợ sử dụng nhiều chứng chỉ cùng thời, ở đó cho phép user chuyển quyền sử dụng từ Proxy cộng đồng và Proxy cá nhân bằng chức năng Set as default. Các portlet khác sẽ sử dụng Proxy được thiết lập mặc định là default proxy. Còn bên dưới là hình của portlet OGCE jobsubmission: Hình 3. 6:Portlet JobSubmission của OGCE portal SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xlii Xâ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ũ Trong quá trình tìm hiểu và thực hiện đề tài thì nhóm đã hiện thực được hệ thống, có thể nói là chấp nhận được hoạt động như hình bên dưới, bằng cách thực hiện tích hợp các portlet JSR 168 của OGCE vào Sakai Portal. Hình 3. 7:Sơ đồ hoạt động hệ thống đã hiện thực Trong hệ thống Sakai của nhóm thì người dùng login vào Sakai ở bước 1,trong bước 2 sau đó sử dụng Portlet ProxyManger của OGCE portal để lấy các chứng chỉ từ Myproxy Server. Tiếp theo tại bước 3 là lưu lại các chứng chỉ này vào Proxy Table trên portlet. 3.2 Đề xuất cơ chế tích hợp portlet JSR 168 vào Sakai Từ yêu cầu của đề tài thì đòi hỏi phải có một cơ chế nào đó mà user đăng nhập vào Sakai phải truy cập được hệ thống lưới thông qua Globus tookit 4.0. Dưới đây là ba phương án mà nhóm đã tìm hiểu được. 3.2.1 Xây dựng các tool tương ứng Sakai có thể chia ra làm hai phần một là Sakai container và Sakai tool. Để khai thác các ứng dụng web người phát triển phải viết các tool cho Sakai. Nhóm cũng đã tìm hiểu viết một tool cho Sakai sử dụng công cụ Sakai App Builder. Quay lại vấn đề là chúng ta cần truy cập Grid thông qua Sakai do đó nhóm sẽ phải phát triển các tool như proxymanager-tool hay jobsubmision-tool... các tool tương ứng với các portlet của Sakai. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xliii Xâ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ũ Do đó người viết các tool này phải đảm bảo hiểu được hoạt động của code từng portlet và các thư viện hỗ trở cho việc giao tiếp với globus và myproxy bên dưới. Sakai App Builder là một công cụ khá mạnh nhằm hỗ trợ hoạt động viết tool của Sakai theo các chuẩn như RSF( Reasonable Server Face), JSF( Java Server Face) và Wicket Face. Cài đặt Sakai App Builder như sau: • Download cài đặt phiên bản Sakai mới nhất. • Chạy Eclipse • Chọn tab Windown -> Preferences • Click double Java • Click double Build Path • Chọn Classpath Variables • Click mục New • Nhập M2_REPO cho mục Name • Click vào folder dẫn đến thư mục .m2/respository • click ok -> ok. • Chọn tab Help chọn Install New Software • Chọn New Remote Site • Nhập AppBuilderSite vào mục Name • Nhập • Click finish • click Next • Click Install Để sử dụng được SakaiAppBuilder: • Chọn File->New-> Project->SakaiProject->SakaiAppBuilder • Nhập tên project • Lựa chọn các tuỳ chọn như key project( kí tự đầu viết hoa) • Sau đó lựa chọn hiện thực RSF, JSF hay Wicket ... Các kĩ thuật dàng trang hỗ trợ phát triển tool Sakai rất phong phú như Java Servlets, Velocity, JSP, JSF, RSF, Wicket. Lựa chọn kĩ thuật phụ thuộc và chủ quan của người phát triển. Nhóm thực tập cũng đã thử phát triển một tool-proxymanager bằng Wicket. Qua quá trình tìm hiểu và tiến hành code thử, thì Wicket khá là dễ sử dụng để thiết kế giao diện cho người dùng. Nhưng về mặt toàn thể thì để phát triển hết tất các tool cần thiết tương ứng với OGCE thì đòi hỏi nhiều đầu tư về mặt thời gian và công sức để tìm hiểu các công cụ xây dựng tool cho Sakai và phải hiểu sâu sắc kiến trúc của Sakai, vì thời gian luận văn có hạn nên nhóm không đi theo hướng này. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xliv Xâ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ũ 3.2.2 Tích hợp Grid portlet dựa vào chuẩn WSRP WSRP[17] (Web Services for Remote Portlet) định nghĩa một chuẩn tương tác, sử dụng Web Services để tương tác với những portlet JSR 168. Các portlet thuộc chuẩn WSRP này được gắn với một portal. Các portlet này sẽ thực thi bên ngoài máy chủ portal, bên trong máy chủ một tổ chức khác ở một vị trí xa. Khi một portal cần một đoạn trang nào đó của WSRP portlet nó sẽ gọi portlet từ xa thông qua giao thức SOAP. Hiện tại đây là một hướng giải quyết khá tốt. Sakai hỗ trợ WSRP. Nhưng hiện tại OGCE portal lại không hỗ trợ. Để thực hiện chuyển các truy cập vào Grid thông qua Sakai bằng OGCE portal là không khả thi mấy!. Mặc dù WSRP hỗ trợ API để phát triển portlet chuẩn này. Mục đích của đề tài là yêu cầu các dịch vụ Grid phải được đáp ứng trực tiếp từ Sakai portal. 3.2.3 Tích hợp portlet JSR 168 vào Sakai Thông qua tìm hiểu các bài viết của Charles Serverance[18] thì cách tiếp cận này là khả thi. Các phiên bản Sakai từ 2.4.x trở về sau đã bắt đầu hỗ trợ portlet JSR 168. Hiện tại phiên bản Sakai mà nhóm dùng là 2.7.1 nên Sakai đã hỗ trợ sẵn portlet JSR 168 thông qua pluto 1.1 Sakai Tool RequestFilter JSR-168 Tool PortletServlet Sakai Tool Registration Pluto Portlet Registration Charon Portal Sakai Site Setup Pluto Container Sakai Tool Dispatch Hình 3. 8: Sakai Tool Registration Portlet JSR 168 được deploy trong một servlet container như một ứng dụng web. Do đó Sakai cũng có một servlet gọi là PortletServlet dùng để điều khiển các request và đáp ứng các resquest đó giữa portal và JSR-168 tool. Portlet servlet này tự động nhận dạng và đăng kí trong Pluto[20] Portlet Register. Sau khi JSR-168 được đăng kí trong Pluto Portlet Register thì portlet cũng được đăng kí như một tool với Sakai Tool Registration của portal vì vậy portlet sẽ xuất hiện trong Sakai Sites tool và Site Setup tool khi người dùng thiết lập. Điều này thể hiện rỏ trong quá trình ta khởi động Sakai Portal. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xlv Xâ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ũ Mỗi khi tìm thấy một portlet thì portlet đó sẽ tự động đăng kí với Sakai và Pluto. Sau khi đăng kí xong thì trong bảng Sakai Tool Registration sẽ có thêm một entry như sau: Trong quá trình thực thi Charon portal trong Sakai sẽ tìm kiếm trong Sakai Tool Registration của portal, khi thấy một portlet tool nó sẽ sử dụng Pluto container để chuyển các request tới portlet và trả về các response cho portal. Mô tả các bước tích hợp Hiện tại nhóm luận văn có một gói deploy Sakai-Ogce[19], đã tích hợp sẵn các portlet của OGCE vào Sakai. Nhưng gói này không có source code để build cho Sakai 2.5.4 và chưa chạy được. Do đo nhóm luận văn phải tiến hành build và tích hợp các portlet từ OGCE vào Sakai. Các bước tiến hành • Bước 1: Build các portlet của OGCE Portal chung với OGCE Portal hoặc dùng NetBean IDE, hoặc dùng Eclispse IDE để build từng portlet. Kinh nghiệm của nhóm cho thấy với phiên bản mới nhất của NetBean IDE dễ dàng build portlet hơn là dùng Eclipse IDE. • Bước 2:Chỉnh file cấu hình web.xml và project.xml • Bước 3: Copy các gói jar cần thiết bên OGCE Portal vào Sakai Portal. • Ở bước một nhóm chọn phương án dễ nhất là build nguyên cả OGCE Portal sau đó sử dụng các deployment đó để đem sang Sakai Portal. Về cách build OGCE portal thì xin tham khảo chi tiết chương 2. Cấu hình ProxyManager Portlet Trước hết là chỉnh file cấu hình web.xml như hình ở dưới. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xlvi <tool id=" proxymanager-portlet.ProxyManagerPortlet" title=”ProxyManager" description="Proxy Manager Portlet” > Xâ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 3. 9: Cấu hình file web.xml cho portlet Proxy Manager. Trên hình trên chỉ ra những lớp cần phải chỉnh sửa. Hình bên trái là file web.xml lúc ta chưa cấu hình. Hình bên phải là file web.xml ta đã cấu hình. Trong tất cả các portlet trong Sakai Portal chúng ta đều phải chỉnh ở hai lớp listener class và Servlet class và tag <url- pattern> khi đem từ OGCE Portal sang Sakai Portal. Sau bước này ta khởi động Sakai Portal lên. Vào WorkSite setup chúng ta sẽ thấy portlet lúc này đã được đăng kí trong sakai. Hình 3. 10: Portlet Proxy Manager trong Sakai. Đến bước copy các gói jar từ OGCE Portal và Sakai Portal thì điều này còn phụ thuộc vào từng portlet. Thứ nhất là xem code của các portlet cần tích hợp, xem phần import, tất cả SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xlvii portlet-jsr-api-2.1.jar proxymanager-api-4.3.jar log4j-1.2.8.jar cog-jglobus-1.4-dev-071030.jar jgss-OGCE.jar c mmons-logging-1.1.jar commons-io-1.0.jar jce-jdk13-131.jar jarpc-OGCE.jar Xâ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ác gói import phải được đem qua và đặt đúng cấu trúc thư mục như bên OGCE Portal. Đối với ProxyManager Portlet thì cần các gói sau: Tất nhiên ngoài những gói jar cần thiết trong file source code thì còn nhiều gói phụ thuộc khác. Cần phải căn cứ vào dòng báo lỗi của Apache Tomcat để xác định gói còn thiếu. Ví dụ Nhìn dòng đầu của dòng lỗi cho ta biết portlet thiếu class và không tìm thấy class org/globus/wsrf/impl/security/authorization/SelfAuthorization này. Vậy việc cuối cùng là tìm ra class SeftAuthorization nằm trong gói jar nào của OGCE portal. Sau đó copy sang Sakai Portal. Để nhanh chóng thì có thể dùng các công cụ tìm kiếm trong linux. Nhóm sử dụng ngay chính công cụ tìm kiếm của GNOME có sẵn trong CentOS 5.4 SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xlviii Caused by: java.lang.NoClassDefFoundError: org/globus/wsrf/impl/security/authorization/SelfAuthorization at org.globus.cog.abstraction.impl.execution.gt4_0_0.DelegatedTaskHandlerFactory .newTaskHandler(DelegatedTaskHandlerFactory.java:21) at org.globus.cog.abstraction.impl.execution.gt4_0_0.TaskHandlerImpl.submit(Task HandlerImpl.java:77) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorIm pl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) Xâ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 3. 11: Công cụ tìm kiếm trong GNOME Vấn đề gặp phải lúc tích hợp nhìn chung nằm ở từng portlet cụ thể. Mỗi khi tích hợp bất kỳ một portlet nào đòi hỏi người làm phải hiểu được nội dung, chức năng của portlet đó, các dịch vụ mà portlet đó sử dụng để kết nối với GLOBUS TOOLKIT 4.0 từng đó nắm được các gói jar cụ thể. Sau khi các file thư viện cần thiết đã được copy đầy đủ ta sẽ được portlet như hình sau: Hình 3. 12: Myproxy tích hợp thành công vào Sakai và có thể lấy proxy Cấu hình Job Submit Portlet Cấu hình tương tự ProxyManager Portlet ta sẽ chạy được Portlet này như hình. Đến khi cài đặt JobSubmission portlet ta phải copy thư mục coglibs từ OGCE portal vào Sakai Portal. Sau đó sẽ có nhiều thông báo lỗi thiếu gói jar cần thiết, thì tiếp tục copy các gói trong /ogce-portal- home/shared sang /sakai-portal-home/shared. Hình dưới là kết quả trước khi chạy Job Submit portlet. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong xlix Xâ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 3. 13: Portlet Job Submit trong Sakai Nhưng khi chạy portlet này thì bị lỗi SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong l WARN: Factory org.apache.axis.configuration.EngineConfigurationFactoryServlet Ignored: missing required method: public static EngineConfigurationFactory newFactory(Object). (2010-11-16 13:55:17,750 http-8080- Processor22_org.apache.axis.configuration.EngineConfigurationFactoryFinder ) WARN: Factory org.apache.axis.configuration.EngineConfigurationFactoryDefault Ignored: missing required method: public static EngineConfigurationFactory newFactory(Object). (2010-11-16 13:55:17,752 http-8080- Processor22_org.apache.axis.configuration.EngineConfigurationFactoryFinder ) .java:60) at xportlets.jobsubmit.JobSubmitAction.submitJob(JobSubmitAction.java:571) ERROR: Unable to locate a valid EngineConfigurationFactory (2010-11-16 13:55:17,752 http-8080- Processor22_org.apache.axis.configuration.EngineConfigurationFactoryFinder) org.globus.cog.abstraction.impl.common.sandbox.SandboxException: Unexpected exception: org.globus.wsrf.encoding.SerializationException: Serialization failed [Caused by: java.lang.NullPointerException] at org.globus.cog.abstraction.impl.common.sandbox.SandboxingTaskHandler.subm it(SandboxingTaskHandler Caused by: org.globus.wsrf.encoding.SerializationException: Serialization failed [Caused by: java.lang.NullPointerException] at Xâ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ũ Sau khi debug trên chính gói Jar đã gây ra lỗi thì nhóm xác định được lỗi do chính gói Apache Axis. Khi Sakai Portal khởi động nhưng không thể cấu hình được EngineConfigurationFactory. Nguyên nhân chính là nhóm đã đặt gói Axis-OGCE.jar trong Sakai Portal không đúng thư mục giống như bên OGCE Portal. Như vậy có thể là nói vô vàn nguyên nhân lỗi có thể xảy ra nhưng chung qui là do cấu hình chưa đúng hay thiếu các gói Jar cần thiết, hoặc vị trí đặt các gói Jar. Cấu trúc thư mục của Sakai hầu như không thay đổi gì ngoại trừ việc thêm một thư mục /apache-tomcat-5.5.30/coglibs/. Thư mục coglibs chứa hầu như tất cả các file Jar cần thiết cho GLOBUS TOOLKIT 4.0 . Ngoài những việc trên, thì nhóm tinh chỉnh một vài thứ ở lớp giao diện như hostname, các cấu hình mặc định, thì nhóm đã đưa lên được ba portlet ProxyManager, JobSubmission, Comp-fileManager. Quá trình thử nghiệm trên một máy và mạng Lan là hoàn toàn thành công. Dưới là các hình ảnh trong lúc chạy thử nghiệm của ba portlet. Từ đó có thể rút ra được một kết luận là tích hợp portlet từ OGCE Portal sang Sakai Portal là hoàn toàn khả thi. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong li Xâ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ũ Chương 4: Kết luận 4.1 Những thành quả đạt được của luận văn: Trong quá trình từ lúc bắt đầu đến lúc hoàn thành luận văn nhóm đã thu được những kết quả sau: • Bước đầu nắm bắt được công nghệ Grid-Computing. • Nắm bắt được bộ công cụ Globus Toolkit 4.0 và vận dụng vào cài đặt thực tế. • Tìm hiểu được một số công nghệ được dùng để xây dựng Grid-portal như: Single Sign On(SSO), chuẩn portlet JSR 168 … • Triển khai thành công các portal như: OGCE, Sakai. • Tích hợp thành công các portlet JSR 168 vào Sakai trong đó có 2 portlet quan trọng nhất đó chính là Myproxy và Job-Submission. Chính sự tích hợp thành công này đã biến Sakai trở thành một Grid-Portal, từ đó người dùng khi đăng nhập vào Sakai có thể tham gia vào mạng lưới tính toán Grid-Computing. 4.2 Những hạn chế của luận văn Mặc dù đạt được một số thành quả như đã kể trên nhưng vì thời gian gấp rút nên luận văn vẫn còn một số hạn chế nhất định: • Chưa thể chuyển toàn bộ các portlet từ OGCE portal sang Sakai portal. • Chưa thiết lập được cơ chế Single Sign On (SSO) từ Sakai vào Globus nghĩa là khi một người dùng có quyền truy cập đến hệ thống tính toán lưới thì khi người dùng đó truy cập vào Sakai thì đồng thời cũng chính là truy cập vào hệ thống tính toán lưới. Yêu cầu này đòi hỏi phải am hiểu sâu kiến trúc của Sakai bởi vì cách quản lý user của Sakai và cách quản lý user của Myproxy là hoàn toàn khác nhau, để có thể mapping user của Sakai và Myproxy với nhau đòi hỏi nhiều thời gian để tìm hiểu, vì thời gian luận văn có hạn nên nhóm vẫn chưa hoàn thành được chức năng này. 4.3 Những khó khăn khi thực hiện đề tài Thành thật thì khi thực hiện đề tài nhóm gặp rất nhiều khó khăn cả về chủ quan và khách quan. • Đề tài liên quan đến nhiều framework nhau. Trong đó nhóm hoàn toàn phụ thuộc vào các thư viện và OGCE portlet là một trở ngại lớn. Bên cạnh đó để nghiên cứu và phát triển portlet JSR168 độc lập cho Sakai đòi hỏi một lượng thời gian lớn. Mặt khác Sakai không hoàn toàn làm việc trực tiếp với các portlet JSR168 mà phải thông qua Pluto portal. Điều đó có nghĩa là nếu phát triển portlet lại từ đầu thì phải phát triển trên uPortal[], sau đó phải cấu hình lại cho Pluto[]. Như vậy phát triển lại từ đầu theo chuẩn JSR 168 là điều không cần thiết. Nhưng nếu chuyển toàn bộ code của các portlet JSR 168 sang kiểu tool trên sakai là một công việc quá sức đối SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lii Xâ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ũ với đề tài luận văn. Cấu trúc một tool của Sakai, các xử lý các request và reponse là hoàn toàn khác với portlet JSR 168. Do đó nếu phát triển chỉ kế thừa được giải thuật chung của portlet mà thôi. Như vậy là khá khó khăn và mạo hiểm đối với nhóm, trong khi thời gian làm luận văn không có nhiều. Từ nhận định đó nhóm chấp nhận sự ràng buộc các thư viện của OGCE, thay vì xây dựng lại, thì tiến hành tìm hiểu về các gói thư viện đó. • Khó khăn thứ hai mà nhóm gặp phải là thiếu công cụ hỗ trợ cho việc phát triển và biên dịch portlet JSR168 cho Sakai. Vì mọi bộ phát triển portlet đều chuyên dụng cho một portlal nhất định. Trong khi đó Sakai lại hoàn toàn không hỗ trợ công cụ phát triển cho portlet mà Sakai chỉ hỗ trợ những công cụ phát triển tool. Do đó dường như nhóm phải debug cả apache tomcat, dùng công cụ decompile các gói jar của OGCE sau đó build lại các gói bị lỗi từ đó truy tìm nguyên nhân để sửa lỗi. Điều đó cũng có nghĩa tốn rất nhiều thời gian để debug mỗi lỗi. • Cuối cùng từ phía chủ quan của nhóm, do tiếp cận với lĩnh vực mới hoàn toàn, kiến thức liên quan đến đề tài của nhóm hầu như bắt đầu từ con số không. Dẫn đến tiếp cận và làm chủ vấn đề, phân tích các vấn đề gặp phải là hết sức khó khăn và tốn nhiều thời gian. Để có thể thay đổi các mã nguồn của các OGCE portlet đòi hỏi phải có thời gian dài tiếp xúc và có nhiều kinh nghiệm trong việc phát triển portlet. 4.4 Hướng phát triển của luận văn: Có thể nói càng ngày càng có nhiều nhu cầu về giải quyết các bài toán lớn mà các máy tính đơn không thể giải quyết nổi và Grid-Computing chính là giải pháp để giải quyết những bài toán như thế này. Hệ thống tính toán lưới là một công nghệ có triển vọng rất lớn trong tương lai khi mà cơ sở hạ tầng về mạng và tài nguyên mạng ngày càng phát triển. Grid- Computing có thể tận dụng nguồn tài nguyên mạng này để giải quyết các bài toán lớn trong khoa học, giáo dục… Nếu có thể tiếp tục phát triển đề tài này nhóm sẽ tập trung vào giải quyết các vấn đề sau: • Chuyển toàn bộ các portlet từ OGCE portal sang Sakai để Sakai hoàn toàn mang đầy đủ chức năng của một Grid-portal. • Thiết lập cơ chế Single Sign On (SSO) từ Sakai vào Globus để tạo nên sự thuận tiện cho người dùng khi muốn truy cập vào mạng lưới tính toán bằng Sakai portal. • Quảng bá việc truy cập đến các hệ thống tính toán lưới bằng Sakai portal đến với mọi người bởi Sakai portal được xây dựng để hướng tới cộng đồng và đang ngày càng phát triển mạnh mẽ. Nếu có thêm các tính năng để truy cập đến hệ thống tính toán lưới thì cộng đồng Sakai sẽ có thêm bước phát triển đột phá và có thể trở thành portal chủ đạo trong cộng đồng khoa học và giáo dục. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong liii Xâ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ũ Chương 5: Phụ lục và tài liệu tham khảo 5.1 Cài đặt Globus Toolkit 4.0 Để cài đặt GT4.0.1 trước hết trong CentOs, cần phải cài đặt gói RPMforge. Đây là gói service hỗ trợ yum. Thực hiện lệnh vim /etc/hosts để chỉnh lại domain localhost của bạn sẽ được sử dụng trong nhiều bước cài đặt sau. Thực ra không thay đổi domain localhost thì ta cài đặt vẫn bình thường. Nhưng việc thay đổi localost thành một tên dễ nhớ sẽ tốt hơn: Download gói gridserver đi kèm với bản báo cáo. Giải nén chuyển vào thư mục vừa giải nén. Bạn Comment dòng script cuối cùng của file install.sh rồi lưu file lại. Tiếp theo tiến hành cài GT4.0.8 bằng lệnh: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong liv [root@phongcnttbk]$ vim /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 phongcnttbk localhost [root@phongcnttbk ~]$ cd gridserver/ [root@phongcnttbk gridserver]$ ls certs config.env INSTALL packages pts uninstall.sh config config_globus.sh install.sh README test #su globus $GLOBUS_LOCATION/setup/globus/setup-simple-ca [root@phongcnttbk gridserver]$ ./install.sh Xâ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ũ Giờ chúng ta cần một hostcert cho máy và một usercert cho chúng ta. Để làm được điều đó chúng ta cần phải cài đặt một SimpleCA. Ta thực hiện các lệnh sau: Các lệnh này thực hiện trong user globus, lúc này có thể coi globus đóng vai trò là một CA. Màn hình sẽ hiện ra thông báo, yêu cầu có giữ nguyên CA hay không ta nên chọn mặc định là có. Lúc đó subject name của CA là: trong đó: Tiếp theo là nhậpp email cho CA, email nà là nơi các yêu cầu chứng thực sẽ được gởi đến để ký được ký duyệt bởi CA. Tiếp theo là thời hạn hiệu lực của CA mặc định là 1825 ngày (5 năm). Tiếp theo sẽ là yêu cầu người dùng khởi tạo mật khẩu cho CA. Đến đây một chứng thực tự ký duyệt được khởi tạo cho CA với subject của người dùng, người dùng ở đây là globus. Đồng thời cấp cho gloubs 2 khóa cho thiết lập bảo mật tin cậy là cakey.pem và cacert.pem cả 2 được lưu trữ trong thư mục home của globus Để hoàn thành việc thiết lập CA thì gloubs phải cài đặt phần mềm GSI, sau khi cài đặt GSI chứng thực CA của globus sẽ được ký và do đó globus có thể tạo chứng thực đại diện SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lv [globus@phongcnttbk gridserver]$ cd [globus@phongcnttbk ~]$ source $GLOBUS_LOCATION/etc/globus-user-env.sh [globus@phongcnttbk ~]$ /usr/grid/globus/setup/globus/setup-simple-ca cn=Globus Simple CA, ou=simpleCA-phongcnttbk, ou=GlobusTest, o=Grid - cn: là tên gọi chung(common name) - Ou: là đơn vị tổ chức (organization unit), nó nhận biết CA này từ các - CA khác tạo bởi SimpleCA bởi người dùng khác nữa. Enter PEM pass phrase: Verifying - Enter PEM pass phrase: /home/globus/.globus/simpleCA//private/cakey.pem /home/globus/.globus/simpleCA//cacert.pem /home/globus/.globus/simpleCA/globus_simple_ca_e25b0701_setup-0.19.tar.gz Xâ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 bất kỳ người dùng nào khác. Gói cài đặt GSI được đặt trong thư mục home của globus, nó được tạo ra trong quá trình cài đặt simpleCA: Lệnh cài đặt GSI phải được thực hiện trong root: Quá trình cài đặt thành công lúc này CA đã có thể chứng thực cho người dùng khác. Tiếp theo ta sẽ chứng thực cho host của ta. Đăng nhập vào root và gõ lệnh: Lệnh này để set biến môi trường và bắt đầu gõ lệnh: Hostname ở đây chính là tên đầy đủ của host đã cài globus. Trong trường hợp này hostname là phongcnttbk Lệnh này dùng để yêu cầu CA xác thực cho host có tên là phongcnttbk. Có hai file yêu cầu được sinh ra là /etc/grid-security/hostcert_request.pem và một khóa riêng kèm theo là /etc/grid- security/hostkey.pem. Bây giờ để CA chứng thực yêu cầu vừa rồi của host ta phải đăng nhập vào globus và thực hiện lệnh sau: Sau khi nhập password cho CA thì sẽ tạo ra file hostsigned.pem chứng tỏ host đã được CA xác thực và việc cuối cùng ta copy file hostsigned.pem này vào thư mục /etc/grid-security và đổi tên thành hostcert.pem. Lệnh copy này phải thực hiện trong root. Vậy là ta đã hoàn tất việc xác thực cho host. Hai chứng chỉ hostcert.pem và hostkey.pem thuộc quyền sở hữu của root và sẽ được dùng bởi gridFTP server. Trong khi các webservices container lại chạy trong non-root. Do SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lvi [root@phongcnttbk globus]# $GLOBUS_LOCATION/setup/globus_simple_ca_e25b0701_setup/setup-gsi –default [root@phongcnttbk globus]# source $GLOBUS_LOCATION/etc/globus-user-env.sh [root@phongcnttbk globus]# grid-cert-request –host ‘hostname’ [root@phongcnttbk globus]# grid-cert-request –host phongcnttbk [globus@phongcnttbk ~]$ grid-ca-sign -in /etc/grid-security/hostcert_request.pem -out hostsigned.pem root@phongcnttbk:~# cp ~globus/hostsigned.pem /etc/grid-security/hostcert.pem Xâ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ũ đó chúng ta cần tạo ra một bản sao của hostcert.pem và hostkey.pem thuộc quyền sở hữu của globus. Quá trình tạo bảng sao như sau: Kiểm tra quyền sở hữu của các chứng chỉ vừa được tao ra: Bây giờ chúng ta sẽ chứng thực cho user, ở đây user chúng ta sẽ là phongcnttbk đóng vai trò người dùng cần được xác thực. Đăng nhập vào phongcnttbk và thiết lập các biến môi trường: Tương tự như việc xác thực của host ta cũng tạo ra một yêu cầu xác thực với user phongcnttbk: Nó sẽ yêu cầu nhập một passphrase dùng để xác thực cho user phongcnttbk sau này và xác nhận lại passphrase đó. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lvii [root@phongcnttbk grid-security]# cp hostcert.pem containercert.pem [root@phongcnttbk grid-security]# cp hostkey.pem containerkey.pem [root@phongcnttbk grid-security]# chown globus:globus container*.pem [root@phongcnttbk grid-security]# ls -l *.pem -rw-r--r-- 1 globus globus 0 Dec 29 01:51 containercert.pem -r-------- 1 globus globus 887 Dec 29 01:51 containerkey.pem -rw-r--r-- 1 root root 0 Dec 29 01:22 hostcert.pem -rw-r--r-- 1 root root 1407 Dec 29 01:22 hostcert_request.pem -r-------- 1 root root 887 Dec 29 01:22 hostkey.pem [phongcnttbk@phongcnttbk ~]$ source $GLOBUS_LOCATION/etc/globus-user- env.sh [phongcnttbk@phongcnttbk ~]$ grid-cert-request Enter PEM pass phrase: Verifying - Enter PEM pass phrase: Xâ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ũ Quá trình yêu cầu thực hiện xong sẽ tạo ra một file private key là /home/phongcnttbk/.globus/userkey.pem và một file yêu cầu là /home/phongcnttbk/.globus/usercert_request.pem. Ta cần chuyển yêu cầu này đến CA để được chứng thực. Ta có thể dùng lệnh: Để gởi mail tới CA hoặc có thể dùng lệnh cp để chuyển yêu cầu đến CA. Ở đây ta copy file usercert-request.pem vào thư mục home của globus(chính là CA) để tiến hành xác thực cho user phongcnttbk. Kiểm tra thư mục /home/globus có file usercert_request.pem thuộc quyền sở hữu của globus là được. Sau đó ta tiến hành xác thực yêu cầu của user phongcnttbk bằng lệnh: Sau đó trả lại file usercert.pem về cho user phongcnttbk bằng cách gởi mail hay copy. File usercert.pem trả về phải được lưu vô thư mục /home/phongcnttbk/.globus Và ta sẽ có chứng chỉ hiển thị trên terminal như sau: Như vậy quá trình xác thực cho phongcnttbk đã hoàn tất. Bây giờ chúng ta cần tạo ra file grid-mapfile để map user phongcnttbk với proxy của nó là dùng để chứng thực về sau. Đăng nhập vào root và gõ lệnh: để tạo ra file grid-mapfile. Nhớ lưu lại file này.Sau đó ta gõ lệnh: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lviii [phongcnttbk@phongcnttbk ~]$ cat /home/bacon/.globus/usercert_request.pem | mail bachdienthusinh290489 [phongcnttbk@phongcnttbk .globus]$ ll total 12 -rw-r--r-- 1 phongcnttbk phongcnttbk 2647 Dec 29 02:24 usercert.pem -rw-r--r-- 1 phongcnttbk phongcnttbk 1400 Dec 29 02:00 usercert_request.pem -r-------- 1 phongcnttbk phongcnttbk 963 Dec 29 02: /O=Grid/OU=GlobusTest/OU=simpleCA-phongcnttbk/CN=host/phongcnttbk [root@phongcnttbk ~]# vim /etc/grid-security/grid-mapfile [root@phongcnttbk~]#cat/etc/grid-security/grid-mapfile “/O=Grid/OU=GlobusTest/OU=simpleCA-phongcnttbk/CN=PhongDang” phongcnttbk [globus@phongcnttbk ~]$ grid-ca-sign -in usercert_request.pem -out usercert.pem Xâ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ũ Như vây là ta đã xác thực cho user và map user phongcnttbk với proxy của nó. Cài đặt Myproxy-server Myproxy server dùng để xác thực user trước khi cho phép user truy cập vào các dịch vụ globus. Để cấu hình Myproxy server ta phải sửa lại file myproxy-server.config được cung cấp tại $GLOBUS_LOCATION/share/myproxy/myproxy-server.config và copy nó đến /etc/myproxy-server. Nếu ta bỏ qua bước này thì myproxy-server không thể khởi động được. Đầu tiên ta thực hiện lệnh: để copy file myproxy-server.config đến /etc, sau đó thực hiện lệnh: và sửa lại nội dung của nó như sau: và sau đó lưu lại. Tiếp theo là thêm dịch vụ myproxy-server vào hệ thống bằng lệnh sau: Ta kiểm tra lại xem myproxy server đã được thêm vào hệ thống hay chưa bằng lệnh sau: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lix [root@phongcnttbk ~]# cp $GLOBUS_LOCATION/etc/myproxy-server.config /etc [root@phongcnttbk ~]# gedit /etc/myproxy-server.config # # Complete Sample Policy # # The following lines define a sample policy that enables all # myproxy-server features. See below for more examples. accepted_credentials "*" authorized_retrievers "*" default_retrievers "*" authorized_renewers "*" default_renewers "none" authorized_key_retrievers "*" default_key_retrievers "none" trusted_retrievers "*" default_tr sted_retrievers "none" [root@phongcnttbk ~]#cat $GLOBUS_LOCATION/share/myproxy/etc.services.modifications >> /etc/services Xâ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ấy myproxy-server 7512/tcp ở dòng cuối là được. Sau đó ta cần cho cấu hình để myproxy-server khởi động cùng với hệ thống Tiếp theo là khởi động dịch vụ myproxy-server lên. Kiểm tra myproxy-server đã được start lên chưa bằng lệnh: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lx [root@phongcnttbk ~]#tail /etc/services và xem kết quả: [root@phongcnttbk ~]tail /etc/services binkp 24554/tcp # binkp fidonet protocol asp 27374/tcp # Address Search Protocol asp 27374/udp dircproxy 57000/tcp # Detachable IRC Proxy tfido 60177/tcp # fidonet EMSI over telnet fido 60179/tcp # fidonet EMSI over TCP # Local services gsiftp 2811/tcp myproxy-server 7512/tcp # Myproxy server root@choate:~# cp $GLOBUS_LOCATION/share/myproxy/etc.xinetd.myproxy /etc/xinetd.d/myproxy root@choate:~# vim /etc/xinetd.d/myproxy root@choate:~# cat /etc/xinetd.d/myproxy service myproxy-server { socket_type = stream protocol = tcp wait = no user = root server = /usr/local/globus-4.0.1/sbin/myproxy-server env = GLOBUS_LOCATION=/usr/local/globus-4.0.1 LD_LIBRARY_PATH=/usr/local/globus-4.0.1/lib disable = no } [root@phongcnttbk ~]# /etc/init.d/xinetd reload Reloading configuration: [ OK ] [root@phongcnttbk ~]# netstat -an | grep 7512 Xâ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ấy được dòng dưới đây: Như vậy là ta đã cài đặt cấu hình thành công. Một chú ý rất quan trọng trong việc cài đặt và cấu hình globus, myproxy server đó chính là lệnh nào thực hiện trong user nào phải rõ ràng không được lẫn lộn vì có một số lệnh chỉ chạy được trong root mà không chạy được trong các user khác hay trường hợp ta dùng CA xác thực cho phongcnttbk mà lại chạy lệnh yêu cầu xác thực cho root thì ta sẽ gặp các vấn đề lỗi về sau này. Myproxy-init, Myproxy-logon. Để lưu trữ chứng chỉ vào trong kho myproxy thì ta sử dụng lệnh myproxy-init như sau: Trong đó hostname chính là hostname của myproxy server Username là tài khoản của myproxy. Trong trường hợp của tôi thì tôi sẽ gõ lệnh là: Trên màn hình Terminal sẽ hiện ra như sau: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxi tcp 0 0 0.0.0.0:7512 0.0.0.0:* LISTEN Myproxy-init -s ‘hostname’ –l ‘username’ [phongcnttbk@phongcnttbk ~]$ myproxy-init -s phongcnttbk -l phong Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA-phongcnttbk/CN=Phong Dang Enter GRID pass phrase for this identity: Creating proxy ............................... Done Proxy Verify OK Your proxy is valid until: Thu Jan 6 02:10:54 2011 Enter MyProxy pass phrase: Verifying - Enter MyProxy pass phrase: A proxy valid for 168 hours (7.0 days) for user phong now exists on phongcnttbk. Xâ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ũ Trong quá trình này sẽ có 3 lần đòi passphrase. Lần đầu tiên là chính là pass phrase của chứng chỉ của chúng ta 2 lần tiếp theo là passphrase dùng để truy cập vào myproxy server. Sau khi gõ đúng các pass phrase này thì chứng chỉ của ta sẽ được lưu trữ trên kho myproxy và khi ngồi ở các máy tính khác ta có thể vào kho myproxy này để lấy chứng chỉ đó về để truy cập vào các dịchvụ của globus. Để lấy chứng chỉ được lưu trữ trên kho myproxy thì ta sử dụng lệnh myproxy-logon, có cấu trúc như sau: Hostname chính là Hostname của myproxy server. Username chính là username của proxy phải trùng với username được nhập trong lệnh myproxy-init trước đó. Trong trường hợp của tôi tôi sẽ nhập là: Sau lệnh này sẽ có yêu cầu đòi pass pharase của myproxy server ta nhập đúng vào thì chứng chỉ của username phongcnttbk sẽ được load về máy của chúng ta và dùng nó để truy cập các dịch vụ của globus. Submit job trong gloubus Để Submit một tác vụ chẳng hạn như in ra hostname của máy ra file ta làm như sau: Nếu tác vụ thành công thì màn hình Terminal sẽ thông báo: Tương tự cho một tác vụ khác chẳng hạn như in thời gian hiện hành trên máy ra màn hình terminal ta làm như sau: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxii Myproxy-logon -s ‘Hostname’ -l ‘Username. [phongcnttbk@phongcnttbk ~]$ myproxy-logon -s phongcnttbk -l phong [phongcnttbk@phongcnttbk ~]$ globusrun-ws -c -submit /bin/hostname Submitting job...Done. Job ID: uuid:fd99fcb2-1382-11e0-b294-000c29b9b001 Termination time: 12/30/2010 19:36 GMT Current job state: CleanUp Current job state: Done Xâ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ũ Và nếu thành công thì kết quả sẽ trả về là: Các lỗi hay gặp khi cài đặt, cấu hình globus: Lỗi connection refuse: Một số lỗi thường gặp trong quá trình cài đặt và cấu hình Globus a. Lỗi không kết nối được tới myproxy server Nguyên nhân của lỗi này có thể là: • Do firewall đã chặn các traffic của dịch vụ myproxy, nếu như vậy thì chỉ cần đăng nhập vào quyền root tắt đi hoặc cho phép traffic của myproxy được đi qua. • Do myproxy server chưa khởi động, nếu như vậy thì ta làm như sau: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxiii [phongcnttbk@phongcnttbk ~]$ globusrun-ws -c -s -submit /bin/date Delegating user credentials...Done. Submitting job...Done. Job ID: uuid:a859b110-1383-11e0-be17-000c29b9b001 Termination time: 12/30/2010 19:41 GMT Current job state: CleanUp-Hold Thu Dec 30 02:41:42 ICT 2010 Current job state: CleanUp Current job state: Done Destroying job...Done. Cleaning up any delegated credentials...Done. [phongcnttbk@phongcnttbk ~]$ myproxy-init -s phongcnttbk -l phong Unable to connect to 127.0.0.1:7512 [root@phongcnttbk]# myproxy-server Xâ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ũ Và kiểm tra lại bằng lệnh: Nếu thấy được dòng bên dưới là: thì tức là đã khởi động thành công, nếu không thấy được dòng này tức là trong quá trình cấu hình myproxy ta đã làm sai ở một chỗ nào đó và cần coi lại quá trình cấu hình đó. b. Lỗi không thể lưu được chứng chỉ lên myproxy server: Nguyên nhân: Trong quá trình tạo proxy cần có 2 file hash.0 và hash.signing_policy để xác thực cho proxy nên việc tạo proxy đưa lên myproxy server thất bại, bình thường thì sau khi kí sẽ nằm đúng vị trí của nó là /home/phongcnttbk/.globus/certificates nhưng có một lý do gì đó làm mất hai file này đi thì sẽ gây ra lỗi trên. Để khắc phục được lỗi này ta chỉ cần vào thư mục /etc/grid-security/certificates/ và copy 2 file đó về đúng vị trí của nó là /home/phongcnttbk/.globus/certificates. Lỗi sẽ được giải quyết. c. Lỗi không submit được Job: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxiv [root@phongcnttbk ~]# netstat -an | grep 7512 tcp 0 0 0.0.0.0:7512 0.0.0.0:* LISTEN [phongcnttbk@phongcnttbk ~]$ myproxy-init -s phongcnttbk Your identity: /O=Grid/OU=GlobusTest/OU=simpleCA-phongcnttbk/CN=Phong Dang Enter GRID pass phrase for this identity: Creating proxy .................................................................................. Done ERROR: Couldn't verify the authenticity of the user's credential to generate a proxy from. Use -debug for further information. grid-proxy-init failed [phongcnttbk@phongcnttbk ~]$ globusrun-ws -c -submit /bin/hostname Submitting job...Failed. globusrun-ws: Error submitting job globus_xio: Unable to connect to localhost:8443 Xâ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ũ Nguyên nhân: Có thể có 2 nguyên nhân • Do firewall chặn traffic của dịch vụ globusrun-ws, nếu như vậy ta chỉ cần đăng nhập vào quyền root và tắt firewall đi. • Do không biết Job sẽ được thực hiện ở host nào. Trong trường hợp này ta chỉ cần vào file /etc/hosts và thêm vào địa chỉ IP map với tên host đang được dùng để submit. Trên đây là 3 lỗi ta hay gặp nhất trong quá trình sử dụng globus , ngoài ra còn một số lỗi khác ít gặp hơn không được nêu ở đây. Những lỗi tốn của ta rất nhiều thời gian để giải quyết chúng nhất là đối với những người mới bắt đầu sử dụng globus. Một lời khuyên cho những người mới sử dụng globus đó chính là trong lúc cài đặt và cấu hình các thành phần của globus chúng ta phải tuân thủ chặt chẽ từng bước 1 và làm đúng như theo hướng dẫn để tránh đi những lỗi không đáng có và đỡ tốn thời gian để giải quyết chúng. 5.2 Cài đặt OGCE portal Sau khi cài đặt globus thành công chúng ta chuyển sang user thường để cài đặt OGCE portal. Trước hết cần thiết lập các đường dẫn cần thiết: Thiết lập đường dẫn JAVA_HOME: Thiết lập đường dẫn path đến thư mục maven 2.2.0-2 Thiết lập đường dẫn đến thư mục catalina home: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxv export $JAVA_HOME = /usr/grid/java export $PATH=$PATH:$HOME/maven2.2.0-2/bin export $CATALINA_HOME=$HOME/ogce-portal-only/portal-deploy/apach- tomcat-5.5.27/bin Xâ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ũ Chỉnh file pom.xml của OGCE như sau: ở đây domain localhost là phongcnttbk, lưu file lại sau đó chuyển vào thư mục ogce-portal chạy lệnh: Lưu ý là install chứ không phải là install.sh Quá trình cài đặt thành công. Để chạy OGCE portal thì ta phải chạy tomcat trước: Mở trình duyệt firefox gõ: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxvi mvn clean install [phongcnttbk@phongcnttbk bin]$ /home/phongcnttbk/ogce-portal- only/portal_deploy/apache-tomcat-5.5.27/bin/startup.sh Using CATALINA_BASE: /home/phongcnttbk/ogce-portal- only/portal_deploy/apache-tomcat-5.5.27 Using CATALINA_HOME: /home/phongcnttbk/ogce-portal- only/portal_deploy/apache-tomcat-5.5.27 Using CATALINA_TMPDIR: /home/phongcnttbk/ogce-portal- only/portal_deploy/apache-tomcat-5.5.27/temp Using JRE_HOME: /usr/grid/java Xâ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ũ Ở đây phongcnttbk là domain localhost mà ta đã chỉnh trong file /etc/host và file pom.xml Hình 4. 1: OGCE portal Tiếp bạn khởi tạo một tài khoản admin cho portal OGCE. 5.3 Cài đặt sakai phiên bản 2.5.4 Môi trường chuẩn bị: • JDK 1.5 update 18 • SVN • Maven 2.2.1 • Tomcat 5.5.26 • MySQL JDK: Link : Thiết lập biến môi trường: Chú ý: Tất cả biến môi trường nên được khai báo trong $USER_HOME/.bash_profile SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxvii Xâ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ũ export JAVA_HOME=your/java/dir export PATH=$PATH:$JAVA_HOME/bin Sakai không phù hợp với phiên bản 1.6 , chỉ có thể sử dụng JDK phiên bản 1.5 update 18 là tốt nhất. SVN: Cài đặt từ repository của CentOS yum install subversion Cài đặt từ gói binary Maven 2.2.1: Link: Tải xuống và giải nén gói apache-maven-2.x.x-bin. Thiết lập biến môi trường: export MAVEN_HOME=/your/maven/dir export PATH=$PATH:$MAVEN_HOME/bin export MAVEN_OPTS='-Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m' Tạo thư mục repository cho maven: mkdir –p ~/.m2/repository Cấu hình Maven: Tạo tập tin settings.xml tại ~/.m2/ với nội dung như sau: SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxviii Xâ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ũ <settings xmlns="" xmlns:xsi="" xsi:schemaLocation=" "> tomcat5x true tomcat5x /opt/tomcat /opt/tomcat Tomcat 5.5.26 Link: Tải xuống và giải nén gói apache-tomcat-5.5.26.tar.gz Thiết lập biến môi trường: export CATALINA_HOME=/your/tomcat/dir export PATH=$PATH:$CATALINA_HOME/bin Bộ nhớ mặc định của Tomcat không đủ cho việc khởi động Sakai, cho nên ta cần phải khai báo thêm biến JAVA_OPTS cho Tomcat bằng cách tạo tập tin setenv.sh tại $CATALINA_HOME/bin/ với nội dung như sau export JAVA_OPTS="-server -XX:+UseParallelGC -Xmx768m -XX:MaxPermSize=160m -Djava.awt.headless=true" SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxix Xâ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ũ Tomcat cần có JDBC driver để kết nối tới MySQL Link: Tải xuống và chứa tại thư mục $CATALINA_HOME/common/lib MySQL Cài đặt bằng yum yum install mysql mysql-server mysql-devel Cài đặt bằng gói binary hoặc gói source Link: Tạo cơ sở dữ liệu cho Sakai: Đăng nhập vào Mysql với quyền root rồi gõ các lệnh sau. create database sakai default character set utf8; grant all privileges on sakai.* to 'sakai'@'localhost' identified by ironchef'; flush privileges; Biên dịch và khởi động Sakai: Cấu hình Sakai: Sakai được cấu hình qua tập tin sakai.properties được đặt ở $CATALINA_HOME/sakai. Trong sakai source có cung cấp sẵn một tập tin mẫu để tham khảo tại sakaisrc/config/configuration/bundles/src/bundle/org/sakaiproject/config/bundle/defa ult.sakai.properties Mặc định Sakai sử dụng HSQLDB để làm cơ sở dữ liệu. HSQLDB chỉ thích hợp cho môi trường testing và sử dụng nội bộ với số lượng truy cập nhỏ. Để đáp ứng nhu cầu truy cập lớn, ta cần cấu hình cho Sakai hỗ trợ MySQL. Chép tập tin default.sakai.properties trên sang $CATALINA_HOME/sakai và đổi tên thành sakai.properties. Sau đó mở ra và sửa lại như sau: Thêm dấu comment vào phần HSQLDB settings SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxx Xâ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ũ ## HSQLDB settings - on by default #vendor@org.sakaiproject.service.framework.sql.SqlService=hsqldb #driverClassName@javax.sql.BaseDataSource=org.hsqldb.jdbcDriver #hibernate.dialect=org.hibernate.dialect.HSQLDialect Bỏ comment phần MySQL settings ## MySQL settings - make sure to alter as appropriate vendor@org.sakaiproject.db.api.SqlService=mysql driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver hibernate.dialect=org.hibernate.dialect.MySQLDialect Khai báo username và password cho MySQL set username@javax.sql.BaseDataSource=sakai set password@javax.sql.BaseDataSource=ironchef Biên dịch Sakai: Đứng tại thư mục sakai-src cd master mvn clean install cd ../ Khởi động Sakai Vào thư mục $CATALINA_HOME/bin startup.sh Lúc này quá trình cài đặt Sakai đã hoàn tất, mở trình duyệt và vào địa chỉ để kiểm tra. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxxi Xâ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 4. 2: Sakai sau khi cài đặt thành công Để kết thúc sakai chạy shutdown.sh. Hướng dẫn sử dụng các kèm theo trong đề tài luận văn để xây dựng môi trường truy cập hệ thống tính toán lưới thông qua Sakai Đầu tiên sử dụng gói gridserver để cài đặt GT4 ( Hướng dẫn cài đặt ở trên) Tiếp theo bạn build OGCE portal cần chú ý đến việc cấu hình file pom.xml ở đây sẽ cấu hình cho server và cấu hình các host sử dụng các dịch vụ GRAM và GridFTP ở đây bạn cần chú ý đến các việc cấu hình các host sử dụng các dịch vụ cho phù hợp với yêu cầu của bạn. Sau đó cài đặt OGCE bình thường như hướng dẫn trên. SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxxii phongcnttbk http://${portal.server.ip}:8080/ …………. phongcnttbk phongcnttbk Xâ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ài đặt OGCE thành công bạn có thể copy các portlet của OGCE vào thư mục webapp của gói Sakai kèm theo luận văn, nhớ cấu hình cho các portlet của OGCE cho tương thích với Sakai như trong chương 3. Ở đây vì yêu cầu của luận văn nên nhóm chỉ tích hợp 3 portlet là Poroxymanager, Jobsubmit, và GridPortFileManagement. Sau đó bạn khởi động Sakai portal lên là có thể sử dụng được các dịch vụ của hệ thống tính toán lưới thông qua Sakai. Sau đây là một số kết quả: Hình 4. 3:Sakai có tích hợp Proxymanager portlet và có thể lấy proxy SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxxiii Xâ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 4. 4:Sakai có tích hợp JobSubmit portlet và có thể submit một job Hình 4. 5:Kết quả của việc thực thi SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxxiv Xâ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ài liệu tham khảo [1] Tiến sĩ Hoàng Lê Minh, Báo cáo trong hội thảo "Công nghệ tính toán mạng lưới và tính toán hiệu năng cao" [2] XIAOBO YANG and ROB ALLANCCLRC e-Science CentreDaresbury Laboratory Warrington WA4 4AD, Sakai VRE Demonstrator Project: Realise e-Research through Virtual Research Environments. [3] Vngrid project, [4] Các bài báo nghiên cứu về Globus , [5] Các public chi tiết các phần của GT4, [6] An Early and Incomplete Draft, A Globus Primer Or Everything You Wanted to Know about Globus,but Were Afraid To Ask Describing Globus Toolkit Version 4 [7] Sakai_Courseware_Management_the Official _ Guide_2009.pdf [8] Sakai Project,Sakai Java Framework,December 3, 2004,Version 1.0. [9] Web Services for Remote Portlets Specification.pdf [10] OGCE Portal, [11] Khóa luận tốt nghiệp của Đặng Đình Vương, Bùi Vĩnh Phú, phần JSR 168, trang 44. [12] Sakai JSR 168 Portlet Support, 168-portlet-support.html [13] Charles Serverance, JSR-168 Portlet Support in Sakai,February 6, 2007, link: 2.5.4/reference/docs/architecture/sakai-168-portlet-tool.doc [14] Myproxy, [15]GRAM, ml [16] Single Sign-on, [17] Axis service, SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxxv Xâ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ũ [18] Charles Serverance, JSR-168 Portlet Support in Sakai,February 6, 2007, link: 2.5.4/reference/docs/architecture/sakai-168-portlet-tool.doc [19] Gói Sakai-Ogce: https://ogce.svn.sourceforge.net/svnroot/ogce/Sakai-ogce/ [20] Pluto 1.1, SVTH: Huỳnh Quang Trung – Đặng Hoàng Thiên Phong lxxvi

Các file đính kèm theo tài liệu này:

  • pdfXây dựng cơ chế Single Sign On từ môi trường Sakai vào Việt Nam-GRID.pdf
Luận văn liên quan