Tìm hiểu điện toán đám mây, xây dựng bộ công cụ văn phòng
BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG ĐỀ TÀI: TÌM HIỂU ĐIỆN TOÁN ĐÁM MÂY, XÂY DỰNG BỘ CÔNG CỤ VĂN PHÒNG Giáo viên hướng dẫn: PGS.TS Lê Tiến Thường Học viên thực : Đinh Thị Hồng Nguyên Lê Anh Vũ Lớp : Kỹ thuật điện tử - K23 Đà Nẵng, tháng 01 năm 2012 Tìm hiểu điện toán đám mây, xây dựng công cụ văn phòng Thường PGS.TS.Lê Tiến MỤC LỤC1 CHƯƠNG 1: MỞ ĐẦU – TỔNG QUAN VỀ ĐỀ TÀI .1 1.1 Đặt vấn đề 1.2 Mục đích ý nghĩa 1.3 Các nhiệm vụ nghiên cứu thực .2 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .1 Khái niệm điện toán đám mây .1 1.1 Các tính chất điện toán đám mây .1 1.1.1 Tính tự phục vụ theo nhu cầu 1.1.2 Tính truy suất diện rộng 1.1.3 Khả dùng chung tài nguyên 1.1.4 Khả co dãn .3 1.1.5 Khả điều tiết dịch vụ 1.2 Các đặc điểm điện toán đám mây 1.3 Các vấn đề giải điện toán đám mây ưu nhược điểm điện toán đám mây 1.3.1 Các vấn đề giải điện toán đám mây 1.3.5 Các ưu, nhược điểm điện toán đám mây 1.4 Cấu trúc dịch vụ điện toán đám mây 1.4.1 Cấu trúc đám mây điện toán .8 1.4.2 Các dịch vụ triển khai đám mây điện toán 1.5 Các mô hình triển khai cloud Computing .14 1.5.1 Các đám mây công cộng (Public cloud) .14 1.5.2 Các đám mây riêng (Private cloud) 15 1.5.3 Các đám mây lai (Hybrid cloud ) 17 1.5.4 Các đám mây cộng đồng (Community cloud) 18 1.6 So sánh mô hình Cloud Computing với mô hình Client – Server 19 1.7 So sánh Cloud Computing với Grids Computing 20 1.7.1 Mô hình thương mại (Business Model) 20 1.7.2 Kiến trúc (Architecture) 21 1.7.3 Quản lý tài nguyên (Resource Management) .23 1.7.11 Mô hình lập trình (Programming Model) 25 1.7.12 Mô hình ứng dụng (Application Model) 26 1.7.13 Mô hình bảo mật (Security Model) 26 CHƯƠNG 3: MỘT SỐ GIẢI PHÁP VÀ NỀN TẢNG ĐÁM MÂY HIỆN TẠI 1 Amazon Web Services Amazon Elastic Compute Cloud (EC2) .2 Amazon Simple DB Amazon Simple Storage Service (S3): .3 Amazon Cloud Font: Page Đ.T.Hồng Nguyên + L.AnhVũ Tìm hiểu điện toán đám mây, xây dựng công cụ văn phòng Thường PGS.TS.Lê Tiến Amazon Simple Queue Service: Google App Engine .5 7.1 Giới thiệu: 7.2 Các thành phần Google App Engine: 7.3 Một số Data API Google App .7 10.1 Một số điểm lưu ý xây dựng ứng dụng Google App Engine10 10.2 Quy trình phát triển ứng dụng Google App Engine .11 10.3 Demo ứng dụng Google App Engine .13 CHƯƠNG 4: PHÁT TRIỂN ỨNG DỤNG VĂN PHÒNG TRÊN WEB .19 13.1 Padevents.js : Ghi lại kiện xảy “Pad” : 25 13.2 Model.js: Các phương thức cho phép truy cập đến đối tượng “pad”, kiểm tra tồn pad tạo pad chưa có sẵn 26 13.3 Chatarchive.js : Xử lý thao tác client chat với 26 13.4 Collab_server.js: Bao gồm phương thức xác thực User (thông qua userId), lấy thông tin phiên (pad revision), áp dụng thay đổi user tạo pad, cập nhật thay đổi user tạo tới tất client sử dụng pad.27 13.5 Pad_control.js:Kiểm soát thông tin tác động pad , trả default pad text : đoạn văn xuất tạo pad, cho phép gán thông tin tên user , màu chữ ứng với user, render pad, render saverevision… 29 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 31 [1] , [2] Jacque Arsac Nhập môn lập trình Nguyên : Premières lecons de programmation Trung tâm hệ thống Thông tin ISC, Hà nội 1991, 241 tr .1 [3] Doug Cooper Standard Pascal User Reference Manual W.W.Norton & Company, 1983, 476 tr .1 [4] Jacque Courtin, Irène Kowaski Initiation l’algorithmique et aux structures de données Volume Dunord, Paris 1994, 397 tr [5] Phan Huy Khánh, Võ Trung Hùng Thiết kế sở liệu đa ngữ ngữ pháp tiếng Việt Tạp chí Khoa học Công nghệ, Số 36+37, 2002, tr19-24 [6] Detmoungkhoum Saly Xây dựng từ điển tin học Lào-Anh-Việ Báo cáo tốt nghiệp Thạc sĩ ngành CNTT, Đại học Đà Nẵng Khoá 2002-2005 [7] Nguyễn Như Ý Đại từ điển tiếng Việt Nhà Xuất Văn hoá-Thông tin 1999 [8] Trang web : http://www.informatik.uni-leipzig.de/~duc [9] .1 Page Đ.T.Hồng Nguyên + L.AnhVũ CHƯƠNG 1: MỞ ĐẦU – TỔNG QUAN VỀ ĐỀ TÀI 1.1 Đặt vấn đề Ngày nay, công ty, doanh nghiệp, việc quản lý tốt, hiệu liệu riêng công ty liệu khách hàng, đối tác toán ưu tiên hàng đầu không ngừng gây khó khăn cho họ Để quản lý nguồn liệu đó, ban đầu doanh nghiệp phải đầu tư, tính toán nhiều loại chi phí chi phí cho phần cứng, phần mềm, mạng, chi phí cho quản trị viên, chi phí bảo trì, sửa chữa, … Ngoài họ phải tính toán khả mở rộng, nâng cấp thiết bị; phải kiểm soát việc bảo mật liệu tính sẵn sàng cao liệu Từ toán điển vậy, thấy có nơi tin cậy giúp doanh nghiệp quản lý tốt nguồn liệu đó, doanh nghiệp không quan tâm đến sở hạ tầng, công nghệ mà tập trung vào công việc kinh doanh họ mang lại cho họ hiệu lợi nhuận ngày cao Thuật ngữ “cloud computing” đời bắt nguồn từ hoàn cảnh Thuật ngữ “cloud computing” bắt nguồn từ ý tưởng đưa tất thứ liệu, phần mềm, tính toán, … lên mạng Internet Chúng ta không trông thấy máy PC, máy chủ riêng doanh nghiệp để lưu trữ liệu, phần mềm mà số “máy chủ ảo” tập trung mạng Các “máy chủ ảo” cung cấp dịch vụ giúp cho doanh nghiệp quản lý liệu dễ dàng hơn, họ trả chi phí cho lượng sử dụng dịch vụ họ, mà không cần phải đầu tư nhiều vào sở hạ tầng quan tâm nhiều đến công nghệ Xu hướng giúp nhiều cho công ty, doanh nghiệp vừa nhỏ mà sở hạ tầng mạng, máy chủ để lưu trữ, quản lý liệu tốt Xét tình hình tại, thời gian vừa qua, hãng công nghệ lớn giới Microsoft, Google, IBM, Amazon, Sun, liên tục giới thiệu tung giải pháp, công nghệ tảng liên quan tới lĩnh vực ảo hóa điện toán đám mây Tiêu biểu Google ứng dụng đám mây vốn từ trước đến vốn quen thuộc hãng Gmail, Google Docs, thời gian gần đây, hãng liên tục đưa thị trường sản phẩm phần cứng phần mềm chạy hệ điều hành xem tương lai công nghiệp điện toán hệ điều hành đám mây Chrome OS Microsoft không cạnh hãng vừa giới thiệu sản phẩm hệ điều hành đám mây Windows Azure Bên cạnh nhiều hãng khác tham gia vào lĩnh vực mẻ Tất điều cho thấy, điện toán đám mây xu hướng tất yếu phát triển công nghệ thông tin công cụ hiệu giúp cho Tên tác giả, LỚP XXX Tên đề tài cá nhân, doanh nghiệp khai thác hiểu hiệu ứng dụng CNTT môi trường cạnh tranh tương lai Trở lại với thực tiễn Việt Nam, Nnhững năm trở lại đây, người dùng quen thuộc khai thác công cụ dựa tảng đám mây, ví dụ dịch vụ thư điện tử tảng web (Google Mail, Yahoo Mail, Windows Live Mail, ) hay công cụ chia sẻ video (Youtube), ứng dụng thao tác với hình ảnh web (Google Picasa, Flickr, Photoshop Express,…), công cụ xử lý lưu trữ văn online (Google Docs, Yoho, ), hay dịch vụ đồng hóa file mạng (ASUS Webstore, Dropbox, ) chí nhiều hệ điều hành web đời số người dùng quan tâm đến công nghệ sử dụng Điều chứng tỏ công nghệ điện toán đám mây chiếm vai trò quan trọng sống hàng ngày người dân Việt Nam Và đặc biệt, phủ nhà nước có kế hoạch, sách phát triển sử dụng điện toán đám mây phần phủ điện tử tương lai Thấy thực tiễn đó, kết hợp với kiến thức thu nhận thời gian vừa qua, nhóm chúng em mạnh dạnđã chọn thực nghiên cứu đề tài: “Tìm hiểu điện toán đám mây xây dựng công cụ văn phòng trực tuyến” 1.2 Mục đích ý nghĩa Mục tiêu đề tài nhằm giải nhiệm vụ sau: - Tìm hiểu mô hình hoạt động điện toán đám mây - Nghiên cứu, so sánh số tảng, giải pháp ảo hóa đám mây phổ biến Từ rút số kết luận thử xây dựng ứng dụng demo đơn giản chạy tảng chọn - Xây dựng công cụ văn phòng chạy web, cho phép nhiều người tham gia tương tác soạn thảo Sẵn sàng đưa lên đám mây 1.3 Các nhiệm vụ nghiên cứu thực Để thực mục đích trên, nhóm thực đề tài giải nhiệm vụ sau: - Nghiên cứu đưa mô hình nguyên tắc hoạt động đám mây - Nghiên cứu, phân tích tổng hợp số tảng giải pháp đóng mở hãng công nghệ lớn phổ biến điện toán đám mây rút kết luận - Xây dựng ứng dụng demo đơn giản, chạy tảng mở miễn phí để làm rõ hoạt động ứng dụng đám mây Tên đề tài - Nghiên cứu, xây dựng ứng dụng văn phòng thỏa mãn yêu cầu cho phép nhiều người tương tác lúc văn sẵn sàng đưa lên đám mây để chạy Các chương đề tài giải nhiệm vụ cụ thể Chương 2: Giới thiệu cách tổng quát công nghệ điện toán đám mây, công nghệ ảo hóa, mô hình nguyên tắc hoạt động đám mây điện toán Đồng thời phân biệt mô hình Cloud với mô hình Client – Server thường gặp điểm khác biệt điện toán đám mây điện toán lưới (tính toán song song) Chương 3: Nghiên cứu đưa so sánh số giải pháp tảng đám mây phổ biến Google, Amazone, Microsoft Từ so sánh đưa số kết luận xây dựng thử ứng dụng demo chạy đám mây Google để thấy rõ nguyên tắc hoạt động đám mây Chương 4: Trình bày xây dựng ứng dụng văn phòng web cho phép nhiều người tương tác lúc văn Chương 5: Đánh giá kết luận kết đạt đề phương hướng mở rộng phát triển đề tài, nhiệm vụ cần giải CHƯƠNG 2: CƠ SỞ LÝ THUYẾT Khái niệm điện toán đám mây Nói khái niệm ảo hóa (hay điện toán đám mây, tiếng Anh Cloud Computing) tồn nhiều định nghĩa Theo Wikipedia: “Điện toán đám mây (cloud computing) mô hình điện toán có khả co giãn (scalable) linh động tài nguyên thường ảo hóa cung cấp dịch vụ mạng Internet” Theo Gartner (http://www.buildingthecloud.co.uk/) : “Một mô hình điện toán nơi mà khả mở rộng linh hoạt công nghệ thông tin cung cấp dịch vụ cho nhiều khách hàng sử dụng công nghệ Internet” Theo Ian Foster: “Một mô hình điện toán phân tán có tính co giãn lớn mà hướng theo co giãn mặt kinh tế, nơi chứa sức mạnh tính toán, kho lưu trữ, tảng (platform) dịch vụ trực quan, ảo hóa co giãn linh động, phân phối theo nhu cầu cho khách hàng bên thông qua Internet” Tuy có nhiều định nghĩa vậy, tựu chung điện toán đám mây Cloud Computing hệ phân bố, cung cấp dạng tài nguyên ảo dạng dịch vụ cách linh động theo nhu cầu người dùng môi trường internet Hình 1: Mọi thứ tập trung vào đám mây 1.1 Các tính chất điện toán đám mây Điện toán đám mây nói chung dịch vụ giải pháp tảng chạy điện toán đám mây có tính chất sau: Tên tác giả, LỚP XXX Tên đề tài 1.1.1 Tính tự phục vụ theo nhu cầu Điện toán đám mây định nghĩa cách đơn giản sử dụng tài nguyên tính toán có khả thay đổi theo nhu cầu cung cấp giống dịch vụ từ bên với chi phí phải trả cho lần sử dụng Bạn truy cập đến tài nguyên tồn "đám mây (cloud)" thời điểm từ đâu thông qua hệ thống Internet Bạn quan tâm xem làm cách thứ trì phía đám mây Đám mây đánh giá cao sẵn sàng đáp ứng cho nhu cầu cần thiết ứng dụng bạn Điện toán đám mây gọi tính toán tiện ích tính toán lưới (grid computing) Điện toán đám mây mô hình dịch chuyển cách thức làm cung cấp kiến trúc khả mở rộng ứng dụng Trong khứ, công ty thành công thường dành thời gian quý báu nguồn lực xây dựng để xây dựng sở hạ tầng 1.1.2 Tính truy suất diện rộng Như trình bày trên, người sử dụng môi trường điện toán đám mây không cần thiết phải quan tâm đến tảng phía bên Mọi thứ xem suốt với người sử dụng họ truy cập vào tài nguyên đám mây phép vào lúc nào, nơi đâu phương tiện cho phép 1.1.3 Khả dùng chung tài nguyên Để hiểu rõ khả dùng chung tài nguyên đám mây ta quan sát hình 2, mô tảcấu trúc đơn giản đám mây Trong hình ta thấy, để xây dựng sở hạ tầng phục vụ cho đám mây, nhà cung cấp dịch vụ sử dụng nhiều thiết bị phần cứng khác nhau, tất sử dụng chung thống sở công nghệ ảo hóa (Virtual technology) để tạo kiến trúc ảo hóa (Virtual Infrastructure) sở xây dựng nên đám mây cung cấp dịch vụ Các kiến trúc phần cứng suốt người sủ dụng dịch vụ, tảng triển khai đám mây sủ dụng chung nguồn tài nguyên Tên đề tài Hình 2: Mô hình kiến trúc ảo hóa sử dụng để xây dựng đám mây 1.1.4 Khả co dãn - Trong hầu hết trường hợp cách tiếp cận tài nguyên mạng theo kiểu cũ (cấp “cứng” băng thông dung lượng sử dụng định server) phát sinh vấn đề sau: • Để lại lượng lớn tài nguyên tính toán không sử dụng làm tiêu tốn không gian trung tâm liệu lớn - • Bắt buộc phải trông giữ máy chủ • Gắn liền với chi phí lượng Với điện toán đám mây, máy tính dư thừa đưa vào sử dụng sinh lời cách bán cho khách hàng Sự chuyển đổi việc tính toán sở hạ tầng công nghệ thông tin vào tiện ích, có tác dụng trường hợp số mức độ cho phép Điều mang ý nghĩa nỗ lực - cạnh tranh dựa ý tưởng dựa tài nguyên tính toán Các tài nguyên ứng dụng bạn hệ thống công nghệ thông tin cần thiết (để đáp ứng nhu cầu ngày lớn cho lưu trữ, cho tài nguyên tính toán, cho hệ thống nhắn tin cho sở liệu) Bạn trả chi phí hạ tầng sở cho nhà cung cấp mà cung cấp giá dịch vụ tốt Đó ý tưởng đơn giản cách mạng tư không Tên đề tài phải hoàn toàn Điều đứng đầu xu hướng công nghệ đại môi trường điện toán đám mây Amazon đưa 1.1.5 Khả điều tiết dịch vụ Chính nhờ khả co giãn để cấp phát cách hợp lý nguồn tài nguyên dùng chung mà cách dịch vụ nhờ điều tiết sử dụng tài nguyên cách xác phù hợp Lấy ví dụ đám mây cung cấp dịch vụ A B Tại thời điểm, dịch vụ A nhiều người sử dụng dịch vụ B Thì thời điểm đám mây tự động điều tiết để dịch vụ A ưu tiên sử dụng nguồn tài nguyên dùng chung so với dịch vụ B nhằm cung cấp dịch vụ cách ổn định, tránh tình trạng nghẽn xảy dịch vụ A dư thừa tài nguyên dịch vụ B Điều hoàn toàn hợp lý thông minh 1.2 Các đặc điểm điện toán đám mây Điện toán đám mây có đặc điểm sau: Nhanh chóng cải thiện với người dùng có khả cung cấp sẵn tài nguyên sở hạ tầng công nghệ cách nhanh chóng tốn Chi phí giảm đáng kể chi phí vốn đầu tư chuyển sang hoạt động chi tiêu Điều làm giảm rào cản cho việc tiếp nhận, chẳng hạn sở hạ tầng cung cấp đối tác thứ không cần phải mua để dùng cho tác vụ tính toán thực lần hay chuyên sâu mà không thường xuyên Việc định giá dựa sở tính toán theo nhu cầu tốt tùy chọn dựa việc sử dụng kỹ IT đòi hỏi tối thiểu (hay không đòi hỏi) cho việc thực thi Sự độc lập thiết bị vị trí làm cho người dùng truy cập hệ thống cách sử dụng trình duyệt web mà không quan tâm đến vị trí họ hay thiết bị mà họ dùng, ví dụ PC, mobile Vì sở hạ tầng off-site (được cung cấp đối tác thứ 3) truy cập thông qua Internet, người dùng kết nối từ nơi Việc cho thuê nhiều để chia sẻ tài nguyên chi phí phạm vi lớn người dùng, cho phép: o Tập trung hóa sở hạ tầng lĩnh vực với chi phí thấp (chẳng hạn bất động sản, điện, v.v.) o Khả chịu tải nâng cao (người dùng không cần kỹ sư cho mức tải cao có thể) o Cải thiện việc sử dụng hiệu cho hệ thống mà thường 10-20% sử dụng giản hóa cho công việc yêu cầu tính cộng tác : ghi họp, soạn thảo văn theo phiên, nhóm lập trình , giáo dục nhiều Sau build source code, ta có server lắng nghe kết nối cổng 9000 Để sử dụng chương trình localhost http://localhost:9000 ta gõ vào trình duyệt địa : Màn hình chào mừng Để tạo pad ta click vào dòng chữ : “Click để tạo file mới.” Giao diện chương trình : Trên giao diện chương trình ta thấy có vùng sau : Tên tác giả, LỚP XXX 20 Tên đề tài − Vùng cho phép điền tên người dùng, chọn mùa chữ tương ứng với người dùng − Vùng hiển thị nội dung chat người dùng − Vùng cho phép nhiều người dùng soạn thảo nội dung văn − Vùng chứa công cụ để định dạng văn − Vùng lựa chọn chức khác chương trình Chương trình có chức sau : − Cho phép nhiều người soạn thảo tài liệu, gọi chung “pad” − Tự động lưu lại thay đổi tài liệu thời gian ngắn − Cho phép người dùng lưu trữ tài liệu mốc thời gian tùy ý − Tính Time Slider cho phép người xem lịch sử tác động tài liệu − Cho phép thực số tính định dạng văn − Cho phép người tham gia soạn thảo chat với − Cho phép lưu nội dung file thao tác thành file txt html Minh họa chức chương trình: Chức soạn thảo văn đồng thời : 21 Tên đề tài Thông tin tương ứng hình server : Chức chat người dùng với nhau: 22 Tên đề tài Thông điệp tương ứng server : Chức Time Slider : Ta nhấp chọn nút Time Slider để chọn chức Trình duyệt mở tab cho phép xem lại lịch sử tác động lên pad 23 Tên đề tài -Thông điệp tương ứng server: 12 Cấu trúc mã nguồn Mã nguồn tổ chức theo cấu trúc sau 24 Tên đề tài 13 Chức số file mã nguồn 13.1 Padevents.js : Ghi lại kiện xảy “Pad” : - function onNewPad(pad) : Sự kiện khởi tạo pad : + Đầu vào : Đối tượng pad + Đầu : Mở pad lưu padID vào CSDL - function onDestroyPad(pad) : Sự kiện hủy pad + Đầu vào : Đối tượng pad + Đầu : Hủy pad có lưu vào CSDL - function onUserJoin(pad, userInfo): Sự kiện user Join vào chương trình + Đầu vào : Đối tượng pad, thông tin người dùng + Đầu : Mở pad cho người dùng lưu thông tin người dùng vào file log - function onUserLeave(pad, userInfo) : Sự kiện user rời khỏi chương trình: + Đầu vào : Đối tượng pad, thông tin người dùng 25 Tên đề tài + Đầu : Đóng kết nối với người dùng rời khỏi chương trình, cập nhật vào CSDL - function onUserInfoChange(pad, userInfo) : Thay đổi thông tin người dùng - function onClientMessage(pad, senderUserInfo, msg) : Sự kiện người dùng tạo kiện có gửi thông điệp lên server: + Đầu vào : Đối tượng pad, thông tin user , thông điệp + Đầu : Tùy dạng thông điệp sẵn có mà server có hồi đáp khác - function onEditPad(pad, authorId) 13.2 Model.js: Các phương thức cho phép truy cập đến đối tượng “pad”, kiểm tra tồn pad tạo pad chưa có sẵn Bao gồm phương thức : - function _getModelCache(): - function cleanText(txt): - function accessPadGlobal(padId, padFunc, rwMode) - function doWithPadLock(padId, func) - function isPadLockHeld(padId) - function _getPadMetaData(padId) - function _insertPadMetaData(padId, obj) - function _removePadMetaData(padId) - function _getPadAPool(padId) - function _removePadAPool(padId) - function _getPadTemp(padId) - function _getPadStringArray(padId, name) - function _destroyPadStringArray(padId, name) - function _getPadSqlMeta(padId) - function _writePadSqlMeta(padId, updates) - function removeFromMemory(pad) 13.3 Chatarchive.js : Xử lý thao tác client chat với Bao gồm - function: - - function onChatMessage(pad, senderUserInfo, msg): Gửi thông điệp chat hình 26 Tên đề tài + Đầu vào : Đối tượng pad, Thông tin client gửi thông điệp, thông điệp + Đầu : Xuất thông điệp thông tin người gửi lên hình server - function getRecentChatBlock(pad, howMany): - function getChatBlock(pad, start, end): 13.4 Collab_server.js: Bao gồm phương thức xác thực User (thông qua userId), lấy thông tin phiên (pad revision), áp dụng thay đổi user tạo pad, cập nhật thay đổi user tạo tới tất client sử dụng pad - function onStartup() - function _padIdToRoom(padId) - function _roomToPadId(roomName) - function removeFromMemory(pad) - function _getPadConnections(pad) : Lấy thông tin pad để mở kết nối + Đầu vào : Đối tượng pad + Đầu : Tạo kết nối tới pad - function guestKnock(globalPadId, guestId, displayName) : Xác định quyền người dùng guest ( người dùng chưa đăng ký) có truy cập vào pad + Đầu vào : Id pad, Id guest , tên user guest + Đầu : Thông báo server người dùng guest thao tác pad - function _verifyUserId(userId) : Xác minh người dùng guest hay người dùng đăng ký + Đầu vào : userId + Đầu : Trả kiểu người dùng - function _checkChangesetAndPool(cs, pool) - function _doWarn(str) { - function _getPadRevisionSockets(pad) - function applyUserChanges(pad, baseRev, changeset, optSocketId, optAuthor) : Áp dụng thay đổi mà người dùng thực pad + Đầu vào : pad, phiên pad, thay đổi , SoketId client thực thay đổi , thông tin tác giả thay đổi + Đầu : Cho phép lưu thay đổi - function updateClient(pad, connectionId) : + Đầu vào : pad, connectionId: + Đầu : Nếu phiên client cũ phiên server server cập nhật lại nội dung cho client 27 Tên đề tài - function updatePadClients(pad) - function applyMissedChanges(pad, missedChanges) - function getAllPadsWithConnections() - function broadcastServerMessage(msgObj) - function appendPadText(pad, txt) - function setPadText(pad, txt) - function setPadAText(pad, atext) - function applyChangesetToPad(pad, changeset) - function _applyChangesetToPad(pad, changeset) - function getHistoricalAuthorData(pad, author) : Lấy thông tin thiết đặt lần sử dụng trước người dùng : + Đầu vào : pad, người dùng + Đầu : Nếu trước người dùng sử dụng chương trình thiết đặt cũ tên, màu chữ dùng Nếu lần sử dụng người dùng phải thiết đặt - function buildHistoricalAuthorDataMapFromAText(pad, atext) { - function buildHistoricalAuthorDataMapForPadHistory(pad) - function getATextForWire(pad, optRev) - function getCollabClientVars(pad) - function getNumConnections(pad) : Đếm số lượng người dùng kết nối tới pad + Đầu vào : pad + Đầu : Số lượng client kết nối đến pad - function getConnectedUsers(pad) : Thông tin user sử dụng chương trình để thao tác pad + Đầu vào : pad + Đầu : Tên user thao tác pad - function bootAllUsersFromPad(pad, reason) - function dumpStorageToString(pad) - function _getPadIdForSocket(socketId) : Lấy PadId ứng với SocketId + Đầu vào : socketId + Đầu : PadId tương ứng với socketId kết nối - function _serverDebug(msg) - function _accessSocketPad(socketId, accessType, padFunc, dontRequirePad) : - function _accessConnectionPad(connection, accessType, padFunc, dontRequirePad) - function _accessCollabPad(padId, accessType, padFunc, dontRequirePad) : Cho phép truy cập đồng thời tới pad + Đầu vào : padId, kiểu truy cập, padFunc, + Đầu : Nếu socket có kết nối đến pad cho phép thao tác pad với nhiều người dùng khác, không xuất thông báo server 28 Tên đề tài - function _accessExistingPad(padId, accessType, padFunc, dontRequireExist) : Cho phép truy cập vào pad với padId sẵn có - function _handlePadUserInfo(pad, userInfo) : Xử lý thông tin người dùng + Đầu vào : pad, userInfo + Đầu : Lưu thông tin gồm màu chữ, tên người dùng lần truy cập cuối - function _sendUserInfoMessage(connectionId, type, userInfo) :Gửi thông tin user lại cho kết nối có connectionId - function translateSpecialKey(specialKey) - function getSpecialKey(name) - function _handleCometMessage(connection, msg) - function _correctMarkersInPad(atext, apool) - function _updateDocumentConnectionUserInfo(pad, socketId, userInfo): 13.5 Pad_control.js:Kiểm soát thông tin tác động pad , trả default pad text : đoạn văn xuất tạo pad, cho phép gán thông tin tên user , màu chữ ứng với user, render pad, render saverevision… - function onStartup() : tạo bảng PAD_DIAGNOSTIC CSDL - function getDefaultPadText() : Trả đoạn văn chào mừng kết nối đến chương trình - function assignName(pad, userId) : Gán username tương ứng với userId đăng ký - function assignColorId(pad, userId) : Gán màu chữ ứng với userId đăng ký - function _getPrivs() Các hàm liên quan tới biểu diễn: - function render_linkfile() - function render_newpad() - function render_newpad_xml_post() - function render_pad(localPadId) - function render_create_get() - function render_create_post() - function render_saverevision_post() - function render_saverevisionlabel_post() - function render_getrevisionatext_get() - function _recordDiagnosticInfo(padId, diagnosticInfoJson) - function recordMigratedDiagnosticInfo(objArray) - function render_reconnect() - function render_connection_diagnostic_info_post() - function _applyMissedChanges(localPadId, missedChangesJson) 29 Tên đề tài - function render_feedback_post() - function render_emailinvite_post() - function render_slider() - function render_auth_get() - function render_auth_post() - function render_chathistory_get() 30 Chương 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 14 Kết luận Đề tài hoàn thành nội dung đề bao gồm: − Tìm hiểu sở lý thuyết điện toán đám mây, nguyên tắc hoạt động, cấu trúc dịch vụ triển khai đám mây điện toán − Phân biệt loại đám mây tại, so sánh điện toán đám mây với mô hình Client Server đặc biệt phân biệt điện toán đám mây với điện toán lưới tính toán song song − Trình bày so sánh số tảng phát triển điện toán đám mây Google App Engine, Amazon Webservices, so sánh dịch vụ với − Trình bày quy trình phát triển ứng dụng dựa tảng đám mây Google Google App engine demo ứng dụng chạy tảng để thấy rõ cách thức hoạt động đám mây điện toán − Xây dựng ứng dụng văn phòng dựa mã nguồn mở chạy web sẵn sàng đưa lên đám mây trung tâm liệu (Data Center) Việt Nam 15 Hướng phát triển đề tài Mặc dù hoàn thiện mục tiêu, đề tài vấn đề cần giải thời gian tới Đây nguyên nhân khách quan, giá thành thuê trung tâm liệu cao sinh viên nên nhóm thực chưa đưa ứng dụng lên đám mây trung tâm liệu để chạy thử Nhóm thực thử tạo đám mây riêng, việc đòi hỏi thiết bị có cấu hình mạnh giá thành cao Tuy nhiên với phát triển vũ bão CNTT, giá thành thuê dịch vụ ngày hạ thấp việc đưa lên đám mây nhiệm vụ hướng phát triển thời gian đến đề tài Tên tác giả, LỚP XXX 31 PHỤ LỤC Tấ phụ lục nằm đánh số thứ tự tên phụ lục : PHỤ LỤC A xxx i TÀI LIỆU THAM KHẢO [1] , [2] Jacque Arsac Nhập môn lập trình Nguyên : Premières lecons de programmation Trung tâm hệ thống Thông tin ISC, Hà nội 1991, 241 tr [3] Doug Cooper Standard Pascal User Reference Manual W.W.Norton & Company, 1983, 476 tr [4] Jacque Courtin, Irène Kowaski Initiation l’algorithmique et aux structures de données Volume Dunord, Paris 1994, 397 tr [5] Phan Huy Khánh, Võ Trung Hùng Thiết kế sở liệu đa ngữ ngữ pháp tiếng Việt Tạp chí Khoa học Công nghệ, Số 36+37, 2002, tr19-24 [6] Detmoungkhoum Saly Xây dựng từ điển tin học Lào-Anh-Việ Báo cáo tốt nghiệp Thạc sĩ ngành CNTT, Đại học Đà Nẵng Khoá 2002-2005 [7] Nguyễn Như Ý Đại từ điển tiếng Việt Nhà Xuất Văn hoá-Thông tin 1999 [8] Trang web : http://www.informatik.uni-leipzig.de/~duc [9] TÓM TẮT LUẬN VĂN TỐT NGHIỆP Phần viết tên đề tài (chữ nhỏ 13pt) : tóm tắt nội dung LUẬN VĂN TỐT NGHIỆP, viết ngắn gọn rõ ràng (15 đến 20 dòng) cho biết : − Đề tài đặt (bối cảnh), mục đích (giải thích rõ tên đề tài) nhiệm vụ phải thực (các mục tiêu cụ thể kết cần có) − SV giải vấn đề (đã nghiên cứu lý thuyết, thực tiễn nào, đề xuất giải pháp (biện pháp) hay sáng kiến ?) − SV giải đến đâu (nêu số kết tiêu biểu) Tãn taïc giaí åí âáy, LÅÏP XXX [...]... cung cấp đám mây công cộng Đám mây lai sử dụng các dịch vụ có trong cả không gian công cộng và riêng Các đám mây lai là câu trả lời khi một công ty cần sử dụng các dịch vụ của cả hai đám mây riêng và công cộng Theo hướng này, một công ty có thể phác thảo các mục tiêu và nhu cầu của các dịch vụ và nhận được chúng từ đám mây công cộng hay riêng, khi thích hợp Một đám mây lai được xây dựng tốt có thể phục... vụ của điện toán đám mây Bởi lẽ một khi các đám mây bị tấn công hoặc đột nhập, toàn bộ dữ liệu sẽ bị chiếm dụng • và nhà cung cấp Các quy định pháp luật cho các dịch vụ, giữa khách hàng 7 Tên đề tài ở đây 1.4 Cấu trúc và các dịch vụ điện toán đám mây 1.4.1 Cấu trúc của một đám mây điện toán Như đã đề cập ở trên, cấu trúc vật lý của điện toán đám mây (bao gồm các thiết bị, máy móc để chạy dịch vụ,…)... xét về mặt cấu trúc nền tảng thì một đám mây, dù ở loại nào hay do hãng nào cung cấp thì cũng đều có 1 cấu trúc chung gồm 4 lớp Hình 4: Cấu trúc 4 lớp của điện toán đám mây − Client (Lớp Khách hàng): Lớp Client của điện toán đám mây bao gồm phần cứng và phần mềm, để dựa vào đó, khách hàng có thể truy cập và sử dụng các ứng dụng/dịch vụ được cung cấp từ điện toán đám mây Chẳng hạn máy tính và đường dây... − Công ty của bạn là đủ lớn để chạy một dữ liệu trung tâm điện toán đám mây có hiệu quả Hình 10: Kiến trúc một đám mây riêng 16 Tên đề tài ở đây Hình 11: Mô hình một đám mây riêng 1.5.3 Các đám mây lai (Hybrid cloud ) Là một sự kết hợp của các đám mây công cộng và riêng Những đám mây này thường do doanh nghiệp tạo ra và các trách nhiệm quản lý sẽ được phân chia giữa doanh nghiệp và nhà cung cấp đám. .. giải quyết bởi điện toán đám mây và ưu nhược điểm của điện toán đám mây 1.3.1 Các vấn đề có thể được giải quyết bởi điện toán đám mây Cloud Computing ra đời để giải quyết các vấn đề sau: 1.3.2 Vấn đề về lưu trữ dữ liệu: Dữ liệu được lưu trữ tập trung ở các kho dữ liệu khổng lồ Các công ty lớn như Microsoft, Google có hàng chục kho dữ liệu trung tâm nằm rải rác khắp nơi trên thế giới Các công ty lớn này... chức nào đó); trong khi server trong Cloud computing lại mang 1 ý nghĩa rộng hơn nhiều Server trong điện toán đám mây sẽ làm nhiệm vụ tính toán cho bất kì client nào với bất kì công việc nào (mà nó hỗ trợ) Công việc tính toán lúc này không phải thực hiện theo nghĩa vụ mà là theo dịch vụ Với điện toán đám mây, mọi thứ sẽ được cung cấp dưới dạng dịch vụ, và người dùng sẽ chỉ phải trả phí sử dụng các dịch... mới trong điện toán đám mây, nên cách thực hành và các công cụ tốt nhất về loại này tiếp tục nổi lên và bất đắc dĩ chấp nhận mô hình này cho đến khi hiểu rõ hơn 17 Tên đề tài ở đây Hình 12: Mô hình một đám mây lai Dưới đây là một vài tình huống mà một môi trường hybrid là tốt nhất − Công ty của bạn muốn sử dụng một ứng dụng SaaS nhưng quan tâm về bảo mật Nhà cung cấp SaaS có thể tạo ra một đám mây riêng... cung cấp các đám mây Hình 9: Mô hình 1 đám mây công cộng 1.5.2 Các đám mây riêng (Private cloud) Là các dịch vụ đám mây được cung cấp trong doanh nghiệp Những đám mây này tồn tại bên trong tường lửa công ty và chúng được doanh nghiệp quản lý Các đám mây riêng đưa ra nhiều lợi ích giống như các đám mây chung thực hiện với sự khác biệt chính: doanh nghiệp có trách nhiệm thiết lập và bảo trì đám mây này... toàn bộ dữ liệu của họ từ đám mây? Và làm cách nào để người dùng có thể chắc chắn rằng các dịch vụ đám mây sẽ không hủy toàn bộ dữ liệu của họ trong trường hợp dịch vụ ngừng hoạt động • Khả năng bảo mật : Vấn đề tập trung dữ liệu trên các đám mây” là cách thức hiệu quả để tăng cường bảo mật, nhưng mặt khác cũng lại chính là mối lo của người sử dụng dịch vụ của điện toán đám mây Bởi lẽ một khi các đám. .. động đảo các người dùng và các nhu cầu ngày càng cao của họ 1.4.2 Các dịch vụ triển khai trên một đám mây điện toán Dựa trên cấu trúc phân tầng ở trên, một đám mây điện toán có thể cung cấp được các dịch vụ tổng quát như trong sơ đồ dưới đây Hình 5: Sơ đồ kiến trúc cung cấp dịch vụ của một đám mây điện toán 9 Tên đề tài ở đây Cloud computing cung cấp hạ tầng, nền tảng và phần mềm như là dich vụ, mà ... cứu đề tài: Tìm hiểu điện toán đám mây xây dựng công cụ văn phòng trực tuyến” 1.2 Mục đích ý nghĩa Mục tiêu đề tài nhằm giải nhiệm vụ sau: - Tìm hiểu mô hình hoạt động điện toán đám mây - Nghiên... điểm điện toán đám mây 1.3 Các vấn đề giải điện toán đám mây ưu nhược điểm điện toán đám mây 1.3.1 Các vấn đề giải điện toán đám mây 1.3.5 Các ưu, nhược điểm điện toán đám. .. .3 Amazon Cloud Font: Page Đ.T.Hồng Nguyên + L.AnhVũ Tìm hiểu điện toán đám mây, xây dựng công cụ văn phòng Thường PGS.TS.Lê Tiến Amazon Simple Queue Service: Google