IaaS và PaaS được sử dụng để đáp ứng các nhu cầu cơ sở hạ tầng của học sinh, giáo viên, sinh viên học giả nghiên cứu với một số cấu hình phần cứng cụ thể cho các nhiệm vụ cụ thể.. - Dịch
Trang 1LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của bản thân, được xuất phát từ yêu cầu phát sinh trong công việc để hình thành hướng nghiên cứu
Các số liệu có nguồn gốc rõ ràng tuân thủ đúng nguyên tắc và kết quả trình bày trong luận văn thu thập được trong quá trình nghiên cứu là trung thực chưa từng được ai công bố trước đây
Hà Nội, tháng 02 năm 2015
Tác giả luận văn
Dương Thị Thúy
Trang 2MỤC LỤC
LỜI CAM ĐOAN 1
DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT 5
DANH MỤC CÁC BẢNG CƠ SỞ DỮ LIỆU 6
DANH MỤC HÌNH VẼ 7
MỞ ĐẦU 8
1 Lý do nghiên cứu đề tài 8
2 Mục đích nghiên cứu 9
3 Đối tượng và phạm vi nghiên cứu 9
3.1 Đối tượng nghiên cứu 9
3.2 Phạm vi nghiên cứu 9
4 Nhiệm vụ nghiên cứu 10
5 Phương pháp nghiên cứu 10
6 Cấu trúc luận văn 10
CHƯƠNG 1: TỔNG QUAN ĐIỆN TOÁN ĐÁM MÂY 11
1.1 Một số khái niệm cơ bản trong kiến trúc điện toán đám mây 11
1.2 Kiến trúc mô hình giáo dục là dịch vụ (EaaS) 13
1.2.1 Chức năng chính trong kiến trúc EaaS 13
1.2.2 Các dịch vụ trong kiến trúc EaaS 13
1.2.3 Nhiệm vụ mới của các thành viên khi chuyển giáo dục truyền thống sang giáo dục đám mây 16
1.3 Các sản phẩm khoa học đã công bố về ứng dụng điện toán đám mây trong lĩnh vực giáo dục: 16
1.3.1 Cloud-based storage (Lưu trữ dựa trên đám mây) 17
1.3.3 Software as a Service (SaaS) : Phần mềm hoạt động như dịch vụ 17
1.3.4 Platform as a Service (PaaS) : Nền tảng như một dịch vụ 17
1.3.5 Google Apps cho dạy học trực tuyến 18
1.4 Mô hình kiến trúc điện toán đám mây trong giáo dục 18
1.4.1 Lý do phải xây dựng hệ thống giáo dục trên nền tảng điện toán đám mây 18 1.4.2 Mô hình kiến trúc điện toán đám mây trong giáo dục 21
Kết luận chương 1 23
Trang 3CHƯƠNG 2: CÔNG NGHỆ APPENGINE CỦA GOOGLE 24
2.1 Tổng quan về Google App Engine 24
2.2 Các chức năng của Google App Engine 25
2.2.1 Kho dữ liệu (Datastore) 25
2.2.2 Môi trường thực hiện (runtime environment) 26
2.2.3 Các file server tĩnh (static file servers) 26
2.2.4 Các công cụ lập trình (programming tools) 27
2.2.5 Tài khoản Google (google accounts) 27
2.3 Các ứng dụng của Google app engine 27
2.3.1 Mail 27
2.3.2 Memcache 28
2.3.3 API của App engine 28
2.3.4 URL FETCH 29
2.3.5 Dịch vụ của datastore với môi trường thực thi Google App Engine 30
2.4 Cách thức đưa dịch vụ lên Google AppEngine 30
Kết luận chương 2 35
CHƯƠNG 3: PHÂN TÍCH THIẾT KÊ, XÂY DỰNG HỆ THỐNG CHIA SẺ FILE36 3.1 Mô tả 36
3.2 Mô hình hóa yêu cầu 36
3.2.1 Các actor của hệ thống 36
3.2.2 Đặc tả các ca sử dụng (Usecases) 37
3.3 Phân tích hệ thống: 47
3.3.1:Usecase Gửi file cho lớp: 47
3.3.2 Quản l lớp: 48
3.3.3 Quản l nộp bài: 49
3.3.4 Sinh viên xin gia nhập lớp: 50
3.3.5 Sinh viên download tài liệu: 51
3.3.6 Sinh viên gửi bài tập: 52
3.3.7 Admin quản l thông tin Giảng viên và Sinh viên: 53
3.3.8 Khách đăng k tài khoản Sinh viên: 53
Trang 43.4 Thiết kế hệ thống 54
3.4.1 Thiết kế lớp thực thể 54
3.4.2 Thiết kế các lớp tầng DataAccess 55
3.4.3 Tương tác giữa các gói: 55
3.4.4 Biểu đồ thành phần: 56
3.4.5 Biểu đồ triển khai: 56
3.4.6 Thiết kế các thuật toán upload và download file 57
3.4.7 Thiết kế cơ sở dữ liệu: 58
3.4.8 Thiết kế giao diện: 64
3.4.9 Hướng dẫn chương trình và thử nghiệm chương trình trên Internet (App Engine Google.com.vn) 69
Kết luận chương 3 75
KẾT LUẬN VÀ KIẾN NGHỊ 76
1 Kết luận 76
2 Dự kiến tương lai 76
TÀI LIỆU THAM KHẢO 77
Trang 5DANH MỤC CÁC KÍ HIỆU, CÁC CHỮ VIẾT TẮT
1 AaaS Application as a Service
2 EaaS Education as a Service
5 HTTP HyperText Transfer Protocol
6 IaaS Infrastructure as a Service
8 PaaS Platform as a Service
10 SDK Software development kit
Trang 6DANH MỤC CÁC BẢNG CƠ SỞ DỮ LIỆU
Bảng 3.4.7.1 FileBaiGiang 58
Bảng 3.4.7.2 GiảngViên 59
Bảng 3.4.7.3 SinhViên: 59
Bảng 3.4.7.4 Khách 60
Bảng 3.4.7.5 LớpHọc 60
Bảng 3.4.7.6 Đăng K : 61
Bảng 3.4.7.7 Bài Tập: 61
Bảng 3.4.7.8 Yêu Cầu Nhập Lớp: 62
Trang 7DANH MỤC HÌNH VẼ
Hình 1: Kiến trúc điện toán đám mây 11
Hình 2: Thành phần của điện toán đám mây 12
Hình 3: Kiến trúc của EaaS 15
Hình 4: Năm thành phần biến đổi Giáo dục 19
Hình 5: Kiến trúc điện toán đám mây trong giáo dục 21
Hình 6 Sơ đồ kiến trúc hoạt động của GAE 25
Trang 8MỞ ĐẦU
Thuật ngữ CLOUD COMPUTING ra đời giữa năm 2007 không phải để nói
về một trào lưu mới, mà khái quát lại các hướng đi của cơ sở hạ tầng thông tin vốn
đã và đang diễn ra trong những năm gần đây, không phải là một công nghệ mới, nhưng nó là một cuộc cách mạng đang làm thay đổi bản chất của công nghệ thông
tin và tác động mạnh đến mọi lĩnh vực trong đó có giáo dục
1 Lý do nghiên cứu đề tài
* Cơ sở khoa học:
- Điện toán đám mây là dịch vụ lưu trữ và tính toán theo yêu cầu cho bất cứ ai được kết nối mạng Truy cập ứng dụng và dữ liệu bất cứ nơi nào, bất cứ lúc nào, từ bất kỳ thiết bị nào Vì vậy khi triển khai trong trường học: Giáo viên và học sinh có thông tin liên lạc nhanh chóng và hiệu quả với bất cứ lúc nào, truy cập bất cứ nơi nào
- Dịch vụ điện toán đám mây thực hiện theo các mô hình dịch vụ khác nhau như nền tảng như dịch vụ (PaaS), lưu trữ như một dịch vụ hoặc phần mềm như một dịch vụ (SaaS) IaaS và PaaS được sử dụng để đáp ứng các nhu cầu cơ sở hạ tầng của học sinh, giáo viên, sinh viên học giả nghiên cứu với một số cấu hình phần cứng cụ thể cho các nhiệm vụ cụ thể
- Công nghệ App Engine của Google hỗ trợ cho các ứng dụng web chạy trên
đó bằng việc cung cấp hạ tầng cơ sở, lưu trữ dữ liệu, đặc biệt là khả năng đáp ứng được việc lưu trữ và truy cập với số lượng lớn dữ liệu
và các bộ, ngành có liên quan quy định
Với số lượng hơn 3000 sinh viên, hơn 100 cán bộ công nhân viên trong trường
và 8 nghề đào tạo của trường, 100% các gia đình có kết nối mạng Internet, Với đặc
Trang 9thù ngoài dạy lý thuyết (30%) còn có phần thực hành (70%) đòi hỏi sự nỗ lực không ngừng của người học trong tất cả các ngành nghề của trường
Hệ thống tin học giảng dạy và các phòng ban thực hiện bằng công việc thủ công gây tốn kém nhiều thời gian, không phát huy tính tự chủ, tự rèn luyện trong học tập của học sinh, sinh viên; sự trao đổi giữa thầy - trò còn mang tính đơn điệu, một chiều không phát huy được tính sáng tạo của học sinh
Vì vậy, trong quá trình triển khai đào tạo, việc trao đổi thông tin giữa giảng viên - sinh viên - nhà quản lý là một nhu cầu tất yếu, đòi hỏi phải có một môi trường để sinh viên tìm kiếm tài liệu học tập, tra cứu các tin tức thông tin có ích cho việc học tập
Xuất phát từ những vấn đề nêu trên, tác giả đã chọn đề tài nghiên cứu :”Sử
dụng Google App Engine trong điện toán đám mây xây dựng hệ thống trao đổi dữ liệu” nhằm giúp cho việc giảng dạy, truyền tải thông tin được dễ dàng hơn
2 Mục đích nghiên cứu
Xây dựng thử nghiệm một hệ thống để chia sẻ file của Google App Engine Trên cơ sở đó tập trung xây dựng hệ thống trao đổi dữ liệu cho giáo viên và học sinh trong trường học Hệ thống này cho phép người dùng (bao gồm cả giáo viên lẫn học sinh) có thể tìm kiếm, download tài liệu, upload tài liệu, bài tập nộp… nâng cao chất lượng trao đổi thông tin giữa thầy cô và trò
Nghiên cứu cách đưa dữ liệu lên Cloud và truy xuất đến chúng, áp dụng vào bài toán đưa cơ sở dữ liệu có cấu trúc lên Cloud SQL và dữ liệu không có cấu trúc lên Cloud Storage
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
Hệ thống tin học hỗ trợ các công tác hành chính và giảng dạy tại trường Trung cấp nghề cơ khí I Hà Nội
3.2 Phạm vi nghiên cứu
Do phạm vi công nghệ sử dụng trong mô hình điện toán đám mây rất rộng, vì vậy luận văn này không thể đi sâu cụ thể vào tất cả các công nghệ có thể triển khai
Trang 10mô hình điện toán đám mây riêng mà chủ yếu nghiên cứu về bản chất mô hình điện toán đám mây, lợi ích, một số kỹ thuật sử dụng trong mô hình điện toán đám mây kết hợp với triển khai thực tế một phần vào mô hình ĐTĐM trong phạm vi nhỏ để đưa ra đề xuất, triển khai, kiểm thử, đưa ra kinh nghiệm, khuyến nghị triển khai mô hình ĐTĐM tại trường Trung cấp nghề cơ khí I Hà Nội
4 Nhiệm vụ nghiên cứu
Nghiên cứu tổng quan điện toán đám mây nói chung và công nghệ Google App Engine nói riêng
Xây dựng thử nghiệm một hệ thống để chia sẻ file của Google App Engine Ứng dụng hệ thống chia sẻ file phục vụ công tác dạy và học trong trường học nhằm nâng cao chất lượng trao đổi thông tin giữa Thầy và Trò
5 Phương pháp nghiên cứu
Tập trung tìm hiểu về công nghệ điện toán đám mây GAE cách lưu trữ trên GAE Sử dụng ngôn ngữ Java và JSP được Google hỗ trợ để xây dựng ứng dụng trên GAE Nghiên cứu quá trình ứng dụng hệ thống chia sẻ file và dữ liệu phục vụ công tác dạy và học trong trường
6 Cấu trúc luận văn
Ngoài mở đầu, kết luận và kiến nghị, nội dung chính của luận văn được trình bày trong 3 chương:
Chương 1: Tổng quan điện toán đám mây
Chương 2: Công nghệ App Engine của Google
Chương 3: Phân tích thiết kế, xây dựng hệ thống chia sẻ file
Trang 11CHƯƠNG 1: TỔNG QUAN ĐIỆN TOÁN ĐÁM MÂY
Điện toán đám mây (ĐTĐM) là các phát triển dựa vào mạng Internet sử dụng các công nghệ máy tính Kiểu điện toán trong đó những tài nguyên tính toán và lưu trữ được cung cấp như những dịch vụ trên mạng Người dùng không cần biết hay có kinh nghiệm điều khiển và vận hành những công nghệ này
ĐTĐM bao gồm các thành phần chính sau:
Phần mềm hoạt động như dịch vụ (SaaS: Software as a Service)
Nền tảng như một dịch vụ (PaaS: Platform as a Service)
Cơ sở hạ tầng như một dịch vụ (IaaS: Infrastructure as a Service: IaaS) … Tùy theo việc ứng dụng ĐTĐM vào trong lĩnh vực nào mà các chức năng SaaS, PaaS, IaaS có thể thay đổi cho phù hợp với ứng dụng cụ thể đó Do khuôn khổ của luận văn có hạn nên trong chương I tác giả chủ yếu tập trung trình bày khái niệm cơ bản trong ĐTĐM, hệ thống giáo dục mới trên nền tảng đám mây, phân tích các nhiệm vụ chính của các thành phần SaaS, PaaS, IaaS khi giáo dục truyền thống chuyển sang giáo dục điện toán đám mây
1.1 Một số khái niệm cơ bản trong kiến trúc điện toán đám mây
Kiến trúc đám mây gồm: Nền tảng đám mây (Cloud Platform), các dịch vụ đám mây (Cloud Service), cơ sở hạ tầng đám mây (Cloud Infrastructure), lưu trữ đám mây (Cloud Storage)
Hình 1: Kiến trúc điện toán đám mây
Trang 12Người sử dụng dịch vụ không sở hữu cơ sở hạ tầng mà chỉ phải trả phí (tiền) cho những gì họ đã sử dụng Việc chia sẻ giữa nhiều người cùng thuê sẽ giúp tận dụng nguồn tài nguyên máy tính và giảm phí tổn
Cấu trúc phân lớp :
Hình 2: Thành phần của điện toán đám mây
- Máy khách (Clients): Máy khách đám mây bao gồm phần cứng máy tính và/hoặc phần mềm máy tính phụ thuộc vào ứng dụng đám mây để phân phối ứng dụng hoặc được thiết kế riêng để phân phối các dịch vụ đám mây.Ví dụ: thiết bị di động
- Dịch vụ (Services): Một dịch vụ đám mây bao gồm “sản phẩm, dịch vụ, giải pháp” , là hệ thống phần mềm được thiết kế để hỗ trợ tương tác giữa các máy trong mạng, dịch vụ này có thể được truy cập bởi các thành phần của điện toán đám mây khác, các phần mềm hoặc bởi người dùng cuối
- Ứng dụng (Application): Không cần phải cài đặt và chạy ứng dụng trên chính máy tính của khách hàng, do đó giảm bớt gánh nặng của việc duy trì, điều hành và hỗ trợ Ví dụ: máy tính đồng đẳng, ứng dụng web, phần mềm hoạt động như dịch vụ
- Nền tảng (Platform) : Nền tảng đám mây là sự phân phối các nền tảng điện
Trang 13toán, và / hoặc các giải pháp như là dịch vụ, triển khai các ứng dụng không tốn tiền hoặc không gặp rắc rối do mua phần cứng, phần mềm Ví dụ: Khung ứng dụng web
- Lưu trữ (Storage): Lưu trữ đám mây gồm việc phân phối các dịch vụ lưu trữ
dữ liệu, các dịch vụ cơ sở dữ liệu: Cơ sở dữ liệu, dịch vụ web
- Cơ sở hạ tầng (Infrastructure): Cơ sở hạ tầng đám mây là sự phân phối các
cơ sở hạ tầng máy tính như là dịch vụ, điển hình như môi trường ảo Ví dụ: điện toán lưới
1.2 Kiến trúc mô hình giáo dục là dịch vụ (EaaS)
1.2.1 Chức năng chính trong kiến trúc EaaS
EaaS (Education as a Service) cung cấp các dịch vụ nâng cao để biến một môi
trường điện toán đám mây trong khuôn viên trường học thành những đám mây riêng cung cấp phương pháp l tưởng để giải quyết những thách thức của các tổ chức giáo dục lớn nhất Một đám mây riêng có thể cung cấp EaaS giúp giảm chi phí, đạt đến cấp độ mới về hiệu quả và sáng tạo nên mô hình giáo dục mới
EaaS là một giải pháp điện toán đám mây được thiết kế đặc biệt cho giáo dục
Nó giúp giáo viên xây dựng kế hoạch bài học và cho phép sinh viên chia sẻ một máy chủ duy nhất có bàn phím nhiều chiều (bàn phím ảo, nhiều người cùng sử dụng máy chủ nhờ các bàn phím khác nhau) Nó cho phép các nhà giáo dục và học sinh truy cập các tập tin và ứng dụng của họ từ bất kỳ máy tính nào thông qua một máy tính ảo để bàn Nó kết hợp cơ sở hạ tầng, phần mềm và các công cụ phát triển chuyên nghiệp để thiết kế đặc biệt cho giáo dục, để giúp giáo dục giảng dạy bằng các phương tiện điện tử
EaaS lưu trữ các chương trình nội dung giảng dạy cho các đối tượng bằng cách lưu trữ dữ liệu trong một đám mây riêng và cho phép giáo viên và học sinh truy cập bất cứ nơi nào, bất cứ lúc nào
1.2.2 Các dịch vụ trong kiến trúc EaaS
Các dịch vụ Xaas cụ thể được cung cấp bởi EaaS bao gồm (Hình 3):
IaaS ( Infrastructure as a Service ): Cơ sở hạ tầng như một dịch vụ (IaaS)
Trang 14cho phép người sử dụng thuê máy chủ và lưu trữ dữ liệu bằng cách trả tiền dịch vụ Dịch vụ này giúp các tổ chức giáo dục tiết kiệm hàng triệu đô la Cơ sở hạ tầng như một dịch vụ là một mô hình cung cấp, trong đó tổ chức giáo dục thuê ngoài các thiết
bị sử dụng để hỗ trợ học tập, bao gồm lưu trữ, phần cứng, máy chủ và các thành phần mạng Các nhà cung cấp dịch vụ sở hữu thiết bị và chịu trách nhiệm vận hành máy và duy trì nó Khách hàng thường trả tiền trên cơ sở mỗi lần sử dụng
SaaS (Software as a Service): Phần mềm như một dịch vụ (SaaS) là một mô
hình mới, trong đó phần mềm được phân phát cho người sử dụng dịch vụ SaaS phân phát các phần mềm thiết yếu cho các phòng thí nghiệm máy tính và các tài liệu giảng dạy bằng cách truy cập thông qua một trình duyệt web và được trả tiền trên cơ
sở thuê bao (hàng tháng hoặc hàng năm) Theo mô hình giáo dục truyền thống, các
cơ sở giáo dục mua một giấy phép phần mềm và xác lập quyền sở hữu để bảo trì và cài đặt nó SaaS có lợi thế ở chỗ là các cơ sở giáo dục chỉ phải trả dịch vụ mà
không phải mua bản quyền SaaS nhanh và chi phí hiệu quả hơn khi thực hiện, vì
cơ sở giáo dục không phải chi phí mua phần cứng, đó là trách nhiệm của các nhà cung cấp SaaS sẽ quản lý và chạy các ứng dụng với độ tin cậy và bảo mật tối đa Khi khách hàng phải trả một thuê bao, họ có thể truy cập ngay lập tức với tính năng mới Không giống như các phần mềm truyền thống phải nâng cấp một lần một năm (các nhà cung cấp phần mềm phải đến cơ sở giáo dục nâng cấp), còn các nhà cung cấp SaaS liên tục cập nhật mới, sửa lỗi cho các ứng dụng ngay lập tức khi khách hàng truy cập
PaaS (Platform as a Service): Nền tảng như một dịch vụ (PaaS), là một phiên
bản của SaaS, điện toán đám mây cung cấp môi trường phát triển như một dịch vụ Học sinh / Giáo viên có thể xây dựng các ứng dụng riêng của họ chạy trên cơ sở hạ tầng của nhà cung cấp và được chuyển giao cho họ thông qua Internet từ các máy chủ của nhà cung cấp
AaaS (Application as a Service ): Ứng dụng như là một dịch vụ (AaaS), là
một phiên bản SaaS khác, khi điện toán đám mây có thể được sử dụng trong kiểm tra kết quả học tập của học sinh Theo cách tiến hành kiểm tra truyền thống, câu
Trang 15hỏi được gửi qua email Sử dụng điện toán đám mây, câu hỏi được lưu trữ trong các đám mây trung cấp riêng và các trường thành viên có thể được ủy quyền để truy cập vào câu hỏi duy nhất vào một ngày cụ thể ở bất cứ nơi nào, bất cứ lúc nào
Kỳ thi tuyển sinh trực tuyến cũng có thể được thực hiện mà không cần cài đặt ứng dụng / phần mềm theo yêu cầu Các phần mềm để tiến hành kiểm tra được lưu trữ trong máy chủ của nhà cung cấp và các học sinh truy cập vào câu hỏi từ hệ thống khách hàng, trả lời các câu hỏi, câu trả lời được lưu trữ đến máy chủ của nhà cung cấp Xem kết quả cũng có thể được thực hiện bằng cách truy cập trực tiếp vào máy chủ của nhà cung cấp mà không cần phải lưu trữ nó trong máy tính riêng của trường Biện pháp này cho phép chúng ta giảm thiểu sơ suất trong các kỳ thi
Hình 3: Kiến trúc của EaaS
Application Trong phần Application trên hình 3 của kiến trúc EaaS gồm:
• Student/Faculty Profile: Sinh viên/Thông tin Khoa viện Các thuộc tính và
Trang 16• Virtual Class rooms : Các lớp học ảo Giáo viên có thể tạo ra lớp học ảo trong đó giáo viên và học sinh có thể được học ngoài lớp học
• Student/Faculty Collaboration tools: Công cụ hợp tác, Giảng viên và sinh viên có thể tương tác với nhau bằng cách sử dụng các công cụ hợp tác như nhắn tin
• Meta Data Services: Siêu dữ liệu dịch vụ Cho biết thông tin về dữ liệu nào được lưu giữ và biểu diễn trong ứng dụng và nội dung được tổ chức ra sao
• Monitoring and Alerting: Giám sát và cảnh báo Thành phần ứng dụng, dịch
vụ và cơ sở hạ tầng để phát hiện các lỗi Phát hiện, cảnh báo được gửi đến nhóm hỗ trợ thích hợp
• Performance and Availability: Hiệu suất và tính sẵn sàng Hiệu suất mô tả cách thức ứng dụng thực hiện theo tải trọng, cả về số lượng người sử dụng và khối lượng giao dịch Đây là một biện pháp ứng dụng có sẵn cho người dùng và được biểu diễn như là một tỷ lệ phần trăm
1.2.3 Nhiệm vụ mới của các thành viên khi chuyển giáo dục truyền thống sang giáo dục đám mây
Nhân viên - Sử dụng một máy chủ đám mây dựa trên hệ thống phân phối quản
lý khối lượng công việc, nhân viên có thể được cân đối trên toàn bộ Hệ thống giáo dục
Giáo viên - Thiết lập các lớp học ảo để xử lý công việc lớp học nhỏ hơn hoặc
mở rộng khi giáo viên phải đảm nhận
Sinh viên, học sinh - Sử dụng học tập điện toán đám mây để làm bài tập, cho
phép học sinh cộng tác với một phạm vi rộng lớn Các sinh viên có thể làm việc trên đám mây, hợp tác với các thành viên trong nhóm và chia sẻ kiến thức Khi họ ở trên đám mây, họ có thể truy cập chúng bất cứ nơi nào, có thể là nhà hoặc trường học
Các trường đại học, cao đẳng và trung cấp cho phép sinh viên có quyền truy
cập vào các ứng dụng kỹ thuật phức tạp (trước đây chỉ dành cho các trường Đại học
và cao đẳng) thông qua một hệ thống chia sẻ của các máy chủ đám mây
1.3 Các sản phẩm khoa học đã công bố về ứng dụng điện toán đám mây
Trang 17trong lĩnh vực giáo dục:
1.3.1 Cloud-based storage (Lưu trữ dựa trên đám mây)
Dựa trên sử dụng lưu trữ đám mây để tạo điều kiện thuận lợi cho sự hợp tác giữa học sinh bằng cách cho phép họ làm việc cùng nhau trên cùng một tài liệu Ví
dụ một số nhà cung cấp chức năng này :
http://www.clouddip.com http://aws.amazon.com/s3 http://www.dropbox.com/
1.3.3 Software as a Service (SaaS) : Phần mềm hoạt động như dịch vụ
Người sử dụng truy cập các ứng dụng và dữ liệu liên quan trực tiếp từ các đám mây mà không cần cài đặt trên máy tính của họ bằng cách sử dụng như một khách hàng để trình duyệt web trên Internet SaaS giải quyết nhiều vấn đề tương thích, giảm chi phí của các trường đại học, hay cao đẳng, cũng như trung cấp và có thể truy cập bất cứ nơi nào bất cứ lúc nào Một số ví dụ của việc sử dụng SaaS trong các giáo dục dựa trên Google Apps - Education Edition :
Trang http://www.google.com/apps/intl/en/edu/university.html đã giới thiệu lợi ích chính thu được từ việc sử dụng phương pháp này
Dự án trên https://projects.zoho.com là một ví dụ khác hiện đang được sử dụng trong Khoa Thông tin - Đại học Cairo để quản lý một số dự án tốt nghiệp
1.3.4 Platform as a Service (PaaS) : Nền tảng như một dịch vụ
Người dùng được cung cấp bởi môi trường để chạy/kiểm tra các thành phần phần mềm của họ ở nơi mà tất cả các phần mềm cần thiết phục vụ mục đích của người sử dụng đã được cài đặt và định dạng.Ví dụ:
Microsoft Azure (http://www.microsoft.com/windowsazure/)
Trang 18& Google App Engine (http://code.google.com/appengine/)
Mô hình dịch vụ này mang lại lợi ích cho học sinh và giáo viên khoa học máy tính, vì không cần phải dành nhiều thời gian thiết lập môi trường phát triển
Những học sinh có nhu cầu truy cập vào nền tảng có giấy phép (MATLAB, SPSS) nhưng chỉ có các máy tính trong khuôn viên của trường cũng có thể hưởng lợi từ mô hình dịch vụ này bằng cách truy cập vào nền tảng đám mây từ bất cứ nơi nào
Ví dụ: Một số công trình nghiên cứu trong lĩnh vực này :
Luis M Vaquero, "EduCloud: PaaS so với sử dụng IaaS cho một khóa học khoa học máy tính nâng cao" IEEE giao dịch về giáo dục, DOI: 10.1109/TE.2010.2100097,
Frank Doelitzscher,: Anthony Sulistio, Christoph Reich, Hendrik Kuijs, và David Wolf "Private Cloud Dịch vụ Hợp tác và e-Learning: IaaS & SaaS." vol 91, tập 1, trang 23-42 , Tháng 1 năm 2011
Mladen Vouk, et al " - Sử dụng phòng thí nghiệm máy tính ảo (VCL) trong công nghệ điện toán đám mây" Kỷ yếu Hội nghị quốc tế lần thứ 2 về Sáng kiến máy tính ảo Bắc Carolina, Hoa Kỳ, trang 1-10, 16-17 tháng 5 năm 2008
1.3.5 Google Apps cho dạy học trực tuyến
Trường Đại học Sư phạm kỹ thuật Thành phố HCM đã thành lập Trung tâm dạy học số, ứng dụng Google Apps cho dạy học trực tuyến, với Google Classroom làm công cụ quản lý lớp học trực tuyến tại địa chỉ
http://dlc.hcmute.edu.vn/ArticleId/884588af-1ebb-4898-92a4-c3bd44d1f915/google-apps-cho-day-hoc-truc-tuyen
1.4 Mô hình kiến trúc điện toán đám mây trong giáo dục
1.4.1 Lý do phải xây dựng hệ thống giáo dục trên nền tảng điện toán đám mây
Năm yếu tố liên quan được hiển thị trong hình 4 để hỗ trợ chuyển đổi giáo dục (education transformation) thành công trên toàn thế giới là :
- Policy (chính sách)
Trang 19- Curriculum & Assessment (chương trình giảng dạy)
- Professional Development (phát triển nghề )
- Information Communications Technology (ICT)
- Research & Evaluation (nghiên cứu & đánh giá)
Năm yếu tố này giúp tạo ra những cải thiện bền vững trong giáo dục - giúp sinh viên cơ hội tốt nhất có thể để phát triển toàn diện trong nền kinh tế toàn cầu
Hình 4: Năm thành phần biến đổi Giáo dục Điện toán đám mây sẽ hỗ trợ tốt thực hiện 5 yếu tố trên để hệ thống giáo dục thế giới chuyển sang giáo dục điện toán đám mây vì l do sau :
1 Phần mềm đám mây dễ sử dụng
Hầu hết các nhà cung cấp đảm bảo rằng phần mềm đám mây mới sẽ giúp khách hàng có thể sử dụng được ngay mà không cần phải nghiên cứu tìm hiểu nhiều Điều này có nghĩa là khách hàng không mất thời gian học tập các thủ thuật phần mềm mới và có thể tập trung vào việc sử dụng phần mềm ngay
2 Nhanh chóng sử dụng ngay
Các ứng dụng dựa trên sản phẩm đám mây được thiết lập rất nhanh Để truy cập vào các ứng dụng như vậy, khách hàng cần phải đăng k để có được một tài khoản và có thể làm việc với nó trong một vài phút
Trang 203 Sinh viên cộng tác tốt hơn
Các chương trình điện toán đám mây tạo điều kiện thuận lợi để chia sẻ tập tin với nhiều tác giả Các sinh viên có thể dễ dàng trao đổi các tập tin với nhau và mời các đồng nghiệp của họ làm việc cùng một tài liệu trên mây
4 Mở rộng chương trình giảng dạy ở bất cứ đâu và bất cứ lúc nào
Các tập tin học tập và phần mềm được lưu trữ trên internet, có nghĩa là họ luôn luôn có sẵn cho người học bất cứ lúc nào, ngày cũng như đêm Điều này mang lại cho người học quyền lựa chọn là khi nào họ nghiên cứu và giáo viên có thể làm việc hiệu quả tại nhà giống như khi họ làm việc ở trường
5 Đầu tư tối thiểu cho các nguồn lực
Không cần đầu tư phần cứng và cơ sở giáo dục không phải cài đặt phần mềm trên máy tính của mình Kết quả là các tổ chức giáo dục có thể giảm thời gian và tiền bạc
8 Lưu trữ dữ liệu rẻ
Điện toán đám mây cho phép cơ sở giáo dục tránh được chi phí do nhà cung cấp dịch vụ đã giúp cơ sở giáo dục lưu trữ dữ liệu trên máy chủ đám mây
9 Bảo mật và đáng tin cậy
Trong các hệ thống giáo dục cần giải pháp bảo mật cho các tập tin tải lên mạng và quản l thông qua các đám mây Dữ liệu được bảo mật với các tùy chọn sao cho truy cập nhanh chóng dễ dàng, tập tin cần được sao lưu hàng đêm Cơ sở giáo dục có thể lấy lại tất cả các file của mình trên đám mây trong trường hợp có sự thay đổi nhà cung cấp hoặc để đưa dữ liệu về máy riêng Nhà cung cấp có thể dùng
“kho” lưu trữ phụ trên nhiều thiết bị để lưu trữ các tập tin của khách hàng Mức độ
Trang 21bảo mật dữ liệu phải lớn hơn khi thực hiện lưu trữ theo phương pháp truyền thống
10 Hệ cộng tác
Điện toán đám mây cho phép cộng tác giữa những người sử dụng để tăng cường và mở rộng quá trình học tập Học sinh rèn luyện và phát triển các kỹ năng hợp tác an toàn trong một hệ thống truyền thông trực tuyến được tích hợp vào máy tính để bàn Phương tiện Chat đã có sẵn trên mọi thiết bị, cho phép người dùng kết nối trong thời gian thực Quản trị viên có thể cho phép trao đổi giữa học sinh-sinh viên, giáo viên-giáo viên, học sinh-giáo viên, hoặc một nhóm người Video chat cho phép chương trình phát theo kiểu one-to-one hoặc one-to-many, với màn hình chia sẻ, bảng trắng tương tác, và công cụ viết hỗ trợ dạy kèm trực tuyến
Tóm lại, điện toán đám mây về cơ bản là phương pháp để cơ sở giáo dục hoạt động hiệu quả mà không tốn kém nhiều so với giáo dục truyền thống Hệ thống giáo dục trên nền tảng điện toán đám mây thực chất là giáo dục như một dịch vụ EaaS (Education as a Service) Các phần mềm và nền tảng trong giáo dục được tạo
ra tùy thuộc vào nhu cầu của cơ sở giáo dục EaaS cung cấp những phần mềm tiên tiến, giúp sinh viên, các nhà nghiên cứu, giảng viên tại các trường học khai thác sử dụng Theo quan điểm của người sử dụng, đám mây có thể cung cấp các dịch vụ có sẵn cho người sử dụng cho dù người dùng không biết nguồn gốc dịch vụ Eaas cung cấp một môi trường giáo dục ảo hóa làm dịch vụ
1.4.2 Mô hình kiến trúc điện toán đám mây trong giáo dục
Hình 5: Kiến trúc điện toán đám mây trong giáo dục
Trang 22Chú thích trên hình vẽ: Researcher: nghiên cứu viên; Processer: xử lý; Software : phần mềm; Infrastructure : hạ tầng ; Private cloud : đám mây riêng ; Educational cloud : đám mây giáo dục
Thiết lập kiến trúc đám mây riêng cho một cơ sở giáo dục nào tuỳ thuộc vào mục đích sử dụng và các nguồn tài nguyên hiện có của cơ sở giáo dục đó Nguồn tài nguyên hiện có trong cơ sở giáo dục có thể được ảo hóa để cung cấp một cách linh hoạt các dịch vụ trừu tượng như IaaS, PaaS Hình 5a cho thấy kiến trúc của đám mây giáo dục Cơ sở giáo dục có thể xây dựng các đám mây riêng trên hạ tầng tài nguyên hiện có Sau đó các trường học hợp tác để xây dựng một đám mây lai nhằm kết hợp tài nguyên với nhau (hình 5b) Vì thế các nguồn tài nguyên được kết hợp ngày càng gia tăng, phong phú, dễ dàng linh hoạt xây dựng
và hỗ trợ điện toán đám mây cho các ứng dụng trong giáo dục Trong trường hợp thứ nhất (hình 5a) sử dụng mạng cục bộ (LAN) để truy cập vào dịch vụ đám mây, trường hợp hai (hình 5b) thường sử dụng mạng công cộng (Internet) để truy cập vào dịch vụ đám mây Trong đám mây giáo dục, các nguồn tài nguyên cần thiết cho hỗ trợ điện toán đám mây cũng có thể được phân phối thông qua các trường hoặc các tổ chức khác nhau
Mỗi đám mây riêng được xây dựng sẽ giúp cơ sở giáo dục xác định các dịch
vụ do mình được cung cấp - “thỏa thuận mức dịch vụ” Vì vậy, “thỏa thuận mức dịch vụ” là một trong những sở cứ đảm bảo người sử dụng điện toán đám mây giáo dục gắn kết với các dịch vụ được cung cấp từ các đám mây và chuẩn hóa các dịch vụ này ngay ở giai đoạn ban đầu “Thỏa thuận mức dịch vụ” giúp xác định nhu cầu của người sử dụng, đơn giản hoá vấn đề phức tạp, mở đường giải quyết các tranh chấp của người sử dụng dịch vụ đám mây
Các nguồn tài nguyên, dữ liệu của các cơ sở giáo dục có thể ảo hóa để giải quyết bài toán sử dụng tài nguyên sẵn có sao cho hiệu quả hơn Nhờ ảo hóa, một máy chủ có thể tạo ra nhiều máy ảo được sử dụng như máy chuẩn Thực hiện nguồn mở không chỉ cung cấp cho người dùng sự linh hoạt để thử nghiệm với các
Trang 23công nghệ cao cấp hiện có, mà còn cung cấp cơ hội để điều chỉnh các nhu cầu cụ thể của người sử dụng
Kết luận chương 1
Kiến trúc ĐTĐM rất phức tạp, vì vậy trong chương I, luận văn chủ yếu trình bày những khái niệm cơ bản nhất của kiến trúc ĐTĐM Sau đó tập trung nghiên cứu kiến trúc mô hình giáo dục là dịch vụ (EaaS) và mô hình ĐTĐM trong giáo dục Khi triển khai ĐTĐM trong lĩnh vực giáo dục, các tổ chức giáo dục (trường học, trường trung cấp, trường cao đẳng hoặc đại học) có nhiều thuận lợi : Học sinh/Giáo viên sẽ có thông tin liên lạc nhanh chóng và hiệu quả với bất cứ lúc nào truy cập bất
cứ nơi nào
Trong chương tiếp theo tác giả chỉ giới hạn nghiên cứu và ứng dụng PaaS, mà
cụ thể nghiên cứu công cụ Google App Engine và ứng dụng trong chia sẻ thông tin
Trang 24CHƯƠNG 2: CÔNG NGHỆ APPENGINE CỦA GOOGLE
Chương 1 đã giới thiệu Platform as a Service (PaaS) : nền tảng như một dịch
vụ, với 2 công cụ là : Microsoft Azure & Google App Engine Trong chương này
sẽ tập trung trình bày công cụ google appengine, các ứng dụng, cách up download, cách thức giao tiếp của google appEngine
2.1 Tổng quan về Google App Engine
Trong số các dịch vụ nền tảng của PaaS thì Google App Engine được đánh giá
là dịch vụ có tính ưu việt nhất App Engine dễ xây dựng và có thể mở rộng quy mô,
mở rộng lưu lượng truy cập cũng như lưu trữ dữ liệu theo nhu cầu của người sử dụng Người sử dụng App Engine có thể duy trì hoạt động mà không cần có máy chủ
Google App Engine, gọi tắt là GAE (3 chữ cái G-A- E của Google App Engine) có chức năng truy cập trên các trang web, xử l dữ liệu, xử l hình ảnh, cũng có thể cho phép nhiều cá nhân sử dụng cùng một thời gian
Ưu điểm của GAE :
- Khi cần khai thác dữ liệu, người sử dụng chỉ nộp tiền cho những khoản mà
họ yêu cầu cần truy cập, đơn vị tính dịch vụ là gigabyte và họ không phải chi phí tiền khi muốn đổi hình thức trang web
- Người lập lập trình viên được sử dụng khoảng 500 MB miễn phí để lưu trữ
dữ liệu
Hình 6, trình bày kiến trúc GAE khi trao đổi dữ liệu giữa các ứng dụng nhưng bảo đảm an toàn thông tin của nhau Người dùng có thể sử dụng các dịch vụ URLFetch của Google Do không thể mở cổng (port) một cách trực tiếp nên người
sử dụng phải khai thác dịch vụ URLFetch này
Có thể so sánh GAE với một hệ thống làm lạnh trong lớp học có nhiều sinh viên Vì nhiều l do nào đó, sinh viên không thể điều khiển để thay đổi nhiệt độ phòng học, khi đó họ sẽ gửi đến trung tâm quản l hệ thống lạnh yêu cầu điều chỉnh nhiệt độ phòng học Tức là sử dụng các dịch vụ của GAE như URLFetch,
Trang 25Bigtable query, Memcache, mail, XMPP, và các dịch vụ khác Đó chính là bản chất những gì đang xảy ra trong App Engine
Hình 6 Sơ đồ kiến trúc hoạt động của GAE
2.2 Các chức năng của Google App Engine
2.2.1 Kho dữ liệu (Datastore)
Các ứng dụng của web phải có chỗ để lưu giữ thông tin trong quá trình
xử lý yêu cầu từ client và nhận thông tin cho những lần yêu cầu khác Kho dữ liệu của GAE có thể lưu trữ số lượng lớn các ứng dụng web Ứng dụng này sẽ tạo ra những thực thể (entity) và dữ liệu của nó được lưu giữ trong mỗi thực thể
GAE cung cấp 2 sự lựa chọn về kho dữ liệu :
- Kho dữ liệu Master/Slave : Ghi lại dữ liệu một cách bất đồng bộ đối với
trung tâm dữ liệu vật l Ở mọi thời điểm nào cũng chỉ có 1 trung tâm dữ liệu là chủ (Master)
- Kho dữ liệu High Replication : Cung cấp tính sẵn sàng cho việc đọc và ghi
dữ liệu rất cao, gấp 3 lần so với tùy chọn Master/Slave
Trang 262.2.2 Môi trường thực hiện (runtime environment)
Khi có yêu cầu truy cập qua HTTP, nhờ vào tên miền, tên miền con của <tên
người dùng>.appspot.com hoặc một tên miền riêng đã được đăng kí và thiết lập,
App Engine dễ dàng xác định được ứng dụng đó Sau đó App Engine lựa chọn một máy chủ từ nhiều máy chủ để xử l các yêu cầu đó Tiếp theo App Engine gửi các yêu cầu đã nhận được để đưa ra ứng dụng phù hợp Các kết quả ứng dụng này
sẽ gửi dữ liệu trả về cho App Engine và thông qua trình duyệt web, App Engine sẽ nhận dữ liệu phản hồi từ các ứng dụng để gửi lại cho người dùng
GAE có hai môi trường thực thi ứng dụng : Java và Python, còn môi trường chúng ta chọn sẽ phụ thuộc vào ngôn ngữ và những công nghệ liên quan để phát triển ứng dụng Khi Java thực hiện các ứng dụng viết cho JVM6, các ứng dụng này
sẽ được nâng cấp theo ngôn ngữ lập trình Java hoặc các ngôn ngữ nào đó để biên dịch và chạy trên JVM Còn Python sẽ thực hiện các ứng dụng được viết bởi ngôn ngữ Python bản 2.5
Cả Java và Python đều hoạt động theo mô hình chung Đó là khi có một yêu cầu cần gửi đến ứng dụng trên server, các ứng dụng đó sẽ ngay lập tức thông báo cho bộ phận xử l yêu cầu và gửi kết quả cho khách hàng
2.2.3 Các file server tĩnh (static file servers)
Tất cả các website đều bao gồm các tài nguyên chuyển đến các trình duyệt và trong suốt hoạt động của site nó không thay đổi Ví dụ như các đoạn mã Javascript hoạt động trên trình duyệt, và các file HTML tĩnh Do khi gửi các file này không yêu cầu đến code của ứng dụng, vì sẽ làm giảm hiệu quả của các server ứng dụng
Bù lại, App Engine sẽ cung cấp các server để chuyên tâm trao đổi các file tĩnh này Các server này sẽ tối ưu hóa đối với các kiến trúc bên trong cũng như hạ tầng mạng, đồng thời xử l các yêu cầu cho các tài nguyên tĩnh
Khi upload các file tĩnh cùng với code ứng dụng, có thể cấu hình vài cách hiển thị nhất định cho các file này, bao gồm các URL cho file tĩnh, loại nội dung, và các hướng dẫn cho trình duyệt để lưu các bản sao file này trong bộ nhớ cache nhằm tăng tốc cho trang Web và giảm lưu lượng
Trang 272.2.4 Các công cụ lập trình (programming tools)
Để phát triển ứng dụng App Engine , Google cung cấp một số tool miễn phí bằng ngôn ngữ Java và Python Sử dụng website Google có thể download software development kit (SDK) và hệ điều hành Khi sử dụng Java, người sử dụng có thể download SDK trong form plug-in cho Eclipse Sử dụng Windows (hoặc sử dụng Mac OS X) để tải SDK cho Python
Mỗi một SDK đều có server web tại máy cá nhân, làm môi trường thực thi, làm kho dữ liệu và các service Các Server này có thể biết được những khác biệt của file source và load lại nếu thấy cần thiết Ngoài ra SDK cũng bao gồm các công cụ khác để phục vụ quá trình tương tác với các ứng dụng hoạt động trên App Engine, ví dụ upload code lên App Engine, hay sử dụng tool để download các file log từ ứng dụng đang chạy, hoặc có thể quản l danh mục ứng dụng
Có thể dùng Eclipse để phát triển Python, một nhánh mở rộng của Eclipse, bao gồm bộ debugger cho Python Do vậy khi dùng Eclipse, có thể sử dụng server cho Java hoặc đặt các breakpoint trong code
SDK Python và Java gồm nhiều chức năng, SDK Python có công cụ dùng để
xử l dữ liệu, upload dữ liệu từ file text, hoặc sao lưu dữ liệu SDK cũng có command-line shell của Python cho việc test, kiểm lỗi và thao tác với dữ liệu
2.2.5 Tài khoản Google (google accounts)
Google Mail, Google Docs và Google Calendar các chức năng của App Engine tích hợp trong các tài khoản của Google Khi người sử dụng đã có tài khoản trên Google, họ có thể đăng nhập vào ứng dụng mà không cần tạo tài khoản riêng, hoặc cũng có thể xây dựng hệ thống tài khoản riêng, hoặc sử dụng một provider OpenID
2.3 Các ứng dụng của Google app engine
2.3.1 Mail
Có thể thay mặt người quản trị hoặc những người có tài khoản Google để sử dụng App Engine nhằm gửi và nhận mail từ những địa chỉ khác nhau Khi ứng dụng gửi mail nhờ vào dịch vụ Mail của Google, App Engine sẽ tạo ra 1 request
Trang 28HTTP thông qua phương thức POST
Đối với mail không đồng bộ, các API hỗ trợ gửi mail chỉ đơn thuần là đưa những tin nhắn đến dịch vụ Mail, dịch vụ Mail sẽ xếp các tin nhắn đó vào 1 hàng đợi sau đó gửi nó đi nếu như mail server ở bên nhận đang gặp sự cố
Địa chỉ của người gửi (trường “From” trong mail) thuộc vào 1 trong những loại sau:
- Email thỏa mãn công thức sau: string@APP-ID.appspotmail.com
- Email của người quản trị ứng dụng có thể thêm người quản trị bằng cách vào màn hình quản trị để mời
- Email của cá nhân nào đó hiện tại đang đăng nhập vào Google
Email được gửi đến ứng dụng bằng những request theo giao thức HTTP Để
xử lý những mail này, phải khai báo đoạn script để xử lý trong file cấu hình của ứng dụng và sau đó là hiện thực phần script đó
2.3.2 Memcache
Memcache là công cụ lưu các dữ liệu tạm thời, có tốc độ đọc và ghi nhanh App Engine hỗ trợ dịch vụ Memcache khi sử dụng web, sử dụng 1 bộ nhớ để cache lại dữ liệu trước khi phân tán Một trong những cách để sử dụng Memcache là
để tăng tốc độ truy vấn CSDL Khi nhiều request đồng thời thực hiện 1 câu truy vấn thì ta có thể cache lại kết quả, còn các request sau này chỉ cần xem trong cache, nếu không có dữ liệu thì truy vấn xuống CSDL
Do dữ liệu trong Memcache chưa được lưu trữ xuống CSDL, nên rất dễ bị mất, vì vậy dùng Memcache có thể lưu dữ liệu tạm thời Khi sử dụng Memcache,
dữ liệu không ổn định, có thể bị mất theo thời gian Do đó, thông tin trong Memcache thường được copy xuống CSDL Giá trị được lưu trong cache có dung lượng tối đa là 1megabyte Không có độ dài giới hạn cho key, tuy nhiên nếu key có
độ dài lớn hơn 250 byte thì sẽ được lưu bản hash 250 byte
2.3.3 API của App engine
Memcache trong API của App Engine, khi hoạt động cần import thư viện
import com.google.appengine.api.memcache.*;
Trang 29Muốn tương tác với Memcache, phải tạo ra đối tượng MemcacheService như sau:
MemcacheService memcache =
MemcacheServiceFactory.getMemcacheService(); Muốn Memcache hoạt động có hiệu quả, phải nghiên cứu về đối tượng MemcacheService này Có thể lưu trữ các đối tượng memcache với tên khác nhau
để tránh tình trạng xung đột khóa Khi có hai lĩnh vực cần lưu trữ là Tin tức và Giải trí, có thể lưu với hai không gian tên khác nhau và khi đó các key ở không gian tên TinTuc hoàn toàn có thể trùng với key ở không gian tên GiaiTri mà không hề xảy ra xung đột
2.3.4 URL FETCH
App Engine có thể tương tác hay truy cập những nguồn tài nguyên khác trên web bằng địa chỉ URL Cũng có thể sử dụng URL Fetch Service có thể tương tác với các ứng dụng khác thông qua giao thức HTTP và HTTPS Có thể lấy dữ liệu từ địa chỉ URL dạng HTTP (http:// ) hay HTTPS (https:// )
Khi lấy dữ liệu từ địa chỉ URL, có thể dùng các cổng: 80 – 90, 440 – 450,
1024 – 65535 Nếu trong địa chỉ URL không chỉ định số cổng thì dạng URL http:// sẽ sử dụng cổng 80, còn dạng https:// sẽ dùng cổng 443
URL Fetch Service hỗ trợ mọi cách thức lấy dữ liệu trong HTTP như: GET, POST, PUT, DELETE, HEAD; có thể bao gồm header và payload (phần thân của HTTP request)
Không được để ứng dụng lấy dữ liệu từ URL khi đang làm việc vì sẽ gây ra tình trạng lặp vô tận Có thể đặt thời gian lấy dữ liệu: mặc định là 5 giây và tối đa là
Trang 30Khi sử dụng tường lửa, có thể dử dụng Google Secure Data Connector (SDC) Thông tin chi tiết về SDC ( http://code.google.com/securedataconnector/)
2.3.5 Dịch vụ của datastore với môi trường thực thi Google App Engine
Dịch vụ chính là mối quan hệ giữa datastore với môi trường thực thi GAE bao gồm một số các dịch vụ hữu ích cho các ứng dụng web
Dịch vụ memcache là dịch vụ lưu trữ theo khóa - giá trị Thuận lợi chính của dịch vụ này trên datastore là tốc độ nhanh, so với việc lưu trữ và lấy dữ liệu một cách bình thường trên datastore Memcache lưu trữ dữ liệu trên bộ nhớ thay vì trên
ổ đĩa để tăng tốc độ truy cập Nó cũng phân tán như datastore tuy nhiên không lưu trữ, vì thế nếu mất điện thì dữ liệu trên memcache cũng mất Và nó cũng có nhiều giới hạn sử dụng hơn datastore Việc sử dụng memcache tốt nhất là lưu lại các kết quả của các câu query hay các tính toán trước đó Ứng dụng sẽ kiểm tra trong memcache, nếu không có dữ liệu thì sẽ tiến hành query trên datastore
Ứng dụng App Engine có thể truy cập các tài nguyên web khác nhờ vào dịch
vụ URL Fetch Dịch vụ này tạo ra các yêu cầu theo dạng HTTP gửi đến các server khác trên Internet như là việc tương tác với các web service khác Vì khi ta truy cập đến server khác thời gian sẽ lâu nên URL Fetch hỗ trợ chạy ngầm bên dưới trong khi xử l các yêu cầu khác
2.4 Cách thức đưa dịch vụ lên Google AppEngine
Cách thức đưa dịch vụ lên Google AppEngine được trình bày mở rộng dựa theo tài liệu của tác giả Bình Nguyễn tại địa chỉ:
http://igoo.vn /hướng-dẫn-sử-dung-upload-lên-google-app-engine.html
Cách upload file, đồng bộ hóa dữ liệu từ máy lên host Google theo các bước sau:
Bước 1: Đăng ký Google App Engine theo trình tự
Truy cập https://appengine.google.com/start và đăng nhập bằng tài khoản
Gmail của người dùng dạng tenban.appspot.com để được sử dụng hosting chuyên
nghiệm miễn phí Google Sau đó nhập số điện thoại của người dùng để Google gửi
mã xác nhận
Trang 31Bước 2: Cài đặt Python 2.7.2 & Google App Engine SDK for Python
Tại địa chỉ http://www.python.org/download , chọn phiên bản phù hợp với hệ
điều hành, sau đó Download bản đầu tiên (chính thức), và cài đặt Python 2.7.2
Tiếp theo địa chỉ http://code.google.com/appengine/downloads.html chọn
phiên bản phù hợp với hệ điều hành, sau đó Download và cài đặt Google App Engine SDK for Python
Bước 3: Chạy ứng dụng Google App Engine Launcher
Chọn Edit -> chọn Preferences -> kiểm tra hoặc thêm đường dẫn đến ứng dụng Python và Google App Engine Kiểm tra thông số cài đặt
Tạo project mới để đồng bộ dữ liệu của người dùng
Chạy ứng dụng Google App Engine Launcher > chọn File > chọn Create New Application ->nhập domain của người dùng (tenban.appspot.com chỉ nhập phần tenban) vào mục Application Name -> chọn Browser để tạo mới ứng dụng (ví dụ chọ ổ D:\)
Trang 32Bước 4: Vào ổ (C|D|E người dùng vừa chọn) tìm tên thư mục người dùng vừa tạo, ví dụ: D:\\igooblog -> tiếp đó tạo mới thư mục download ( có thể tùy chọn đặt tên, và thêm số lượng thư mục tùy ý) -> dùng notepad mở và sửa file app.yaml
thay thế bằng nội dung dưới đây:
Trang 33Hình 2.4.3
Bước 5: Đồng bộ và kết thúc, dữ liệu trên domain (tenban.appspot.com) sẽ tương đương với dữ liệu trong thư mục tenban trong ổ (D|C|E người sử dụng vừa chọn) Đường dẫn tương đương sẽ là tenban.appspot.com/download
Chạy ứng dụng Google App Engine Launcher -> chọn ứng dụng của người dùng -> chọn icon Deploy -> nhập gmail và mật khẩu của người dùng, sau đó kết
thúc đồng bộ
Trang 34
Kết quả: hoàn tất việc đồng bộ, tiếp theo ần copy các file và thư mục download
rồi đồng bộ Người sử dụng có thể thêm thư mục khác vào trong thư mục ứng
dụng ví dụ: css, js, images với chú sửa file app.yaml và thêm đoạn handlers
tương ứng
Trang 35Kết luận chương 2
Chương 2 trình bày tổng quan Google App Engine, kiến trúc Google Apps Engine, các chức năng, ứng dụng và cách đưa dịch vụ lên Google Apps Engine Mục đích của chương này nhằm giúp cho lập trình viên hiểu được tiện ích và hạ tầng Google Apps Engine Platform để xây dựng các ứng dụng trên nền web, làm
cơ sở để xây dựng một hệ thống trao đổi dữ liệu sẽ được trình bày ở chương 3
Trang 36CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ, XÂY DỰNG HỆ THỐNG
CHIA SẺ FILE 3.1 Mô tả
Xây dựng hệ thống chia sẻ file cho Giảng viên và sinh viên trong trường đại học, cao
Hệ thống cho phép người dùng (bao gồm cả giảng viên lẫn sinh viên) có thể tìm kiếm, download tài liệu, upload tài liệu, bài tập nộp, nâng cao hơn so với hiện tại - nộp bài qua email khiến cho hòm thư của giáo viên chứa quá nhiều thư tại một thời điểm
Nói cách khác, chức năng chính của hệ thống là phục vụ việc chia sẻ file dành cho giảng viên và sinh viên
Giảng viên cần upload các tài liệu môn học lên hệ thống để cung cấp cho một nhóm sinh viên nào đó (như lớp sinh viên…) Hệ thống cần giúp giảng viên thu các bài tập của sinh viên liên quan tới môn học, cụ thể là xuất 1 báo cáo thống kê số lượng sinh viên nộp bài, nộp muộn hay chưa nộp, nộp có đúng hạn, đúng dạng tiêu
Từ mô tả trên ta liệt kê ra hệ thống có 4 actor sau đây:
- Admin: Yêu cầu quản l tài khoản giảng viên và sinh viên
- Giảng viên:
YC1: gửi tài liệu học tập cho sinh viên
YC2: quản lý việc thu bài tập của sinh viên
YC3: xem báo cáo về tình hình nộp bài của lớp mình dạy
YC4: upload / download tài liệu chia sẻ chung
- Sinh viên:
YC1: download giáo trình, tài liệu học tập
Trang 37 YC2: uploadm gửi bài tập cho giảng viên
YC3: upload / download tài liệu chia sẻ chung
- Khách:
YC: download tài liệu chia sẻ chung
3.2.2 Đặc tả các ca sử dụng (Usecases)
3.2.2.1 u us se:
3.2.2.2 Usecase 1: Gửi file cho lớp:
act Business Process Model
TrungFile
Trang 38Gửi file cho lớp
1 Mô tả tóm tắt Giảng viên gửi file tài liệu, bài giảng cho lớp của
mình đang dạy
3 Điều kiện đầu tiên - Người dùng đang đăng nhập có vai trò là Giảng
- Người dùng chọn lớp mà mình đang dạy
- Người dùng nhập vào file cần upload thông qua form
có quyền truy suất (có thể do đang bị ghi)
6 Key scenarios Không có bất kỳ phản hồi nào từ hệ thống
7 Post conditions -Trường hợp thực hiện thành công: Hệ thống
thông báo nguyên nhân không thành công cho người dùng
-Trường hợp thực hiện thất bại: Hệ thống thông báo thông tin cho người dùng biết đồng thời gửi thông báo tới toàn bộ Sinh viên trong lớp biết
8 Special requirements
(yêu cầu riêng)
- Thông tin người dùng nhập vào phải hợp lệ
- Hệ thống giao tiếp mạng phải còn hoạt động
9 Extention Use Cases No
10 Inclusion Use Cases No