1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ĐỒ ÁN NGHIÊN CỨU GOOGLE APP ENGINE ỨNG DỤNG XÂY DỰNG DỊCH VỤ QUẢN LÝ DANH BẠ CÁ NHÂN

75 148 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 75
Dung lượng 3,51 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giải pháp điện toán đám mây có thể được coi là một bài toán lý tưởng giảiquyết, khắc phục các điểm yếu hay các vấn đề mà nhiều doanh nghiệp hiện đanggặp phải như thiếu năng lực Công Nghệ

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

MỤC LỤC

TỔNG QUAN VỀ ĐỀ TÀI 1

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 2

1.1 Giới thiệu điện toán đám mây: 2

1.2 Google App Engine: 3

1.2.1 Google App Engine (GAE) là gì? : 3

1.2.2 Môi trường phát triển ứng dụng : 4

1.2.3 Qui trình phát triển : 7

1.2.4 Những hạn ngạch và giới hạn : 7

1.3 Google Web Toolkit : 8

1.3.1 Giới thiệu Google Web Toolkit : 8

1.3.2 Phát triển với Google Web Toolkit : 8

1.3.3 GWT RPC ( Remote Procedure Calls ) : 9

1.4 Framework Slim3 cho Google App Engine 10

CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH 13

2.1 Phát biểu bài toán : 13

2.2 Phân tích biểu đồ ca sử dụng : 14

2.2.1 Ca sử dụng : 14

2.2.2 Đặc tả ca sử dụng : 17

2.3 Biểu đồ hoạt đông : 25

2.3.1 Hoạt động quản lý danh bạ : 25

2.3.2 Hoạt động quản lý bookmark : 26

2.3.3 Hoạt động quản lý Profile : 27

2.4 Phân tích biểu đồ lớp : 28

2.4.1 Mô hình khái niệm : 28

2.4.2 Biểu đồ lớp : 29

2.5 Phân tích biểu đồ tuần tự : 30

2.5.1 Tạo mới contact : 30

2.5.2 Chỉnh sửa contact : 31

2.6 Phân tích kiến trúc : 32

2.6.1 Package UI : 33

2.6.2 Packgae Service : 34

CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ 35

3.1 Xây dựng chương trình : 35

3.1.1 Cài đặt các phần mềm cần thiết để xây dựng ứng dụng : 35

3.1.2 Khởi tạo project : 37

3.1.3 Xây dựng ứng dụng demo : 42

3.1.4 Sơ đồ khối : 51

3.2 Kết quả chương trình : 56

KẾT LUẬN 64

Trang 3

Nghiên cứu Google App Engine: Xây dựng dịch vụ quản lý danh bạ cá nhân

DANH MỤC HÌNH ẢNH

Hình 1.1: Mô hình điện toán đám mây 2

Hình 1.2 : Google App Engine 3

Hình 1.3 : Cấu trúc của một GWT RPC 10

Hình 2.1 : Biểu đồ ca sử dụng tổng quát 14

Hình 2.2 : Ca sử dụng quản lý danh bạ 15

Hình 2.3 : Ca sử dụng quản lý bookmark 16

Hình 2.4 : Ca sử dụng quản lý Profile 17

Hình 2.5 : Biểu đồ hoạt động quản lý danh bạ 25

Hình 2.6: Biểu đồ hoạt động quản lý bookmark 26

Hình 2.7 : Biểu đồ hoạt động quản lý profile 27

Hình 2.8 : Mô hình khái niệm 28

Hình 2.9 : Biểu đồ lớp 29

Hình 2.10 : Biểu đồ tuần tự tạo mới một danh bạ 30

Hình 2.11 : Biểu đồ tuần tự chỉnh sửa danh bạ 31

Hình 2.12 : Biểu đồ phân tích kiến trúc 32

Hình 2.13 : Biểu đồ cho Packgae UI 33

Hình 2.14 : Biểu đồ cho Package Service 34

Hình 3.1 : Kiểm tra phiên bản JDK 35

Hình 3.2 : Cài đặt Google Plugin cho Eclipse 36

Hình 3.3 : Cài đặt Google Plugin, nhấn OK để tiếp tục 36

Hình 3.4 : Cài đặt Google Plugin, chọn các thành phần cài đặt 36

Hình 3.5 : Khởi tạo Slim3 project 37

Hình 3.6 : Đặt tên project, packgae và chọn sử dụng GWT 38

Hình 3.7 : Cấu trúc của Project Slim3 38

Hình 3.8 : Cấu hình cho Eclipse 39

Hình 3.9 : Cấu hình cho Eclipse ( tiếp theo ) 40

Hình 3.10 : Cấu hình Eclipse để tự động cập nhật 41

Hình 3.11 : Giao diện của ứng dụng 43

Hình 3.12 : Giao diện quản lý của ứng dụng 50

Hình 3.13 : Sơ đồ khối tạo mới một nhóm danh bạ 51

Hình 3.14 : Sơ đồ khối xóa một nhóm danh bạ 52

Hình 3.15 : Sơ đồ khối tạo mới một danh bạ 53

