Sổ liên lạc điện tử ứng dụng smartphone và điện toán đám mây

đang tải dữ liệu....

Nội dung tài liệu: Sổ liên lạc điện tử ứng dụng smartphone và điện toán đám mây

TRƯỜNG ĐẠI HỌC MỞ TP.HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN  SỔ LIÊN LẠC ĐIỆN TỬ (ỨNG DỤNG SMARTPHONE VÀ ĐIỆN TOÁN ĐÁM MÂY) BÁO CÁO ĐỒ ÁN MÔN HỌC SVTH: Lý Trọng Khoa MSSV:0851010132 SVTH: Trang Thành Lộc MSSV: 0851010354 Ngành: Khoa Học Máy Tính Hướng chuyên ngành: Cơ Sở Dữ Liệu Lớp: TH08B2 Giảng Viên Hướng Dẫn TS.Lê Xuân Trường Tp. Hồ Chí Minh –Tháng 2 năm 2012 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường LỜI CÁM ƠN Đồ án được thành công là nhờ sự hướng dẫn, giúp đỡ của thầy. Em xin chân thành cảm ơn thầy đã bỏ thời gian quý báu của mình để giúp em hoàn thành tốt khóa luận này. Chúng em xin chân thành cảm ơn khoa Công Nghệ Thông Tin, trường Đại Học Mở đã hổ trợ tạo nhiều điều kiện thuận lợi cho chúng em trong quá trình học tập, nghiên cứu cũng như quá trình thực hiện đồ án này. Chúng em xin cảm ơn đến thầy cô trong khoa CNTT đã tận tình giảng dạy, trang bị cho chúng em những kiến thức cần thiết trong suốt quá trình học tập và nghiên cứu tại khoa. Cuối cùng chúng em xin cảm ơn đến thầy Lê Xuân Trường giảng viên lớp lý thuyết và thực hành môn Nhập Môn Công Nghệ Phần Mềm đã tận tình hướng dẫn, truyền đạt cho em những kiến thức quý báu và giúp đỡ chúng tôi trong quá trình thực hiện đề tài này. Mặc dù chúng em đã nổ lực hết sức để hoàn thành tốt đề của mình nhưng dù sao những sai sót trong đề tài là điều không thể tránh khỏi, kính mong thầy cô thông cảm và tận tình chỉ bảo cho chúng em.Bên cạnh đó cũng mong các bạn đóng góp ý kiến để chúng em có thể hoàn thiện đề tài của mình hơn. Đồ Án Môn Học_Sổ Liên Lạc Điện Tử ứng dụng Cloud Và Android Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… ……………………………………………………………………………… Đồ Án Môn Học_Sổ Liên Lạc Điện Tử ứng dụng Cloud Và Android Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường MỤC LỤC Chương 1. TỔNG QUAN ...................................................................................................... 1 1.1. GIỚI THIỆU Ý TƯỞNG NGHIÊN CỨU ................................................................... 1 1.2. Mục đích làm đề tài ................................................................................................... 2 1.3. Phương pháp nghiên cứu ........................................................................................... 3 1.4. Phạm vi ..................................................................................................................... 3 Chương 2. CƠ SỞ LÝ THUYẾT ............................................................................................ 4 2.1. Tổng Quan Điện Toán Đám Mây ............................................................................... 4 2.1.1. Giải pháp của điện toán đám mây .......................................................................... 5 2.1.2. Cấu trúc các phần tạo nên đám mây ...................................................................... 6 2.1.3. Điện toán đám mây với Google App Engine ............................................................ 7 2.2. Kiến trúc Google App Engine .................................................................................... 7 2.2.1. Tổng quan Google App Engine .............................................................................. 8 2.2.2. Môi trường phát triển ........................................................................................... 9 2.2.3. Các loại tập tin tĩnh trên server ........................................................................... 10 2.2.4. DataStore .......................................................................................................... 10 2.2.5. Các loại Dịch Vụ ................................................................................................ 11 2.2.6. Google Accounts ................................................................................................ 11 2.2.7. Các hạn chế của Google App Engine ................................................................... 11 2.3. Các thành phần của Google App Engine trong Java ................................................. 12 2.3.1. BackEnds .......................................................................................................... 12 2.3.2. Storing Data ...................................................................................................... 12 2.3.3. Các dịch vụ của GAE.......................................................................................... 17 2.4. Hỗ trợ kết nối Android với AppEngine .................................................................... 26 2.4.1. Giới thiệu sơ lược............................................................................................... 26 2.4.2. Kiến trúc Android kết nối Appengine .................................................................... 26 Đồ Án Môn Học_Sổ Liên Lạc Điện Tử ứng dụng Cloud Và Android Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường Chương 3. HIỆN THỰC ỨNG DỤNG ................................................................................ 27 3.1. Sơ lược ứng dụng ..................................................................................................... 27 3.1.1. Mô hình hoạt động ............................................................................................. 27 3.1.2. Sơ lược các chức năng ........................................................................................ 27 3.2. Xây dựng ứng dụng Backend và Android ................................................................. 27 3.2.1. Đồng bộ hóa dữ liệu tài khoản google .................................................................. 27 3.2.2. Sử dụng Google Cloud Sql .................................................................................. 28 3.3. Xây dựng ứng dụng xem điểm trên Android ............................................................ 36 3.3.1. Mô hình hoạt động ............................................................................................. 36 3.3.2. Cách thức xử lý .................................................................................................. 36 Chương 4. KẾT QUẢ ĐẠT ĐƯỢC ...................................................................................... 38 4.1. Các dịch vụ tiện ích dành cho giáo viên, phụ huynh và học sinh ............................... 38 4.2. Ứng dụng trên Android ........................................................................................... 41 Chương 5. KẾT LUẬN ....................................................................................................... 47 5.1. Lợi ích của điện toán đám mây với GAE .................................................................. 47 5.2. Hạn chế của điện toán đám mây............................................................................... 47 5.3. Lợi ích của Hệ điều hành Android ........................................................................... 47  Tính Năng Mở: ............................................................................................................. 47  Phá bỏ các rào cản ứng dụng: ......................................................................................... 47  Với Android tốc độ nhanh & phát triển ứng dụng dễ dàng ................................................. 48  Phần cứng đa dạng ........................................................................................................ 48 5.4. Nhược điểm của hệ điều hành Android: ................................................................... 48  Thời lượng sử dụng pin thấp .......................................................................................... 48 Đồ Án Môn Học_Sổ Liên Lạc Điện Tử ứng dụng Cloud Và Android Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường Chương 1. TỔNG QUAN 1.1. GIỚI THIỆU Ý TƯỞNG NGHIÊN CỨU Theo Công văn số 9772/BGDĐT-CNTT ngày 20/10/2008 của Bộ GD&ĐT về việc hướng dẫn thực hiện nhiệm vụ CNTT năm học 2008 – 2009. Trong đó xác định nhiệm vụ trọng tâm của năm học 2008 – 2009 là năm học đầu tiên triển khai thực hiện Chỉ thị số 55/2008/CT-BGDĐT ngày 30/9/2008 của Bộ trưởng Bộ GDĐT về tăng cường giảng dạy, đào tạo và ứng dụng CNTT trong ngành giáo dục giai đoạn 2008- 2012. Năm học 2008 – 2009 được chọn là “Năm học đẩy mạnh ứng dụng CNTT, đổi mới quản lý tài chính và xây dựng trường học thân thiện, học sinh tích cực”. Ngày nay, cùng với sự phát triển của nền kinh tế, các gia đình ngày càng quan tâm đến tình hình học tập của con em mình ở nhà trường.Tuy nhiên trong nhịp sống tất bật, hối hả của Xã Hội. Các bậc phụ huynh không có thời gian đến trường để quản lý tình hình học tập của con em mình.Nắm bắt được tình hình và nhu cầu này của đông đảo quý phụ huynh học sinh. Sổ liên lạc chính là cầu nối giữa Gia đình - Nhà trường - Học sinh, cho phép phụ huynh học sinh nắm bắt được tình hình học tập của con em như điểm kiểm tra, hạnh kiểm, học lực… nhưng chỉ là những thời điểm định kỳ là cuối Tháng hay cuối Học Kỳ.Như vậy thì phụ huynh chỉ có thể biết kết quả mà không thể dõi theo từng bước học hành của con em mình.Chính vì lý do đó mà cần có một cầu nối nhanh chóng hơn, chính xác hơn giữa Nhà Trường-Phụ Huynh.Đó cũng là lý do thực hiện “Sổ Liên Lạc Điện Tử Thông Minh”. Phụ huynh sẽ nhanh chóng nhận được các thông báo của Nhà trường như việc đóng học phí, lịch kiểm tra hoặc lịch thi các môn, thầy giáo nghỉ dạy, họp phụ huynh học sinh, liên hoan, thăm quan…Nhận được thông tin chuyên cần của các con thường xuyên và nhánh chóng qua tin nhắn SMS. Điểm mới nhất ở đây đó là Sổ Liên Lạc Điện Tử sẽ được áp dụng công nghệ Điện Toán Đám Mây và Điện Thoại SmartPhone(Android). Áp dụng Điện Toán Đám Mây(Xu hướng tất yếu ở Việt Nam) 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 từ mấy năm qua. Khái niệm này có thể được diễn giải một cách đơn giản: các nguồn điện toán khổng lồ như phần mềm, dịch vụ... sẽ nằm tại các máy chủ ảo (đám mây) trên Internet thay vì trong máy tính gia đình và văn phòng (trên mặt đất) để mọi người kết nối và sử dụng mỗi khi họ cần. Công nghệ điện toán đám mây đã trở nên khá phổ biến và có thể mang đến các thay đổi tiềm năng.Ngày nay, khi mà mục tiêu chính của hầu hết các doanh nghiệp là tăng doanh số, giảm thiểu chi phí hoạt động và quan trọng là thu hút được các khách hàng mới, công nghệ điện toán đám mây có thể hỗ trợ cho việc thưc hiện tất cả các mục tiêu đó. Điện toán đám mây trở nên là công cụ hỡ trợ đắc lực cho các công ty không có hệ thống máy chủ, PC chỉ cài một số phần mềm cơ bản còn tất cả đều phụ thuộc vào SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 1 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường cloud. “Chẳng hạn, họ đăng ký dịch vụ hosting cho website công ty, thuê công cụ quản lý doanh thu từ Salesforce.com, lấy dữ liệu khảo sát thị trường từ tổ chức Survey Monkey... Và tất nhiên, họ dùng Google để tìm kiếm, phân tích, chia sẻ và lưu trữ tài liệu”.Như vậy các doanh nghiệp chỉ cần tập trung cho dịch vụ và sản xuất bởi Cơ Sở Dữ Liệu đã có người lo thay cho họ. Google nằm trong số những hãng ủng hộ điện toán máy chủ ảo tích cực nhất bởi hoạt động kinh doanh của họ dựa trên việc phân phối các cloud (virtual server), và các web services sử dụng các dịch vụ hosting của Google, được gọi là Google App Engine (GAE). GAE là một nền tảng hosting bao gồm web server, cơ sở dữ liệu BigTable và kho lưu trữ file GFS. GAE cho phép viết ứng dụng web dựa trên cơ sở hạ tầng của Google. Nghĩa là chúng ta không cần quan tâm là trang web của chúng ta được lưu trữ như thế nào (kể cả database đi kèm), mà chỉ cần quan tâm đến việc phát triển ứng dụng theo các API do Google cung cấp. Áp dụng SmartPhone (Android) ‐ Android là hệ điều hành chạy trên thiết bị điện thoại được phát triển bởi Google. ‐ Android ra mắt đầu tiên vào ngày 5/11/2007 Android có rất nhiều ưu điểm vượt trội hơn các hệ điều hành chạy trên thiết bị điện thoại khác như việc phát hành phần mền mã nguồn mở mọi người,tổ chức đều có thể dễ dàng tiếp cận can thiệp và nâng cấp phát triển theo ý muốn của mình. Ngoài ra việc phát triển các ứng dụng cho Android có nhiều thuận lợi đối với người và cộng đồng phát triển. Việc Android được Google cho ra đời đánh dấu bước tiến trong lĩnh vực phát triển nền tảng smartphone, không phải như iOS độc quyền trên thế hệ máy của Apple mà Android đã xuất hiện trên rất nhiều thế hệ máy của nhiều nhà sản xuất lớn như HTC, LG, SonyErricsion, Samsung,.. việc Android được ứng dụng đại trà sẽ giúp Google chiếm ưu thế lớn trong thị trường smartphone.Đồng thời Google còn có chức năng cho kết hợp Android với GAE.Như vậy xu thế của thế giới hiện nay là liên kết tất cả lên đám mây. 1.2. Mục đích làm đề tài Hiện nay việc giáo dục con người được đặt lên hàng đầu ở các nước trên Thế Giới nói chung và Việt Nam nói riêng.Do đó việc hỗ trợ việc liên kết giữa các bậc phụ huynh học sinh với nhà trường là điều quan trọng cần phải làm nếu muốn việc học tập của con em ngày càng tốt hơn.Chính vì vậy “Sổ Liên Lạc Điện Tử Thông Minh” được ra đời.Mặc dù “Sổ liên lạc điện tử” không mấy xa lạ đối với các bậc phụ huynh trong nhiều năm trở lại đây.Nhưng khi áp dụng Điện Toán Đám Mây và Điện Thoại Thông Minh vào ứng dụng sổ liên lạc điện tử thì giảm thiểu tối đa thời gian sử dụng mà chi phí có thể rẻ hơn.Mang lại nhiều lợi ích hơn về mọi mặt:  Xử lí nhanh hơn  Bảo mật an toàn hơn cách truyền thống  Không hao tổn nhiều chi phí phát sinh ban đầu hay thủ tục rườm rà.  Giảm chi phí phần cứng, không cần thiết phải lắp đặt những thiết bị đắt tiền, mua những chiếc máy tính nhanh nhất với bộ nhớ lớn nhất nữa. SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 2 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường Bên cạnh đó Sổ liên lạc điện tử là cầu nối nhanh chóng và chính xác giữa nhà trường và gia đình.Hỗ trợ giúp các bậc phụ huynh học sinh nắm rõ quá trình học tập của con em mình để đưa ra những quyết định chính xác nhằm hỗ trợ con em mình học ngày càng tiền bộ hơn.Nhắm thúc đẩy nền giáo dục nước nhà ngày càng phát triển và lớn mạnh hơn. Sổ liên lạc điện tử đem lại nhiều lợi ích cho cả phụ huynh lẫn nhà trường. Một số lợi ích được đề cập đến như sau: Với phụ huynh: - Nhanh chóng nhận được điểm, nhận xét, thông báo từ nhà trường - Dễ dàng nắm bắt thông tin về tình hình học tập hàng ngày của con em mình - Nâng cao ý thức tự giác của con em. Với nhà trường: - Nâng cao chất lượng giảng dạy. - Nâng cao hình ảnh về một nhà trường hiện đại, chuyên nghiệp. - Góp phần thúc đẩy tin học hóa, hiện đại hóa nhà trường. 1.3. Phương pháp nghiên cứu  Nghiên cứu quá trình hoạt động,bảo mật thông tin, lưu trữ dữ liệu trên đám mây. Công nghệ về điện toán đám mây với Google App Engine  Sử dụng Spring FrameWork MVC.  Sử dụng cơ sở dữ liệu Google Cloud Sql, sử dụng một chuẩn MySQL để truy vấn dữ liệu, sử dụng JDBC và DB-API.  Nghiên cứu cách kết hợp giữa Android và Cloud Computing. 1.4. Phạm vi  Dịch vụ web(Web services): − Cung cấp cho phụ huynh và học sinh có thể tra cứu được điểm − Các thông tin về các lớp học − Danh sách lớp − Giáo viên chủ nhiệm lớp.v.v  Phiên bản SmartPhone − ứng dụng có thể xem điểm ngay trực tiếp trên Smart Phone.Chỉ cần dùng mã Học sinh gửi lên máy chủ. SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 3 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường Chương 2. CƠ SỞ LÝ THUYẾT 2.1. Tổng Quan Điện Toán Đám Mây Thuật ngữ “Điện Toán Đám Mây” không còn mấy xa lạ đối với cộng đồng công nghệ Việt Nam nói riêng và các nước trên Thế Giới nói chung. Ở đây xin đưa ra một số định nghĩa. Theo Gartner: “Điện toán đám mây là một kiểu tính toán trong đó các năng lực CNTT có khả năng mở rộng rất lớn được cung cấp “dưới dạng dịch vụ” qua mạng Internet đến nhiều khách hàng bên ngoài.” Theo Forrester Research: “Điện toán đám mây là một kho tài nguyên cơ sở hạ tầng ảo hóa, có khả năng mở rộng cao và được quản lý, có thể hỗ trợ các ứng dụng của khách hàng cuối và được tính tiền theo mức độ sử dụng.” Theo NIST (National Institute of Standards and Technology): “Điện toán đám mây là một mô hình cho phép truy cập mạng thuận tiện, theo nhu cầu đến một kho tài nguyên điện toán dùng chung, có thể định cấu hình: mạng, máy chủ, lưu trữ, ứng dụng,…có thể được cung cấp và thu hồi một cách nhanh chóng với yêu cầu tối thiểu về quản lý hoặc can thiệp của nhà cung cấp dịch vụ.” Hình 2.1 Mọi thứ đều tập trung vào đám mây Một cách đơn giản, điện toán đám mây là việc ảo hóa các tài nguyên tính toán và các ứng dụng. Thay vì việc bạn sử dụng một hoặc nhiều máy chủ thật (ngay trước mắt, có thể sờ được, có thể tự bạn ấn nút bật tắt được) thì nay bạn sẽ sử dụng các tài nguyên được ảo hóa (virtualized) thông qua môi trường Internet. SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 4 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường Theo truyền thống thì các cá nhân, doanh nghiệp sẽ xây dựng riêng cơ sở hạ tầng kỹ thuật để tự cung cấp các dịch vụ cho các hoạt động thông tin.Do đó những máy chủ được đặt ở ngay vị trí công ty, họ sẽ trả tiền để triển khai, duy trì cơ sở hạ tầng đó (mua thiết bị phần cứng, phần mềm chuyên dụng, trả lương cho bộ phận điều hành...) Khác với mô hình truyền thống mô hình điện toán đám mây lưu trữ và xử lý toàn bộ thông tin trong đám mây Internet.Mọi công nghệ, kỹ thuật, cơ sở hạ tầng cũng như chi phí triển khai trong đám mây sẽ do nhà cung cấp đảm bảo xây dựng và duy trì.Các doanh nghiệp chỉ việc kết nối qua mạng Internet mà không phải mất chút công sức nào để bảo trì, bảo dưỡng, nâng cấp, chạy máy chủ. Không những thế, các doanh nghiệp còn có thể cho khách hàng của họ sử dụng ứng dụng mà không phải mất công cài đặt.Do đó, thay vì phải đầu tư từ đầu rất nhiều tiền cho chi phí xây dựng cơ sở hạ tầng riêng, các cá nhân, doanh nghiệp trong quá trình hoạt động sẽ chỉ phải trả số tiền vừa đủ theo nhu cầu sử dụng của mình (pay-for-what-you-use). 2.1.1. Giải pháp của điện toán đám mây Hình 2.2 Các giải pháp về cung cấp các dịch vụ tài nguyên  Vấn đề về lưu trữ dữ liệu Dữ liệu được lưu trữ tập trung ở các trung tâm dữ liệu khổng lồ và được cấp phát cho doanh nghiệp một cách từ thời. Thay vì việc doanh nghiệp phải tính toán xem có nên mở rộng hay không, phải đầu tư bao nhiêu máy chủ thì nay doanh nghiệp chỉ cần yêu cầu và đám mây sẽ tự tìm kiếm tài nguyên rỗi để cung cấp cho bạn.Các công ty lớn như Microsoft, Google có hàng chục trung tâm dữ liệu nằm rải rác khắp nơi trên thế giới. Các công ty lớn này sẽ cung cấp các dịch vụ cho phép doanh nghiệp có thể lưu trữ và quản lý dữ liệu của họ trên các trung tâm lưu trữ. SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 5 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường  Vấn đề về sức mạnh tính toán Có 2 giải pháp chính:  Sử dụng các siêu máy tính để xử lý tính toán.  Sử dụng các hệ thống tính toán song song, phân tán.  Vấn đề về cung cấp tài nguyên, phần mềm. Cung cấp các dịch vụ như IaaS (infrastructure as a service), PaaS (platform as a service), SaaS (Storeage as a service). 2.1.2. Cấu trúc các phần tạo nên đám mây Hình 2.3 Các phần tạo nên đám mây 2.1.2.1. Các dịch vụ ứng dụng (SaaS) Với các cấu trúc nhiều người sử dụng (một phiên bản ứng dụng cho nhiều khách hàng) hay một cấu trúc đa phiên bản (một phiên bản ứng dụng cho từng khách hàng trong cùng một môi trường với sự bảo mật hoàn hảo thông tin). Tầng dịch vụ ứng dụng này hỗ trợ việc thực hiện, quản lý, lưu trữ dự án phát triển ứng dụng phù hợp. Đây là những ứng dụng chạy trong một đám mây SaaS sẽ cung cấp giấy phép một ứng dụng cho khách hàng để sử dụng một dịch vụ theo yêu cầu hay còn gọi là “phần mềm theo yêu cầu”. Với việc ứng dụng thành công mô hình SaaS cho phép cung cấp, phát triển, lưu trữ và vận hành SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 6 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường phần mềm để khách hàng sử dụng.Thay vì mua các phần cứng và phần mềm để chạy một ứng dụng, khách hàng chỉ cần một máy tính hoặc một máy chủ để tải ứng dụng và truy cập internet để chạy phần mềm. Các ứng dụng được cung cấp qua mô hình SaaS làm lợi cho người tiêu dùng bằng cách giải phóng cho họ khỏi việc cài đặt và bảo trì phần mềm và các ứng dụng có thể được sử dụng thông qua các mô hình cấp phép có hỗ trợ trả tiền để sử dụng. 2.1.2.2. Các dịch vụ nền tảng (PaaS) PaaS là một nền tảng công nghệ và kỹ thuật được thiết kế đặc biệt không dành riêng cho một mô hình cụ thể nào, mà được thiết kế một cách tổng thể để Mô hình nào cũng thể thể ứng dụng, triển khai và phù hợp. PaaS cho phép bạn tạo ra những Phần mềm ứng dụng trên nền web một cách nhanh chóng, giúp bạn giảm bớt được chi phí và sự phức tạp liên quan đến việc quản lý và mua bán các Phần mềm hay phần cứng thông thường Cũng giống như SaaS nhưng mô hình cloud computing này mang đến môi trường phát triển như một dịch vụ: Ví dụ : Bạn xây dựng ứng dụng chạy trên cơ sở hạ tầng của nhà cung cấp và phân phối tới người dùng qua máy chủ của nhà cung cấp đó. Một số ví dụ điển hình về PaaS là Salesforce.com, Google App Engine, Yahoo Pipes và tại Việt Nam.Đây là tầng ở đó chúng ta thấy cơ sở hạ tầng ứng dụng nổi lên như là một tập hợp các dịch vụ.Các dịch vụ nền tảng này cho phép khách hàng chắc chắn rằng các ứng dụng của họ được trang bị để đáp ứng các nhu cầu của người dùng bằng cách cung cấp cơ sở hạ tầng ứng dụng dựa theo yêu cầu. PaaS còn được biết đến với một tên khác là cloudware. 2.1.2.3. Các dịch vụ cơ sở hạ tầng (IaaS) Ở đây, chúng ta thấy một tập hợp các tài sản vật lí như các máy chủ, các thiết bị mạng và các đĩa lưu trữ được đưa ra như là các dịch vụ được cung cấp cho người tiêu dùng. Các dịch vụ ở đây hỗ trợ cơ sở hạ tầng ứng dụng và nhiều người tiêu dùng hơn. Cũng như với các dịch vụ nền tảng, sự ảo hóa là một phương pháp thường được sử dụng để tạo ra chế độ phân phối các nguồn tài nguyên theo yêu cầu. Ví dụ về các dịch vụ cơ sở hạ tầng bao gồm IBM Bluehouse, VMware, Amazon EC2, Microsoft Azure Platform, Sun ParaScale Cloud Storage 2.1.3. Điện toán đám mây với Google App Engine Google nằm trong số những hãng ủng hộ điện toán máy chủ ảo tích cực nhất bởi hoạt động kinh doanh của họ dựa trên việc phân phối các cloud (virtual server). Google cung cấp các dịch vụ ở hai tầng, ở tầng ứng cao nhất của đám mây là SaaS, Google cho phép sử dụng các dịch vụ của họ như Gmail, Google Doc và ở tầng Paas họ cung cấp các tập API dành cho các doanh nhiệp, cá nhân, hay tổ chức để hổ trợ cho các ứng dụng web Application sử dụng các dịch vụ hosting của Google, được gọi là Google App Engine (GAE). 2.2. Kiến trúc Google App Engine SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 7 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường 2.2.1. Tổng quan Google App Engine Nhiều doanh nghiệp sử dụng rất nhiều phần cứng để chạy các ứng dụng như các cơ sở dữ liệu, các máy chủ ứng dụng, các hệ thống quản lý thay đổi và các công cụ lần vết tìm lỗi. Tuy vậy, ngày nay, các phần cứng này này có thể dễ dàng vứt bỏ để thay bằng việc sử dụng chính gói phần mềm ấy dưới dạng một dịch vụ đang chạy trên một cơ sở hạ tầng của người, hay tổ chức nào đó khác. Một doanh nghiệp có thể vứt bỏ phần cứng nằm bên dưới của một ứng dụng web cụ thể để thay bằng việc chạy ứng dụng trên phần cứng được cung cấp bởi Amazon, Google hoặc các đối tác khác. Các công ty này đưa ra khả năng thuê phần cứng ở các mức độ khác nhau, vừa vặn có thể lưu trữ một ứng dụng. Hơn nữa, các công ty này có khả năng quản lý mở rộng, sao lưu và bảo mật. Amazon và Google đã nêu ra những mối quan tâm này và đối phó tốt hơn với chúng ta, có nhiều đổi mới xung quanh các khía cạnh của việc chạy các nền tảng phần mềm sao cho hiệu quả. App Engine của Google là một nền tảng hosting thực sự để xây dựng và triển khai ứng dụng Web Java, Python và Go trên cơ sở hạ tầng mở rộng của Google. Nó không yêu cầu lệ phí cấp phép sử dụng (trừ ra một số thư viện phần mềm mà chúng ta chọn để sử dụng trên cơ sở hạ tầng ấy yêu cầu giấy phép) và không cần chi phí trả trước cho băng thông hoặc không gian lưu trữ. Cơ sở hạ tầng của App Engine là hoàn toàn miễn phí cho đến khi đạt đến ngưỡng về mức sử dụng, dung lượng lưu trữ 500MB và theo như trích dẫn nguyên văn từ Google, "đủ CPU và băng thông cho khoảng 5 triệu lượt xem trang mỗi tháng". Chỉ cần nói rằng, khi đạt tới điểm mà Google bắt đầu gửi hóa đơn tính phí, thì ứng dụng Web của chúng ta rõ ràng đã tạo ra lưu lượng đáng kể , có nhiều người xem và có lãi. SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 8 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường Hình 2.4 Kiến trúc Google App Engine cho Java 2.2.2. Môi trường phát triển Hiện nay Google App Engine hổ trợ phát triển trên ba môi trường nền tảng. Một là Java Runtime Environment, Python Runtime Environment và Go Runtime Environment. Môi trường được chọn phụ thuộc vào ngôn ngữ của ứng dụng và công nghệ mà chúng ta sử dụng để phát triển ứng dụng. Môi trường Java hổ trợ cho ứng dụng sử dụng Java 6 virtual Machine. Ứng dụng có thể phát triển bằng ngôn ngữ Java, hay hầu hết các ngôn ngữ khác mà có thể chạy trên JVM như PHP(sử dụng Quercus), Ruby (sử dụng JRuby), JavaScript, Scala, Groovy. Ứng dụng có thể chạy trên môi trường và sử dụng các dịch vụ bằng các công nghệ web chuẩn hiện nay như servlet và Java Persistence API Môi trường Python hổ trợ cho các ứng dụng được viết bằng ngôn ngữ Python 2.5 được cải tiến từ phiên bản CPython. Môi trường Python trên Google App Engine cho phép các ứng dụng Python sử dụng CGI, một thư viện chuẩn hổ trợ giao diện. Một ứng dụng python có thể sử dụng được hầu hết các thư viện chuẩn. Nhiều thư viện mã nguồn mở điều hoạt động tốt với google App Engine như là Django, Web2py, Pylons và App Engine còn chứa nhiều thư viện của riêng nó SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 9 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường Môi Trường Go hổ trợ cho các ứng dụng được viết bằng ngôn ngữ Go phiên bản Release r58.1 trở lên, môi trường này hiện đang được thử nghiệm trên Google App Engine. Trong gói SDK của GAE đã chứa trình biên dịch của Go và một thư viện chuẩn. Môi trường Java, Python và Go có điểm chung đó là sử dụng cách thức giống nhau trong việc truy cập dữ liệu: một ứng dụng được định tuyến tới máy chủ của Google, sau đó máy chủ sẽ xem yêu cầu và chuẩn bị dữ liệu, nếu có dữ liệu theo yêu cầu thì máy chủ tiến hành trả lời cho client. Mỗi môi trường sử dụng một trình thông dịch riêng. Tất cả các ứng dụng của server cần một trình thông dịch riêng (JVM hay Python interpreter), vì thế trước khi các yêu cầu được gửi tới server, thì server phải thực hiện nhiệm vụ là chuẩn bị môi trường phù hợp với ứng dụng có yêu cầu. 2.2.3. Các loại tập tin tĩnh trên server Một website có rất nhiều tài nguyên.Hầu hết các website có resource được cấp phát cho trình duyệt mà không có sự thay đổi trong quá trình hoạt động thường xuyên của nó. Hình ảnh và CSS được mô tả như là sự xuất hiện của các trang web, mã JavaScript giúp chạy các tác vụ trên trình duyệt, và các trang HTML không có các thành phần dữ liệu động là các ví dụ của những tài nguyên này, được gọi chung là các tập tin tĩnh. Sự cấp phát tài nguyên này cho browser không liên quan tới mã code của ứng dụng, không cần thiết và không hiệu quả để đáp ứng từ các máy chủ. Thay vào đó, App Engine cung cấp một thành phần chuyên biệt của máy chủ chuyên dụng để cung cấp tĩnh các tập tin này. Các server này được tối ưu hóa cho kiến trúc nội bộ và phương thức truyền dẫn mạng để xử lý các yêu cầu về tài nguyên tĩnh. Khi duyệt website, các tập tin tĩnh cùng các mã ứng dụng được load lên. Để các tập tin tĩnh có thể đáp ứng yêu cầu của website, phải cấu hình một số khía cạnh trong các tập tin cấu hình bao gồm: các URL tĩnh của tập tin, các loại nội dung và hướng dẫn cho các trình duyệt để giữ các bản sao của các tập tin trong bộ nhớ Cache cho một số lượng và thời gian nhất định để làm giảm lưu lượng và tốc độ dựng hình của trang khi trang được load. Mặc định trong GAE thì các file hình ảnh và CSS trong thư mục resouse của ứng dụng đều là các tập tin Static. 2.2.4. DataStore Hầu hết các ứng dụng web hữu ích cần phải lưu trữ thông tin trong việc xử lý yêu cầu. Vì thế các website thường có các luồng xuất nhập dữ liệu và phải có một hoặc nhiều máy chủ web kết nối với máy chủ cơ sở dữ liệu để lưu trữ hoặc lấy dữ liệu. Tuy nhiên, khó khăn được đặt ra khi có nhiều kết nối đồng thời để yêu cầu dữ liệu, vì thế hệ thống máy chủ cơ sở dữ liệu phải đòi hỏi một số cấu hình về phần cứng để có thể đáp ứng được nhiều yêu cầu cùng lúc. Hiện nay, các hệ thống lưu trữ dữ liệu phổ biến nhất cho các ứng dụng web là lưu trữ theo table, hàng và cột, giản lượt không gian, sắp xếp, sử dụng các chỉ số index để nâng cao khả năng truy xuất dữ liệu. Các loại khác của hệ thống lưu trữ SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 10 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường dữ liệu bao gồm các kho dữ liệu phân cấp (XML) và cơ sở dữ liệu hướng đối tượng (Object database). Mỗi loại cơ sở dữ liệu có ưu và khuyết điểm riêng, và loại tốt nhất phù hợp cho một ứng dụng phụ thuộc vào bản chất dữ liệu của ứng dụng. Và mỗi loại cơ sở dữ liệu có những kỹ thuật của riêng mình để phát triển qua các hệ thống các máy chủ. Hệ thống cơ sở dữ liệu của Google App Engine gần giống nhất với một cơ sở dữ liệu kiểu đối tượng(object). Nó không phải là một cơ sở dữ liệu quan hệ, điều này có thể sẽ yêu cầu thay đổi cách suy nghĩ về dữ liệu của ứng dụng. 2.2.5. Các loại Dịch Vụ Mối quan hệ giữa datastore và thời gian thực thi đó là một loại dịch vụ: dịch vụ này cung cấp các tập API để truy xuất vào hệ thống cơ sở dữ liệu. Google App Engine bao gồm một số dịch vụ hữu ích cho các ứng dụng web. Dịch vụ bộ nhớ Cache là một dịch vụ giúp khả năng truy xuất nhanh vì chính lợi thế của nó là nhanh, nhanh hơn nhiều so với truy xuất trực tiếp trên database. Nhưng một nhược điểm của nó là khi server có sự cố về mất điện hay tắt máy thì các giá trị ghi tạm thời trong memcache bị xóa hoàn toàn. Như tên gọi của nó, dịch vụ memcache sử dụng như là một bộ nhớ cache để lưu các kết quả của các truy vấn thường xuyên hoặc thực hiện các phép tính toán. Ứng dụng của App Engine có thể truy xuất đến các tài nguyên của các trang web khác sử dụng dịch vụ URL Fetch. Dịch vụ này tạo ra kết nối HTTP tới server khác trên internet để nhận về tài nguyên Ứng dụng App Engine có thể gửi mail sử dụng dịch vụ Mail. Tin nhắn có thể gửi đến các user khác trong Domain hoặc ngoài Domain và có thể nhận mail từ các user khác. Nếu ứng dụng được cấu hình để nhận mail thì tin nhắn sẽ được gửi đến địa chỉ của ứng dụng, sau đó ứng dụng sẽ định tuyến tới Mail service và hiển thị trên webform nếu có yêu cầu Ngoài gửi nhận Mail. App Engine còn cho phép ứng dụng có thể nhận tin nhắn chat của Google Talk sử dụng giao thức XMPP bằng dịch vụ XMPP service Xữ lý ảnh cũng là một phần trong dịch vụ của App Engine bao gồm các dịch vụ xoay ảnh, cắt ảnh, hiển thị ảnh… 2.2.6. Google Accounts App Engine có khả năng tích hợp các tài khoản Google vào ứng dụng, các tài khoản này người dùng đã đăng kí trên các dịch vụ Saas như Google Mail, Google Docs và Google Calendar. Sẽ bảo mật hơn nếu chúng ta có thể sử dụng tài khoản Google để chứng thực thay vì sử dụng một hệ thống đăng nhập riêng. Tất nhiên, Chúng ta có thể sử dụng hệ thống riêng của chúng ta hoặc là một nhà cung cấp khác mà GAE có hổ trợ như là OpenID 2.2.7. Các hạn chế của Google App Engine SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 11 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường App Engine cung cấp phương thức kết nối an toàn(HTTPS) cho tên miền con của google hổ trợ là application-id.appspot.com, nhưng chưa hỗ trợ phương thức kết nối này cho tên miền khác. Google account đăng nhập luôn luôn sử dụng phương thức kết nối an toàn này Ứng dụng sử dụng dịch vụ URL Fetch để tạo kết nối HTTPS và gửi yêu cầu đến một website khác, nhưng App Engine không kiểm tra được certificate (giấy chứng nhận) sử dụng trên máy chủ từ xa. 2.3. Các thành phần của Google App Engine trong Java 2.3.1. BackEnds Backends được mô tả như là một phần phụ trợ của GAE, là một ứng dụng đặc biệt không có giới hạn thời gian yêu cầu, có bộ nhớ cao hơn và tăng băng thông CPU. BackEnds được thiết kế cho các ứng dụng cần hiệu suất nhanh hơn, cần bộ nhớ nhiều hơn, và các quá trình yêu cầu là liên tục. Nhưng phần phụ trợ này sẽ tính phí theo thời gian hoạt động 2.3.2. Storing Data Môi trường App Engine cung cấp những phạm vi chức năng dành cho việc lưu trữ dữ liệu:  App Engine Datastore cung cấp lưu trữ cơ sở dữ liệu dạng mô hình NoSql(mô hình lưu trữ cặp giá trị-khóa và hệ thống lưu trữ phân tán)  Google Cloud Sql cung cấp cơ sở dự liệu Sql dành cho ứng dụng Appengine, cơ bản phát triển trên mô hình quan hệ quen thuộc MYSQL.  Google Cloud Storage cung cấp dịch vụ lưu trữ cho các đối tượng và tập tin lên đến con số hàng tỷ byte. 2.3.2.1. Google Cloud Sql Đơn giản là đặt một thực thể MySql sống trong đám mây.Nó có tất cả khả năng và chức năng của MySql, với một vài tính năng được thêm vào và một vài tính năng không được hỗ trợ.Đây là dịch vụ Google API được Google chính thức phát triển và đưa vào sử dụng vào tháng 10 năm 2011. Google Cloud Sql rất dễ dàng cho việc sử dụng, không đòi hỏi bất cứ việc cài đặt phần mềm hay bảo trì.Điều đó rất lý tưởng cho các ứng dụng vừa và nhỏ. Một số tính năng và hạn chế:  Tính năng ‐ Khả năng lưu trữ cơ sở dữ liệu MySql trong các đám mây. ‐ Hỗ trợ dung lượng lên đến 10GB SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 12 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường ‐ Đồng bộ dữ liệu trên môi trường địa lý nhân rộng. ‐ Nhập và xuất dữ liệu bằng cách sử dụng mysqldump ‐ Khả năng tương thích với Java và Python ‐ Hỗ trợ công cụ dòng lệnh ‐ Hổ Trợ tiện ích định hướng cho các câu lệnh SQL(SQL Prompt)trong Google API Console.  Hạn chế ‐ Dung lượng bị giới hạn chỉ khoảng 10GB không thích hợp cho các cơ sở dữ liệu lớn ‐ Chức năng định nghĩa người dùng không được hỗ trợ. ‐ Không hổ trợ nhân bản cơ sở dữ liệu. ‐ Và một số hàm không được hỗ trỡ trong MySql như: LOAD DATA INFILE SELECT ... INTO OUTFILE SELECT ... INTO DUMPFILE INSTALL PLUGIN ... UNINSTALL PLUGIN CREATE FUNCTION ... LOAD_FILE() Để sử dụng được Google Cloud Sql đòi hỏi cần phải có các thông tin như sau:  Đăng ký / Đăng nhập dịch vụ Google Cloud Sql  Tạo một instance Google Cloud Sql  Cung cấp quyền truy cập cho instance từ ứng dụng App Engine 2.3.2.2. Using Google Cloud Sql with Java Bước 1: Tạo ứng dụng Appengine Bước 2: Tạo cơ sở dữ liệu và các bảng  Tạo trực tiếp cơ sở dữ liệu trên Cloud thông qua Sql Prompt với giao diện trực quan. SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 13 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường CREATE DATABASE guestbook;  Khi sử dụng cơ sở dữ liệu chỉ cần chọn Cơ sở dữ liệu đó trong danh sách menu. Hình 2.5 Giao diện Google Cloud Sql  Tạo từng thực thể theo cấu trúc Mysql rất tiện lợi cho người dùng CREATE TABLE entries (guestName VARCHAR(255), content VARCHAR(255), entryID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(entryID)); Bước 3:Tạo kết nối và truy vấn cơ sở dữ liệu hiển thị lên WebForm 2.3.2.3. Java Database Conectivity (JDBC) JDBC là viết tắt của “Java DataBase Connectivity”. Nó là một API (Application Programming Interface) có chứa một tập hợp các lớp, các giao diện Java và các thông báo lỗi ngoại lệ nằm trong cùng một đặc tả mà theo đó cả các công ty sản xuất JDBC driver cũng như các nhà phát triển JDBC đều phải tuân thủ chặt chẽ khi phát triển ứng dụng. JDBC là một chuẩn truy xuất cơ sở dữ liệu rất phổ biến. Các RDBMS (Relational Database Management Systems – Hệ quản trị cơ sở dữ liệu quan SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 14 Đại Học Mở TP.Hồ Chí Minh GVHD:TS.Lê Xuân Trường hệ) hay các nhà sản xuất phần mềm bên thứ ba phát triển các driver cho Java đều cần tuân thủ chặt chẽ đặc tả JDBC. Các nhà phát triển khác sử dụng các driver này để phát triển nên các ứng dụng có truy cập cơ sở dữ liệu: ví dụ, bạn dùng ConnectorJ JDBC driver để truy cập cơ sở dữ liệu MySQL. Vì các driver này tuân thủ chặt chẽ đặc tả JDBC nên các nhà phát triển ứng dụng JDBC có thể thay thế driver trong ứng dụng của họ bằng một cái tốt hơn mà không cần phải viết lại ứng dụng của họ. Nếu họ đã sử dụng một số API độc quyền do một số nhà sản xuất RDBMS nào đó cung cấp thì họ sẽ không thể nào thay đổi driver và/hoặc cơ sở dữ liệu mà không viết lại ứng dụng hoàn toàn. Kiến trúc JDBC: Trong Java có 2 lớp chủ yếu chịu trách nhiệm về thiết lập kết nối đến một cơ sở dữ liệu. - Lớp đầu tiên là DriverManager. Đó là một trong rất ít các lớp thực sự do JDBC API cung cấp. DriverManager chịu trách nhiệm quản lý một nhóm (pool) các driver đã đăng kí, mà thực chất là là trừu tượng hóa các chi tiết về việc sử dụng một driver, cho nên lập trình viên không cần phải làm việc trực tiếp với driver đó. - Lớp thứ 2 là một lớp JDBC Driver thực sự. Nó được cung cấp bởi các nhà sản xuất phần mềm độc lập. Lớp JDBC Driver chịu trách nhiệm thiết lập đường kết nối cơ sở dữ liệu và xử lý tất cả các giao tiếp với cơ sở dữ liệu đó. Các JDBC driver chia thành 4 kiểu khác nhau.Chúng ta sẽ chia nó ra làm 2 phần:  JDBC API (các gói java.sql & javax.sql )  Các kiểu JDBC Driver JDBC API, JDBC API có sẵn trong các gói java.sql và javax.sql. Sau đây là các lớp JDBC, các giao diện và các lỗi ngoại lệ quan trọng trong gói java. sql: 1. DriverManager - Nạp các JDBC driver vào trong bộ nhớ. Có thể sử dụng nó để mở các kết nối tới một nguồn dữ liệu. 2. Connection - Biểu thị một kết nối đến một nguồn dữ liệu. Được dùng để tạo ra các đối tượng Statement, PreparedStatement và CallableStatement. Statement - Biểu diễn một lệnh SQL tĩnh. Có thể sử dụng nó để thu về đối tượng ResultSet. 3. PreparedStatement - Một giải pháp thay thế hoạt động tốt hơn đối tượng Statement, thực thi một câu lệnh SQL đã được biên dịch trước. 4. CallableStatement – biểu diễn một thủ tục được lưu trữ. Có thể được sử dụng để thực thi các thủ tục được lưu trữ trong một RDBMS có hỗ trợ chúng. 5. ResultSet - biểu diễn một tập kết quả trong cơ sở dữ liệu tạo ra bởi việc sử dụng một câu lệnh SQL là SELECT. 6. SQLException - một lớp xử lý lỗi ngoại lệ chứa các lỗi truy cập cơ sở dữ liệu. SVTH:Trang Thành Lộc – Lý Trọng Khoa Trang 15

Tìm luận văn, tài liệu, khoá luận - 2024 © Timluanvan.net