Hình 3.16 : Sơ đồ khối chỉnh sửa một danh bạ 54

Hình 3.17 : Sơ đồ khối xóa một danh bạ 55

Hình 3.18 : Giao diện yêu cầu login nếu người dùng chưa đăng nhập 56

Hình 3.19 : Đăng nhập tài khoản với Google acount 56

Hình 3.20 : Trang chủ của ứng dụng 57

Hình 3.21 : Giao diện quản lý danh bạ 57

Hình 3.22 : Các module quản lý danh bạ 58

2

Trang 4

Nghiên cứu Google App Engine: Xây dựng dịch vụ quản lý danh bạ cá nhân

3

Trang 5

Hình 3.23 : Popup thêm mới một nhóm 59

Hình 3.24 : Thêm mới một danh bạ 60

Hình 3.25 : Chia sẻ danh bạ 60

Hình 3.26 : Gửi email đến danh bạ 61

Hình 3.27 : Chỉnh sửa danh bạ 61

Hình 3.28 : Giao diện quản lý bookmark 62

Hình 3.29 : Thêm mới một bookmark 62

Hình 3.30 : Giao diện quản lý profile 63

Hình 3.31 : Chỉnh sủa profile 63

Hình 3.32 : Upload hình ảnh để thay đổi hình đại diện 63

Hình 3.33 : Popup tìm kiếm Profile của bạn bè theo tên 64

Hình 3.34 : Popup tìm kiếm Profile của bạn bè theo email 64

Trang 6

LỜI NÓI ĐẦU

Điện toán đám mây (Cloud Computing) là một thuật ngữ được nhắc đến khánhiều trong giới công nghệ thời gian gần đây Theo các chuyên gia trong lĩnhvực Công Nghệ Thông Tin, giải pháp công nghệ này sẽ là một xu hướng trongtương lai bởi nó mang lại nhiều lợi ích cho các tổ chức và cơ quan chính phủ,đặc biệt là với mô hình của doanh nghiệp Việt Nam

Giải pháp điện toán đám mây có thể được coi là một bài toán lý tưởng giảiquyết, khắc phục các điểm yếu hay các vấn đề mà nhiều doanh nghiệp hiện đanggặp phải như thiếu năng lực Công Nghệ Thông Tin, chi phí đầu tư ban đầu hạnchế… Doanh nghiệp sẽ không cần phải có cơ sở hạ tầng nội bộ, triển khai nhanhchóng mà không phụ thuộc nhiều vào các ứng dụng trên máy, tiết giảm chi phínâng cấp ứng dụng, lượng tài nguyên sử dụng lớn, không cần tới bộ máy nhân sựcồng kềnh hay yêu cầu về nhận sự kỹ thuật trình độ cao thấp, mô hình trả thuêbao và có thể dễ dàng thay đổi qui mô khi cần thiết

Điện toán đám mây trở nên phổ biến hơn trong thời kỳ suy thoái kinh tế khingười dân và các doanh nghiệp tiết kiệm tiền bạc bằng việc sử dụng các ứngdụng trên mạng thay vì mua, cài đặt và duy trì phần mềm trên máy tính của họ Chính vì sự phổ biến và tầm quan trọng của điện toán đám mây mà tôi cùngthầy Huỳnh Công Pháp đã quyết định thực hiện một đề tài theo hướng này Qua

đó, chúng tôi sẽ nghiên cứu và tìm hiểu nền tảng Google App Engine và ứngdụng để xây dựng một dịch vụ giúp người dùng lưu trữ, quản lý và chia sẻ danh

bạ cá nhân, bookmark

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan :

1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy TS Huỳnh Công Pháp.

2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố.

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm.

Sinh viên,

Hoàng Xuân Khánh

Trang 8

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN

Trang 9

NHẬN XÉT CỦA CÁN BỘ DUYỆT

Trang 10

TỔNG QUAN VỀ ĐỀ TÀI

Bối cảnh và lý do thực hiện đề tài :

Ngày nay, điện toán đám mây đang dần trở thành một xu hướng Mọi dữliệu của người dùng đều được lưu trữ trên nền Web Dù ở bất cứ nơi đâu, sửdụng bất cứ máy tính nào có kết nối mạng, người dùng đều có thể truy cậpđến dữ liệu của mình

Google App Engine là một trong những nền tảng giúp chúng ta xây dựngcác ứng dụng trên nền điện toán đám mây của Google

Qua việc nghiên cứu nền tảng Google App Engine, em đã ứng dụng thựchiện đề tài xây dựng một dịch vụ giúp người dùng lưu trữ, quản lý và chia sẻdanh bạ cá nhân, bookmark

Phương pháp triển khai đề tài :

Nghiên cứu Google App Engine (GAE) trên ngôn ngữ lập trình Java.

Nghiên cứu Google Web Toolkit (GWT) cho việc thiết kế giao diện, phát

triển các ứng dụng AJAX và xây dựng các RPC Service thao tác trên cơ sở

dữ liệu

Nghiên cứu Slim3 Framework cho việc xây dựng cơ sở dữ liệu và giúp đẩy

nhanh quá trình phát triển ứng dụng

Kết cấu của đồ án:

Luận văn được tổ chức gồm 3 chương chính và các phần mở đầu, kết luận

Chương 1 Cơ sở lý thuyết

Trình bày các lý thuyết được áp dụng để xây dựng ứng dụng

Chương 2 Phân tích và thiết kế chương trình

Trình bày việc thiết kế và xây dựng chương trình

Chương 3 Xây dựng chương trình và kết quả

Trình bày quá trình xây dựng chương trình và minh họa kết quả

Trang 11

Chương 1 CƠ SỞ LÝ THUYẾT

Giới thiệu điện toán đám mây:

Điện toán đám mây là môi trường tính toán dựa trên internet mà ở đó tất cảphần mềm, dữ liệu, tài nguyên được cung cấp cho máy tính và các thiết bịkhác theo nhu cầu

Những Google, Microsoft, Amazone, Sun đều đã và đang phát triển những

nền tảng điện toán đám mây của riêng mình Các nền tảng điện toán đám mâylớn có thể kể đến bây giờ bao gồm:

- Google App Engine của Google:

Trang 12

Google App Engine:

Google App Engine (GAE) là gì? :

Hình 1.2 : Google App Engine

GAE là giải pháp cho vấn đề điện toán đám mây của Google Ở đó,Google cung cấp sẵn một hệ thống máy chủ điện toán đám mây, và người lậptrình sẽ viết ứng dụng của mình lên đó Ứng dụng này sẽ chạy trên đám mâycủa Google

GAE cho phép bạn chạy các ứng dụng Web trên nền tảng của Google Cácứng dụng App Engine rất dễ dàng để xây dựng, bảo trì và dễ dàng quản lí lưulượng cũng như dung lượng lưu trữ dữ liệu

Có thể sử dụng các tên miềng riêng (www.example.com) hoặc sử dụng tên miền miễn phí của Google với đuôi appspot.com

GAE hỗ trợ 2 môi trường phát triển là Java environment và Pythonenvironment

Với App Engine‘s Java runtime environment, ta có thể xây dựng các ứngdụng sử dụng dựa trên các chuẩn kỹ thuật của Java, bao gồm JVM, Javaservlet, hỗ trợ ngôn ngữ lập trình Java, cũng như các ngôn ngữ sử dụng trìnhbiên dịch và thông dịch của Java như Java Script, Ruby

App Engine cũng có một môi trường thực thi Python chuyên dụng, baogồm một trình thông dịch nhanh Python và các thư viện chuẩn Python Môitrường thực thi Java và Python được xây dựng để đảm bảo các ứng dụngđược chạy nhanh, an toàn và không bị sự can thiệp từ các ứng dụng khác trên

hệ thống

Trang 13

Với App Engine, bạn sẽ chỉ trả cho những gì bạn sử dụng, không có chi phí

thiết lập cũng như chi phí định kì Các nguồn tài nguyên mà bạn sử dụng, nhưdung lượng lưu trữ và băng thông, được đo bằng GB và thanh toán với mứcphí cạnh tranh Bạn sẽ kiểm soát được số tiền tối đa cho nguồn tài nguyênứng dụng của bạn có thể sử dụng, vì vậy nó luôn nằm trong khả năng ngânsách

Bắt đầu với App Engine là hoàn toàn miễn phí, với 500 MB dung lượnglưu trữ, CPU và băng thông đủ cung cấp cho 5 triệu lượt truy cập mỗi tháng.Khi bạn kích hoạt chức năng thanh toán, giới hạn miễn phí sẽ được tăng lên

và sẽ chỉ phải trả cho tài nguyên mà bạn sử dụng vượt cấp độ miễn phí

Môi trường phát triển ứng dụng :

1 Các tính năng của GAE :

Với GAE, sẽ dễ dàng hơn để xây dựng các ứng dụng chạy ổn định, thậmchí dưới tải nặng và số lượng lớn dữ liệu App Engine bao gồm các tính năngsau:

- Dynamic web serving : server web động, hỗ trợ đầy đủ các công nghệWeb phổ biến

- Sự lưu trữ bền vững, hỗ trợ các lệnh truy vấn, sắp xếp, giao dịch

- Khả năng tự động mở rộng và cân bằng tải

- Các API để xác thực tài khoản người dùng, gửi email bằng tài khoảnGoogle…

- Một môi trường phát triển cục bộ với đầy đủ các tính năng mô phỏngGAE trên máy tính của bạn

- Task queue : hàng đợi nhiệm vụ, để thực hiện các công việc khác,ngoài web request

- Scheduled task : lịch công việc, cho các sự kiện trigger vào những thờiđiểm và thời gian định sẵn

Ứng dụng của bạn có thể chạy trên hai môi trường thực thi là Java vàPython Mỗi môi trường cung cấp các giao thức chuẩn và các công nghệ phổbiến để phát triển các ứng dụng Web

2 Sandbox :

Trang 14

Các ứng dụng trên App Engine thực thi trong một môi trường bảo mật,

được gọi là Sandbox Sandbox cung cấp các quyền truy cập rất hạn chế cho

các hệ điều hành ở lớp dưới Những hạn chế này cho phép App Engine có thểphân phối các web request cho ứng dụng trên nhiều máy chủ, khởi động vàdừng các server để đáp ứng nhu cầu giao thông

3 Java runtime environment:

Ta có thể phát triển các ứng dụng cho môi trường Java runtime bằng cách

sử dụng các công cụ phát triển Web và các hàm API Java chuẩn Ứng dụng sẽ

tương tác với môi trường qua Java Servlet, và có thể sử dụng các kỹ thuật web phổ biến như JSP ( Java Server Page ).

Môi trường thực thi Java ( JRE ) sử dụng Java 6 App Engine Java SDK hỗ

trợ phát triển các ứng dụng trên cả Java 5 và 6

Môi trường này bao gồm nền tảng J2SE runtime environment 6 và các thưviện Những giới hạn của môi trường sandbox cũng được thực hiện trongJVM Một ứng dụng có thể sử dụng bất cứ JVM bytecode hay các thư việnnào, miễn là không vượt quá giới hạn của sandbox Ví dụ như một mãbytecode cố gắng mở một socket hay ghi vào một file hệ thống sẽ tạo ra các

- Email service : sử dụng Java Mail API.

- URL fetch servive : sử dụng java.net HTTP API.

4 Datastore :

App Engine cung cấp một dịch vụ lưu trữ dữ liệu phân tán, với các cơ chế

truy vấn và giao dịch Cũng như các máy chủ web phân tán phát triển theođường truyền tải, kho dữ liệu phân tán cũng sẽ phát triển theo dữ liệu của bạn

App Engine Datastore không giống với các cơ sở dữ liệu quan hệ truyền

thống, mà là kiểu cở sở dữ liệu hướng đối tượng Các đối tượng dữ liệu (dataobject) hay thực thể (entities) sẽ thuộc về một kiểu và có tập các thuộc tính.Các truy vấn trích xuất dữ liệu qua bộ lọc kiểu và sắp xếp theo giá trị của cácthuộc tính Giá trị của các thuộc tính có thể là bất cứ kiểu dữ liệu nào được

hỗ trợ

Trang 15

Datastore thực hiện các giao dịch bằng cách sử dụng các nhóm thực thể.Một giao dịch sẽ thao tác trên các thực thể của một nhóm duy nhất Các thựcthể của cùng một nhóm được lưu trữ cùng với nhau để thực hiện hiệu quả cácgiao dịch Ứng dụng có thể gán một thực thể vào một nhóm ngay khi khởitạo.

User API cũng có thể nhận biết người dùng hiện thời là quản trị viên(admin) của ứng dụng Điều này làm cho nó dễ dàng thực hiện quyền quản trị

của trang Web

6 App Engine service :

App Engine cung cấp rất nhiều dịch vụ cho phép bạn thực hiện các hoạtđộng phổ biến khi quản lý ứng dụng Các API dưới đây được cung cấp đểthực hiện các dịch vụ này :

- URL fetch service: dùng để truy xuất tài nguyên trên internet (dịch vụ

web hay các dữ liệu khác) sử dụng nền tảng tốc độ cao của Google

- Mail service : ứng dụng có thể gửi email bằng dịch vụ mail trên nền

tảng của Google

- Memcache : tạo ra vùng nhớ đệm có thể truy xuất từ nhiều phiên bản

của ứng dụng để nâng cao hiệu suất Memcache hữu dụng đối với các

dữ liệu không cần lưu trữ lâu dài và các tính năng giao dịch củadatastore như các dữ liệu tạm, dữ liệu được sao chép từ data store đểtruy xuất nhanh hơn

- Image manipulation : dịch vụ này cho phép ứng dụng xử lí hình ảnh, ta

có thể resize, crop, rotate và chuyển đổi giữa các định dạng JPEG vàPNG

7 Scheduled task và Task queues :

Trang 16

Ứng dụng có thể thực hiện các công việc khác, ngoài nhiệm vụ đáp ứngcác web request Ứng dụng của bạn có thể thực hiện các nhiệm vụ theo mộtlịch trình mà bạn cấu hình, hằng ngày hoặc hằng giờ Ứng dụng cũng có thểthực hiện nhiệm vụ được thêm vào hàng đợi của nó, chẳng hạn như một côngviệc nền được tạo ra khi xử lí một yêu cầu.

Scheduled tasks còn gọi là “cron jobs”, xử lí bởi dịch vụ Cron

Task queue : hiện đang ở bản thư nghiệm và chỉ có trên môi trường thựcthi Python, phiên bản cho Java sẽ được phát hành trong tương lai gần

Qui trình phát triển :

App Engine SDK cho Java và Python bao gồm ứng dụng Web Server, giả

lập tất cả các dịch vụ của App Engine trên máy cục bộ SDK bao gồm tất cảcác API và thư viện của App Engine Web Server cũng giả lập môi trườngbảo mật sandbox

SDK cũng gồm công cụ để upload ứng dụng của bạn lên App Engine.Khi bạn xây dựng một phiên bản mới của một ứng dụng đang chạy trênApp Engine, bạn có thể tải ứng dụng đó lên như là một phiên bản mới Phiênbản cũ sẽ tiếp tục phục vụ người dùng cho đến khi bạn chuyển lên phiên bảnmới Bạn có thể thử nghiệm phiên bản mới trên App Engine khi phiên bản cũvẫn chạy

Các SDK có thể chạy trên nền Java 5 hoặc 6 Nếu sử dụng môi trường pháttriển Eclipse, ta có thể sử dụng Google Plugin để tạo, thử nghiệm và tải ứngdụng lên App Engine SDK này cũng hỗ trợ công cụ dòng lệnh

Administration Console : sử dụng giao diện web để quản lý ứng dụng trênApp Engine Ta có thể đăng kí ứng dụng mới, cấu hình tên miền, thay đổiphiên bản của ứng dụng, kiểm tra nhật kí truy cập và nhật kí lỗi, duyệt quakho dữ liệu của ứng dụng

Những hạn ngạch và giới hạn :

Không chỉ là việc tạo ra một ứng dụng App Engine là dễ dàng, hoàn toànmiễn phí Bạn còn có thể tạo một tài khoản và công bố các ứng dụng cho mọingười có thể sử dụng ngay không mất phí, và không có nghĩa vụ Một ứng

dụng trên một tài khoản miễn phí có thể sử dụng lên đến 500MB dung lượng

lưu trữ và lên đến 5 triệu lượt xem một tháng Khi bạn muốn nhiều hơn, bạn

có thể kích hoạt chức năng thanh toán, thiết lập một ngân sách tối đa hằngngày, và phân bổ ngân sách của bạn cho mỗi tài nguyên theo nhu cầu củabạn

Trang 17

Mỗi tài khoản có thể đăng kí tối đa 10 ứng dụng.

Mỗi ứng dụng sẽ được cung cấp một nguồn tài nguyên giới hạn, gọi là hạnngạch (quota) Một hạn ngạch sẽ xác định có bao nhiêu tài nguyên mà ứngdụng có thể sử dụng Trong tương lai gần, bạn có thể điều chỉnh các giới hạnnày bằng cách mua các nguồn tài nguyên bổ sung

Một vài tính năng áp đặt giới hạn không liên quan đến hạn ngạch, để bảo

vệ sự ổn định của hệ thống Ví dụ khi một ứng dụng được gọi để đáp ứng một

web request thì nó phải đáp ứng trong thời gian 30s Nếu không, tiến trình sẽ

bị chấm dứt và ứng dụng trả về một mã lỗi cho người sử dụng (time out).Thời gian chờ có thể thay đổi, là ngắn hơn nếu một yêu cầu thường xuyênvượt quá thời gian chờ để bảo tồn tài nguyên

1.1 Google Web Toolkit :

Giới thiệu Google Web Toolkit :

Google Web Toolkit (GWT) là bộ công cụ hỗ trợ cho việc xây dựng và tối

ưu các ứng dụng phức tạp trên trình duyệt Mục tiêu của nó là cho phép pháttriển các ứng dụng Web có hiệu suất cao mà không yêu cầu người phát triểnphải là chuyên gia trong browser quirk, XMLHttpRequest và Java Script.GWT được sử dụng trong rất nhiều sản phẩm của Google, bao gồm cảGoogle Wave và các phiên bản mới của AdWords GWT là mã nguồn mở,hoàn toàn miễn phí và được sử dụng bởi hàng ngàn nhà phát triển trên thếgiới

Google Web Toolkit (GWT) là một giải pháp khá toàn diện cho Javadeveloper để xây dựng các ứng dụng AJAX mà không cần phải biết quá nhiềungôn ngữ, đồng thời lại có thể debug lỗi - một lợi thế rất lớn vì bản thânJavascript không có chế độ debug, khiến cho rất khó khăn để xác định được

vị trí lỗi trong đống code Java Script

GWT cho phép bạn thoát khỏi ma trận các công nghệ để viết các ứng dụngAJAX quá khó khăn và nhiều lỗi Với GWT, bạn có thể phát triển và kiểm tralỗi các ứng dụng AJAX bằng ngôn ngữ Java, sử dụng các công cụ phát triểnJava tuỳ theo ý thích Khi bạn triển khai ứng dụng của mình, bộ biên dịch củaGWT sẽ dịch ứng dụng Java của bạn sang JavaScript và HTML

Phát triển với Google Web Toolkit :

Write : GWT cung cấp tập các Java API và các Widget, cho phép viết các

ứng dụng AJAX bằng Java và sau đó biên dịch mã nguồn sang Java Script

Trang 18

được tối ưu cao Ứng đụng đó có thể chạy trên nhiều trình duyệt khác nhau,gồm cả các trình duyệt di động trên Android và iPhone.

Debug : Ta có thể debug các ứng dụng AJAX trên IDE ưa thích (như

Eclipse) như một ứng dụng desktop, và trong trình duyệt ưa thích của mìnhnhư làm việc với JavaScript

Optimize : Google Web Toolkit bao gồm hai công cụ mạnh để tạo các ứng

dụng web tối ưu hóa Trình biên dịch GWT thực hiện tối ưu hóa toàn diệntrên cơ sở mã của bạn bằng phương pháp in-lining, loại các mã không cầnthiết, tối ưu hóa chuỗi… Bằng cách thiết lập các điểm chia trong mã nguồn,

nó có thể phân mảnh việc tải về các mã Java Script, giúp trang web khởi độngnhanh hơn

Run : Khi bạn đã sẵn sàng để triển khai ứng dụng, GWT sẽ biên dịch mã

nguồn Java ra các mã Java script được tối ưu hóa và độc lập, có thể chạy trênhầu hết các trình duyêt, kể cả các trình duyệt di động trên Iphone và Android

GWT RPC ( Remote Procedure Calls ) :

GWT RPC framework giúp cho việc trao đổi các đối tượng Java object qua HTTP giữa các thành phần máy khách (client) và máy chủ (server) trở nên dễ

dàng hơn

Các mã phía máy chủ được gọi từ các máy khách được gọi là các dịch vụ

(service) Việc cài đặt một dịch vụ GWT RPC dựa trên kiến trúc servlet phổ

biến của Java

Trong mã phía máy khách, bạn sẽ sử dụng một lớp proxy tự động để thựchiện lời gọi tới dịch vụ

Khi thiết lập GWT RPC, bạn sẽ tập trung vào ba thành phấn liên quan đếnthủ tục gọi chạy trên các máy chủ từ xa :

Trang 19

Hình 1.3 : Cấu trúc của một GWT RPC

Để định nghĩa một RPC interface, ta phải xây dựng ba thành phần :

từ RemoteService và khai báo tất các phương thức của dịch vụ

cài đặt interface mà bạn đã tạo ở trên

dịch vụ của bạn để được gọi là từ phía máy khách

1.2 Framework Slim3 cho Google App Engine

Slim3 là một full-stack framework MVC mã nguồn mở được tối ưu hóacho Google App Engine / Java, và bạn cũng có thể sử dụng Slim3 như mộtframework về cơ sở dữ liệu

Trang 20

Các thành phần chính của Slim3 :

1 Global Transaction :

App Engine chỉ hỗ trợ các phiên truy vấn trên một nhóm thực thể duy nhất

Do đó khi ta cần cập nhật đồng thời trên nhiều nhóm thực thể thì sẽ gặp nhiềukhó khăn

Slim3 khắc phục nhược điềm đó, nó hỗ trợ Global Transaction giữa cácnhóm thực thể

2 Faster than JDO/JPA :

Slim3 sử dụng các hàm Datastore mức thấp, do đó nó nhanh hơn JDP/JPA.Slim3 tạo một sơ đồ logic giữa entity và model trong tập tin meta data.Meta data được tạo một cách tự động bởi Annotation Processing Tool khibiên dịch

Slim3 không cần tốn thời gian thực thi để ánh xạ giữa entity và model Do

đó nó nhanh hơn JDO/JPA

Để truy xuất 10,000 entity, Slim3 chạy nhanh gấp 3 lần JDO/JPA

3 Fast spin-up :

4 Hot-reloading :

Slim3 hỗ trợ Hot Reloading

Hot-reloading nghĩa là một phiên bản mới của một class sẽ được nạp lạimột cách tự động Do đó, khi ta thay đổi source code, ta có thể xem kết quảngay trên trình duyệt mà không cần phải khởi động lại trình duyệt đó

5 Type safe query :

Slim3 hỗ trợ type-safe query ( truy vấn an toàn )

Ví dụ truy vần với Slim3 :

EmployeeMeta e = EmployeeMeta.get();

List<Employee> list = Datastore.query(e)

filter(e.salary.greaterThan(5000), e.job.equal("ANALYST")) .sort(e.salary.asc)

asList();

Trang 21

Tương đương với câu lệnh truy vấn trong JDO/JPA :

Vì JDO/JPA sử dụng lệnh truy vấn dựa trên chuỗi kí tự, do đó giả sử ta đổi

tên thuộc tính salary, thì sẽ không có lỗi nào được tra về.

Còn với type-safe query, nếu thuộc tính salary không còn tồn tại, trình biên dịch sẽ báo lỗi salary không tồn tại.

PersistenceManager pm = PMF.get().getPersistenceManager();try {

Query query = pm.newQuery(Employee.class);

query.setFilter("salary > :salary && job == :job");

Trang 22

Chương 2 PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG

TRÌNH

2.1 Phát biểu bài toán :

Dựa vào nền tảng Google App Engine, ta xây dựng một dịch vụ giúp người

dùng lưu trữ, quản lý, chia sẻ danh bạ, bookmark Mỗi người cũng sẽ có mộtprofile riêng để quản lý thông tin cá nhân của mình

Nhờ vào hệ thống Google Account, ta không cần phải tạo một hệ thống

người dùng riêng cho dịch vụ Mỗi người đều có thể sử dụng tài khoảnGoogle của mình để đăng nhập, sử dụng dịch vụ Và cũng sử dụng chính tàikhoản này đê gửi email đến mọi người trong danh bạ, cũng như chia sẻ danh

bạ, bookmark của mình cho bạn bè

Mỗi người sử dụng dịch vụ cũng có trang profile riêng, lưu trữ thông tin cá

nhân của mình, như địa chỉ email, số điện thoại, … Họ có thể chia sẻ thôngtin này cho bạn bè, cũng như ta có thể tìm kiếm profile của bạn bè mình, rồiđưa vào danh bạ cá nhân

Ở lần đầu tiên sử dụng dịch vụ, hệ thống sẽ tạo cho người dùng các nhómmặc định, các nhóm này là không thể xóa :

- Contact :

All : chứa tất cả thành viên trong danh bạ.

Favorite : chứa các thành viên được người dùng chọn vào nhóm ưa

thích

Other : Nhóm đặc biệt, người dùng có thể thêm thành viên vào

nhóm này, hoặc nếu một nhóm bị xóa thì các thành viên thuộcnhóm đó sẽ được đưa vào nhóm Other

- Bookmark :

All : chứa tất cả các boomark.

Other : Nhóm đặc biệt,người dùng có thể thêm bookmark vào

nhóm này

Trang 24

2 Ca sử dụng quản lý danh bạ :

User

Create Group Contacts

Edit Group Contacts

Delete Group Contacts

Create New Contact

Edit Contact

Share contact

Send email to contact

View list of Contacts

View list of Group

- Trên nhóm danh bạ, người dùng có thể thêm, sửa, xóa một nhóm

- Trên danh bạ, người dùng có thể thêm, sửa, xóa danh bạ Chia sẽ mộtdanh bạ cho bạn bè, gửi email đến danh bạ, đưa một danh bạ vào nhómyêu thích (favorite)

Trang 25

- Với nhóm bookmark, người dùng có thể thêm, sửa, xóa một nhóm.

- Với bookmark, người dùng có thể thêm, chỉnh sửa, xóa một bookmarkcũng như chia sẻ một bookmark cho bạn bè

Trang 26

4 Ca sử dụng quản lý Profile :

Hình 2.4 : Ca sử dụng quản lý Profile

Mô tả :

- Tại giao diện quản lý Profile, người dùng có thể thực hiện các thao tác

để quản lý thông tin cá nhân

- Người dùng có thể cập nhật Profile, chia sẻ thông tin cá nhân với bạn bè,cũng như tìm kiếm Profile của bạn bè (những người cũng sử dụng dịch vụ)

và thêm vào danh bạ của mình

Trang 27

trình tạo nhóm thành công, nếu không sẽ thông báo lỗi cho ngườidùng.

ii Kịch bản :

1/ Người dùng đăng nhập vào

dịch vụ3/ Chọn chức năng quản lý

danh bạ4/ Chọn chức năng tạo mới

7/ Kiểm tra tên nhóm có hợp

lệ hay không

8/ Nếu tên nhóm hợp lệ,thông báo thành công

2/ Đăng nhập không thànhcông, thông báo lỗi

8/ Tên nhóm không hợp lệ,thông báo lỗi đến ngườidùng

b Edit, Delete Group Contact :

i Mô tả :

Người dùng đăng nhập vào dịch vụ, chọn phần quản lý danh bạ.Người dùng xem danh sách các nhóm danh bạ hiện thời, chọn mộtnhóm rồi chọn chức nằng chỉnh sửa để thay đôi tên nhóm, hoặc xóanhóm khỏi danh sách Hệ thống sẻ xác thực tên nhóm có hợp lệkhông

ii Kịch bản :

Trang 28

Hành đông của tác nhân Hành động của hệ thống1/ Người dùng đăng nhập vào

dịch vụ3/ Chọn chức năng quản lý danh

bạ4/ Xem danh sách các nhóm,

chọn một nhóm để chỉnhsửa

6/ Nhập tên nhóm cần thay đổi

2/ Xác thực ID và mật khẩu

5/ Cửa sổ Popup hiện ra đểngười dùng nhập tênnhóm mới

7/ Kiểm tra tên nhóm có hợp

lệ hay không

8/ Nếu tên nhóm hợp lệ,thông báo chỉnh sửa thànhcông

6/ Chọn chức năng xóa nhóm

khỏi danh sách

2/ Đăng nhập không thànhcông, thông báo lỗi

7/ Xóa nhóm khỏi danh sách,đưa các danh bạ trong nhómvào nhóm Other

c Create new Contact :

i Mô tả :

Người dùng đăng nhập vào dịch vụ, chọn phần quản lý danh bạ.Chọn chức năng tạo mới một danh bạ.Một cửa sổ Popup hiện ra đểngười dùng nhập thông tin cho danh bạ Hệ thống sẽ xác thựcthông tin danh bạ có hợp lệ hay không Nếu hợp lệ, thì quá trìnhtạo danh bạ thành công, nếu không sẽ thông báo lỗi cho ngườidùng

ii Kịch bản :

Trang 29

Hành đông của tác nhân Hành động của hệ thống1/ Người dùng đăng nhập vào

dịch vụ3/ Chọn chức năng quản lý

danh bạ4/ Chọn chức năng tạo mới

7/ Kiểm tra thông tin danh bạ

có hợp lệ không

8/ Nếu thông tin hợp lệ, thôngbáo tạo thành công

2/ Đăng nhập không thànhcông, thông báo lỗi

8/ Thông tin danh bạ khônghợp lệ, thông báo lỗi đếnngười dùng, yêu cầu nhập lại

d Edit, Delete Contact :

i Mô tả :

Người dùng đăng nhập vào dịch vụ, chọn phần quản lý danh bạ.Chọn nhóm danh bạ, chọn danh bạ cần chỉnh sửa Một của sổPopup hiện ra hiên thị thông tin hiện tại của danh bạ, người dùngchỉnh sửa các thông tin

ii Kịch bản :

Trang 30

Hành đông của tác nhân Hành động của hệ thống1/ Người dùng đăng nhập vào

dịch vụ3/ Chọn chức năng quản lý danh

bạ4/ Xem danh sách các nhóm,

chọn nhóm, chọn thànhviên để chỉnh sửa

6/ Người dùng nhập thông tin

mới vào rồi bấm cập nhật

7/ Xóa danh bạ ra khỏi nhóm

Trang 31

Hành đông của tác nhân Hành động của hệ thống1/ Người dùng đăng nhập vào

dịch vụ3/ Chọn chức năng quản lý

Profile4/ Bấm vào nút Edit để bắt đầu

chỉnh sửa

6/ Người dùng thay đổi các

thông tin theo ý mình, rồi

nhấn nút cập nhật

2/ Xác thực ID và mật khẩu

5/ Cửa sổ Popup hiện ra, hiểnthị thông tin hiện tại củaProfile

7/ Hệ thống kiểm tra cácthông tin có hợp lệ

8/ Nếu các thông tin hợp lệ,

hệ thống cập nhật lạiProfile cho người dùng vàthông báo thành công

2/ Đăng nhập không thànhcông, thông báo lỗi

Trang 32

Hành đông của tác nhân Hành động của hệ thống1/ Người dùng đăng nhập vào

dịch vụ3/ Chọn chức năng quản lý

Profile4/ Bấm vào nút Share để bắt

đầu chia sẻ Profile

6/ Người dùng nhập vào email,

rồi bấm Share

2/ Xác thực ID và mật khẩu

5/ Cửa sổ Popup hiện ra đểngười dùng nhập vàoemail của người cần chiasẻ

7/ Hệ thống kiểm tra cácemail có hợp lệ không.8/ Nếu các email hợp lệ, hệthống gửi email có chứaProfile của người dùng vàthông báo thành công

2/ Đăng nhập không thànhcông, thông báo lỗi

8/ Email không hợp lệ, thôngbáo lỗi và yêu cầu ngườidùng nhập lại

c Add friend profile to contact :

i Mô tả :

Người dùng đăng nhập vào hệ thống, chọn phần quản lý Profile.Ngươi dùng chọn chức năng tìm kiếm Profile Một cửa sổ Popupngười dùng có thể chọn tìm kiếm theo tên hoặc email Người dùngnhập vào tên (hoặc email) của bạn bè, rồi nhấn nút tìm kiếm Hệthống sẽ hiển thị danh sách tìm được Người dùng xem danh sách,

cứ mỗi lần người dùng chọn một người trong danh sách, thông tinđầy đủ của người đó sẽ được hiển thị Người dùng chọn đúng bạn

bè mình rồi bấm nút Add để thêm vào danh bạ

Trang 33

ii Kịch bản :

1/ Người dùng đăng nhập vào

6/ Người chọn tìm kiếm theo

tên hoặc email, nhập vào từ

9/ Hệ thống hiển thị thông tincủa người được chọn.11/ Thông báo thành công.2/ Đăng nhập không thànhcông, thông báo lỗi

7/ Không có kết quả nào,thông báo lỗi và yêu cầu nhậplại từ khóa

Trang 34

2.3 Biểu đồ hoạt đông :

Hoạt động quản lý danh bạ :

Hình 2.5 : Biểu đồ hoạt động quản lý danh bạ

Trang 35

Hoạt động quản lý bookmark :

Hình 2.6: Biểu đồ hoạt động quản lý bookmark

Trang 36

Hoạt động quản lý Profile :

Hình 2.7 : Biểu đồ hoạt động quản lý profile

Trang 37

2.4 Phân tích biểu đồ lớp :

Mô hình khái niệm :

Hình 2.8 : Mô hình khái niệm

Ngày đăng: 07/05/2019, 00:41

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w