SlideShare a Scribd company logo
1 of 44
Download to read offline
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI :
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
Sinh viên : Hoàng Xuân Khánh
Lớp : 06T4
Cán bộ hướng dẫn : TS. Huỳnh Công Pháp.
Đà Nẵng-06/2011
MỤC LỤC
TỔNG QUAN VỀ ĐỀ TÀI...................................................................................
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT......................................................................
Giới thiệu điện toán đám mây:...........................................................................2
Google App Engine:...........................................................................................3
1.1.1 Google App Engine (GAE) là gì? :.............................................................3
1.1.2 Môi trường phát triển ứng dụng :...............................................................4
1.1.3 Qui trình phát triển :...................................................................................7
1.1.4 Những hạn ngạch và giới hạn :...................................................................7
1.2 Google Web Toolkit :.....................................................................................8
1.2.1 Giới thiệu Google Web Toolkit :.................................................................8
1.2.2 Phát triển với Google Web Toolkit :...........................................................8
1.2.3 GWT RPC ( Remote Procedure Calls ) :....................................................9
1.3 Framework Slim3 cho Google App Engine................................................10
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 :......................................................................................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 :...................................................................................30
2.6 Phân tích kiến trúc :.....................................................................................31
2.6.1 Package UI :..............................................................................................32
2.6.2 Packgae Service :......................................................................................33
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ.......................
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
51
3.2 Kết quả chương trình :.................................................................................56
KẾT LUẬN 64
[1] Kyle Roche and Jeff Douglas. Beginning Java Google App Engine...........65
[2] TS Nguyễn Thanh Bình. Phân tích và thiết kế hệ thống hướng đối tượng. 65
Nghiên cứu Google App Engine: Xây dựng dịch vụ quản lý danh bạ cá nhân
[3] PGS.TS Phan Huy Khánh. Quản lý dự án phần mềm.................................65
[4] Jacque Arsac. Nhập môn lập trình. Nguyên bản : Premières lecons de
programmation. Trung tâm hệ thống Thông tin ISC, Hà nội 1991, 241 tr............65
[5] Eugene Ciurana. Developing with Google App Engine .............................65
[6] Google App Engine. http://code.google.com/..............................................65
[7] Slim3. http://sites.google.com/site/slim3appengine/....................................65
DANH MỤC HÌNH ẢNH
HÌNH 1.1: MÔ HÌNH ĐIỆN TOÁN ĐÁM MÂY...............................................
HÌNH 1.2 : GOOGLE APP ENGINE..................................................................
HÌNH 1.3 : CẤU TRÚC CỦA MỘT GWT RPC..............................................
HÌNH 2.1 : BIỂU ĐỒ CA SỬ DỤNG TỔNG QUÁT........................................
HÌNH 2.2 : CA SỬ DỤNG QUẢN LÝ DANH BẠ...........................................
HÌNH 2.3 : CA SỬ DỤNG QUẢN LÝ BOOKMARK.....................................
HÌNH 2.4 : CA SỬ DỤNG QUẢN LÝ PROFILE............................................
HÌNH 2.5 : BIỂU ĐỒ HOẠT ĐỘNG QUẢN LÝ DANH BẠ.........................
HÌNH 2.6: BIỂU ĐỒ HOẠT ĐỘNG QUẢN LÝ BOOKMARK....................
HÌNH 2.7 : BIỂU ĐỒ HOẠT ĐỘNG QUẢN LÝ PROFILE..........................
HÌNH 2.8 : MÔ HÌNH KHÁI NIỆM.................................................................
HÌNH 2.9 : BIỂU ĐỒ LỚP..................................................................................
HÌNH 2.10 : BIỂU ĐỒ TUẦN TỰ TẠO MỚI MỘT DANH BẠ....................
HÌNH 2.11 : BIỂU ĐỒ TUẦN TỰ CHỈNH SỬA DANH BẠ..........................
HÌNH 2.12 : BIỂU ĐỒ PHÂN TÍCH KIẾN TRÚC.........................................
HÌNH 2.13 : BIỂU ĐỒ CHO PACKGAE UI....................................................
HÌNH 2.14 : BIỂU ĐỒ CHO PACKAGE SERVICE.......................................
HÌNH 3.1 : KIỂM TRA PHIÊN BẢN JDK.......................................................
HÌNH 3.2 : CÀI ĐẶT GOOGLE PLUGIN CHO ECLIPSE..........................
HÌNH 3.3 : CÀI ĐẶT GOOGLE PLUGIN, NHẤN OK ĐỂ TIẾP TỤC........
HÌNH 3.4 : CÀI ĐẶT GOOGLE PLUGIN, CHỌN CÁC THÀNH PHẦN
CÀI ĐẶT.....................................................................................
HÌNH 3.5 : KHỞI TẠO SLIM3 PROJECT......................................................
HÌNH 3.6 : ĐẶT TÊN PROJECT, PACKGAE VÀ CHỌN SỬ DỤNG
GWT.............................................................................................
2
Nghiên cứu Google App Engine: Xây dựng dịch vụ quản lý danh bạ cá nhân
HÌNH 3.7 : CẤU TRÚC CỦA PROJECT SLIM3............................................
HÌNH 3.8 : CẤU HÌNH CHO ECLIPSE...........................................................
HÌNH 3.9 : CẤU HÌNH CHO ECLIPSE ( TIẾP THEO )...............................
HÌNH 3.10 : CẤU HÌNH ECLIPSE ĐỂ TỰ ĐỘNG CẬP NHẬT..................
HÌNH 3.11 : GIAO DIỆN CỦA ỨNG DỤNG...................................................
HÌNH 3.12 : GIAO DIỆN QUẢN LÝ CỦA ỨNG DỤNG...............................
HÌNH 3.13 : SƠ ĐỒ KHỐI TẠO MỚI MỘT NHÓM DANH BẠ.................
HÌNH 3.14 : SƠ ĐỒ KHỐI XÓA MỘT NHÓM DANH BẠ...........................
HÌNH 3.15 : SƠ ĐỒ KHỐI TẠO MỚI MỘT DANH BẠ...............................
HÌNH 3.16 : SƠ ĐỒ KHỐI CHỈNH SỬA MỘT DANH BẠ...........................
HÌNH 3.17 : SƠ ĐỒ KHỐI XÓA MỘT DANH BẠ.........................................
HÌNH 3.18 : GIAO DIỆN YÊU CẦU LOGIN NẾU NGƯỜI DÙNG
CHƯA ĐĂNG NHẬP.................................................................
HÌNH 3.19 : ĐĂNG NHẬP TÀI KHOẢN VỚI GOOGLE ACOUNT...........
HÌNH 3.20 : TRANG CHỦ CỦA ỨNG DỤNG................................................
HÌNH 3.21 : GIAO DIỆN QUẢN LÝ DANH BẠ............................................
HÌNH 3.22 : CÁC MODULE QUẢN LÝ DANH BẠ......................................
HÌNH 3.23 : POPUPTHÊM MỚI MỘT NHÓM.............................................
HÌNH 3.24 : THÊM MỚI MỘT DANH BẠ......................................................
HÌNH 3.25 : CHIA SẺ DANH BẠ......................................................................
HÌNH 3.26 : GỬI EMAIL ĐẾN DANH BẠ......................................................
HÌNH 3.27 : CHỈNH SỬA DANH BẠ...............................................................
HÌNH 3.28 : GIAO DIỆN QUẢN LÝ BOOKMARK......................................
HÌNH 3.29 : THÊM MỚI MỘT BOOKMARK...............................................
HÌNH 3.30 : GIAO DIỆN QUẢN LÝ PROFILE.............................................
HÌNH 3.31 : CHỈNH SỦA PROFILE................................................................
HÌNH 3.32 : UPLOAD HÌNH ẢNH ĐỂ THAY ĐỔI HÌNH ĐẠI DIỆN........
HÌNH 3.33 : POPUPTÌM KIẾM PROFILE CỦA BẠN BÈ THEO TÊN.....
HÌNH 3.34 : POPUPTÌM KIẾM PROFILE CỦA BẠN BÈ THEO
EMAIL.........................................................................................
3
Hình 3.23 : Popup thêm mới một nhóm..................Error: Reference source not found
Hình 3.24 : Thêm mới một danh bạ........................Error: Reference source not found
Hình 3.25 : Chia sẻ danh bạ....................................Error: Reference source not found
Hình 3.26 : Gửi email đến danh bạ.........................Error: Reference source not found
Hình 3.27 : Chỉnh sửa danh bạ................................Error: Reference source not found
Hình 3.28 : Giao diện quản lý bookmark................Error: Reference source not found
Hình 3.29 : Thêm mới một bookmark.....................Error: Reference source not found
Hình 3.30 : Giao diện quản lý profile.....................Error: Reference source not found
Hình 3.31 : Chỉnh sủa profile..................................Error: Reference source not found
Hình 3.32 : Upload hình ảnh để thay đổi hình đại diện...Error: Reference source not
found
Hình 3.33 : Popup tìm kiếm Profile của bạn bè theo tên.Error: Reference source not
found
Hình 3.34 : Popup tìm kiếm Profile của bạn bè theo email...Error: Reference source
not found
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ĩnh
vực Công Nghệ Thông Tin, giải pháp công nghệ này sẽ là một xu hướng trong
tươ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ải
quyết, khắc phục các điểm yếu hay các vấn đề mà nhiều doanh nghiệp hiện đang
gặp phải như thiếu năng lực Công Nghệ Thông Tin, chi phí đầu tư ban đầu hạn
chế… Doanh nghiệp sẽ không cần phải có cơ sở hạ tầng nội bộ, triển khai nhanh
chó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ế khi
ngườ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 ứng
dụ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ùng
thầ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à ứng
dụ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.
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
NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
NHẬN XÉT CỦA CÁN BỘ DUYỆT
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ựng
cá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ực
hiệ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ả.
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ây
lớn có thể kể đến bây giờ bao gồm:
- Google App Engine của Google:
http://code.google.com/appengine/
- Windows Azure của Microsoft:
http://www.microsoft.com/windowsazure/windowsazure/
- Nền tảng điện toán đám mây ra đời đầu tiên: Amazone Webservice của
Amazon.com
- Sun Cloud của Sun
http://www.sun.com/solutions/cloudcomputing/
- Facebook
Hình 1.1: Mô hình điện toán đám mây
Google App Engine:
1.1.1 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ập
trì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ây
củ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ưu
lượ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à Python
environment.
Với App Engine‘s Java runtime environment, ta có thể xây dựng các ứng
dụng sử dụng dựa trên các chuẩn kỹ thuật của Java, bao gồm JVM, Java
servlet, hỗ trợ ngôn ngữ lập trình Java, cũng như các ngôn ngữ sử dụng trình
biê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, bao
gồm một trình thông dịch nhanh Python và các thư viện chuẩn Python. Môi
trườ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.
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ức phí 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ân sách.
Bắt đầu với App Engine là hoàn toàn miễn phí, với 500 MB dung lượng
lư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í.
1.1.2 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ậm
chí 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ăng
sau:
- 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ản
Google…
- Một môi trường phát triển cục bộ với đầy đủ các tính năng mô phỏng
GAE 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 :
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 trong
JVM. Một ứng dụng có thể sử dụng bất cứ JVM bytecode hay các thư viện
nà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
exception.
Ứng dụng của bạn sẽ truy cập hầu hết các dịch vụ của App Engine, sử
dụng các Java API chuẩn.
- Datastore service : sử dụng JDO (Java Data Object) và JPA (Java
Persistence API).
- Email service : sử dụng Java Mail API.
- URL fetch servive : sử dụng java.net HTTP API.
- Ngoài ra còn có những API cấp thấp khác.
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 (data
object) 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ác
thuộ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ợ.
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ực
thể 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ác
giao dịch. Ứng dụng có thể gán một thực thể vào một nhóm ngay khi khởi
tạo.
5. Google account :
App Engine hỗ trợ tích hợp Google Account vào ứng dụng của bạn cho
việc xác thực người dùng. Sử dụng Google Account cho phép người dùng sử
dụng ứng dụng của bạn nhanh hơn, bởi không cần phải tạo tài khoản. Nó còn
giúp bạn không phải xây dựng một hệ thống tài khoản người dùng mà chỉ
dùng riêng cho ứng dụng của bạn.
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ủa
datastore 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 :
Ứng dụng có thể thực hiện các công việc khác, ngoài nhiệm vụ đáp ứng
các web request. Ứng dụng của bạn có thể thực hiện các nhiệm vụ theo một
lị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ông
việ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ực
thi Python, phiên bản cho Java sẽ được phát hành trong tương lai gần.
1.1.3 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ường
bả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ên
App Engine, bạn có thể tải ứng dụng đó lên như là một phiên bản mới. Phiên
bả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ản
mớ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át triển Eclipse, ta có thể sử dụng Google Plugin để tạo, thử nghiệm và tải
ứng dụ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ên
App Engine. Ta có thể đăng kí ứng dụng mới, cấu hình tên miền, thay đổi
phiê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 qua
kho dữ liệu của ứng dụng.
1.1.4 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àn
miễ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ọi
ngườ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ằng
ngà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ủa
bạn.
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ạn
ngạch (quota) . Một hạn ngạch sẽ xác định có bao nhiêu tài nguyên mà ứng
dụ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ạn
nà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ên vượt quá thời gian chờ để bảo tồn tài nguyên.
1.2 Google Web Toolkit :
1.2.1 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át
triể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ển
phả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 Java
developer để xây dựng các ứng dụng AJAX mà không cần phải biết quá
nhiều ngô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ân Javascript 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ụng
AJAX quá khó khăn và nhiều lỗi. Với GWT, bạn có thể phát triển và kiểm tra
lỗi các ứng dụng AJAX bằng ngôn ngữ Java, sử dụng các công cụ phát triển
Java tuỳ theo ý thích. Khi bạn triển khai ứng dụng của mình, bộ biên dịch của
GWT sẽ dịch ứng dụng Java của bạn sang JavaScript và HTML.
1.2.2 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
đượ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ình
như 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ện
trên cơ sở mã của bạn bằng phương pháp in-lining, loại các mã không cần
thiế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
động nhanh 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ên
hầu hết các trình duyêt, kể cả các trình duyệt di động trên Iphone và Android.
1.2.3 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ực
hiệ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 đến
thủ tục gọi chạy trên các máy chủ từ xa :
- Dịch vụ (service) chạy trên máy chủ (các hàm mà bạn gọi)
- Các mã trên máy khách gọi dịch vụ.
- Đối tượng dữ liệu Java được trao đổi qua lại giữa client và server.
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 :
- Định nghĩa một interface (Ex: MyService.java) cho dịch vụ, được kế thừa
từ RemoteService và khai báo tất các phương thức của dịch vụ.
- Tạo một lớp (Ex: MyServiceImpl.java) kế thừa RemoteServiceServlet và
cài đặt interface mà bạn đã tạo ở trên.
- Xác định một giao diện không đồng bộ (Ex: MyServiceAsync.java) cho
dịch vụ của bạn để được gọi là từ phía máy khách.
1.3 Framework Slim3 cho Google App Engine
Slim3 là một full-stack framework MVC mã nguồn mở được tối ưu hóa
cho Google App Engine / Java, và bạn cũng có thể sử dụng Slim3 như một
framework về cơ sở dữ liệu.
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ều khó khăn.
Slim3 khắc phục nhược điềm đó, nó hỗ trợ Global Transaction giữa các
nhó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 khi
biê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ại
mộ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 :
Tương đương với câu lệnh truy vấn trong JDO/JPA :
EmployeeMeta e = EmployeeMeta.get();
List<Employee> list = Datastore.query(e)
.filter(e.salary.greaterThan(5000), e.job.equal("ANALYST"))
.sort(e.salary.asc)
.asList();
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
Query query = pm.newQuery(Employee.class);
query.setFilter("salary > :salary && job == :job");
query.setOrdering("salary asc");
List<Employee> list = (List<Employee>) query.execute(5000,
"ANALYST");
} finally {
pm.close();
}
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.
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ột
profile 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ản
Google của mình để đăng nhập, sử dụng dịch vụ. Và cũng sử dụng chính tài
khoả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ông
tin 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óm
mặ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ộc
nhó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.
2.2 Phân tích biểu đồ ca sử dụng :
2.2.1 Ca sử dụng :
1. Ca sử dụng chung :
Hình 2.1 : Biểu đồ ca sử dụng tổng quát.
Mô tả :
- Người dùng đăng nhập vào hệ thống để sử dụng dịch vụ bằng tài khoản
Google.
- Sau khi đăng nhập thành công, người dùng có thể thực hiện các thao
tác quản lý trên danh bạ cá nhân, bookmark cũng như quản lý profile
thông tin cá nhân.
2. Ca sử dụng quản lý danh bạ :
Hình 2.2 : Ca sử dụng quản lý danh bạ
Mô tả :
- Tại giao diện quản lý danh bạ, người dùng có thể thực hiện các thao tác
trên các nhóm danh bạ, danh bạ.
- 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ột
danh bạ cho bạn bè, gửi email đến danh bạ, đưa một danh bạ vào nhóm
yêu thích (favorite).
3. Ca sử dụng quản lý bookmark :
Hình 2.3 : Ca sử dụng quản lý bookmark.
Mô tả :
- Tại giao diện quản lý bookmark, tương tự như trên danh bạ, người
dùng có thể thực hiện các thao tác trên các nhóm bookmark, bookmark.
- 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 bookmark
cũng như chia sẻ một bookmark cho bạn bè.
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.
2.2.2 Đặc tả ca sử dụng :
1. Đặc tả ca sử dụng quản lý danh bạ :
a. Create new group :
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 nhóm, điền tên nhóm, hệ thống sẽ
xác thực tên nhóm có hợp lệ hay không. Nếu tên nhóm hợp lệ, thì
quá trình tạo nhóm thành công, nếu không sẽ thông báo lỗi cho
người dùng.
ii. Kịch bản :
Hành đông của tác nhân Hành động của hệ thống
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
một nhóm.
6/ Nhập tên nhóm cần tạo.
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ên
nhóm cần tạo.
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ành
cô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ười
dù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ột
nhóm rồi chọn chức nằng chỉnh sửa để thay đôi tên nhóm, hoặc xóa
nhó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 :
Hành đông của tác nhân Hành động của hệ thống
1/ Người dùng đăng nhập vào
dịch vụ
2/ Xác thực ID và mật khẩu.
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ỉnh
sửa.
6/ Nhập tên nhóm cần thay đổi.
5/ Cửa sổ Popup hiện ra để
người dùng nhập tên
nhó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ành
công.
6/ Chọn chức năng xóa nhóm
khỏi danh sách.
2/ Đăng nhập không thành
công, thông báo lỗi.
7/ Xóa nhóm khỏi danh sách,
đưa các danh bạ trong nhóm
và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ực
thông tin danh bạ có hợp lệ hay không. Nếu hợp lệ, thì quá trình
tạo danh bạ thành công, nếu không sẽ thông báo lỗi cho người
dùng.
ii. Kịch bản :
Hành đông của tác nhân Hành động của hệ thống
1/ Người dùng đăng nhập vào
dịch vụ
2/ Xác thực ID và mật khẩu.
3/ Chọn chức năng quản lý
danh bạ
4/ Chọn chức năng tạo mới
một danh bạ.
6/ Nhập thông tin cho danh
bạ.
5/ Cửa sổ Popup hiện ra để
người dùng nhập thông tin
của danh bạ cần tạo.
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ông
báo tạo thành công.
2/ Đăng nhập không thành
công, thông báo lỗi.
8/ Thông tin danh bạ không
hợp lệ, thông báo lỗi đến
ngườ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ùng
chỉnh sửa các thông tin
ii. Kịch bản :
Hành đông của tác nhân Hành động của hệ thống
1/ Người dùng đăng nhập vào
dịch vụ
3/ Chọn chức năng quản lý
2/ Xác thực ID và mật khẩu.
danh bạ
4/ Xem danh sách các nhóm,
chọn nhóm, chọn thành
viê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.
5/ Cửa sổ Popup hiện ra, hiển
thị thông tin hiện tại
7/ Kiểm tra thông tin có hợp
lệ hay không.
8/ Nếu thông tin hợp lệ,
thông báo chỉnh sửa thành
công.
6/ Chọn chức năng xóa danh bạ
khỏi nhóm.
2/ Đăng nhập không thành
công, thông báo lỗi.
7/ Xóa danh bạ ra khỏi nhóm.
2. Đặc tả ca sử dụng quản lý bookmark :
Tương tự như ca sử dụng quản lý danh bạ.
3. Đặc tả ca sử dụng quản lý profile :
a. Update profile :
i. Mô tả :
Mỗi người sử dụng dịch vụ đều có một trang Profile riêng, lưu
trữ thông tin cá nhân của mình. Người dùng có thể vào trang quản
lý Profile để cập nhật thông tin cá nhân của mình.
ii. Kịch bản :
Hành đông của tác nhân Hành động của hệ thống
1/ Người dùng đăng nhập vào
dịch vụ
3/ Chọn chức năng quản lý
Profile
2/ Xác thực ID và mật khẩu.
4/ 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.
5/ Cửa sổ Popup hiện ra, hiển
thị thông tin hiện tại của
Profile
7/ Hệ thống kiểm tra các
thô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ại
Profile cho người dùng và
thông báo thành công.
2/ Đăng nhập không thành
công, thông báo lỗi.
b. Share profile :
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 chia sẻ Profile. Một cửa sổ Popup
hiện ra để người dùng nhập email của người cần chia sẻ.
ii. Kịch bản :
Hành đông của tác nhân Hành động của hệ thống
1/ Người dùng đăng nhập vào
dịch vụ
3/ Chọn chức năng quản lý
Profile
2/ Xác thực ID và mật khẩu.
4/ 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.
5/ Cửa sổ Popup hiện ra để
người dùng nhập vào
email của người cần chia
sẻ.
7/ Hệ thống kiểm tra các
email có hợp lệ không.
8/ Nếu các email hợp lệ, hệ
thống gửi email có chứa
Profile của người dùng và
thông báo thành công.
2/ Đăng nhập không thành
công, thông báo lỗi.
8/ Email không hợp lệ, thông
báo lỗi và yêu cầu người
dù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ổ Popup
người dùng có thể chọn tìm kiếm theo tên hoặc email. Người dùng
nhậ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ạ.
ii. Kịch bản :
Hành đông của tác nhân Hành động của hệ thống
1/ Người dùng đăng nhập vào
dịch vụ
3/ Chọn chức năng quản lý
Profile
2/ Xác thực ID và mật khẩu.
4/ Bấm vào nút Search để bắt
đầu tìm kiếm.
6/ Người chọn tìm kiếm theo
tên hoặc email, nhập vào từ
khóa tìm kiếm.
8/ Người dùng xem kết quả tìm
kiếm được.
10/ Bấm nút Add để thêm kết
quả tìm kiếm được vào danh bạ.
5/ Cửa sổ Popup tìm kiếm
hiện ra.
7/ Hệ thống hiển thị danh
sách kết quả.
9/ Hệ thống hiển thị thông tin
của người được chọn.
11/ Thông báo thành công.
2/ Đăng nhập không thành
cô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ập
lại từ khóa.
2.3 Biểu đồ hoạt đông :
2.3.1 Hoạt động quản lý danh bạ :
Hình 2.5 : Biểu đồ hoạt động quản lý danh bạ
2.3.2 Hoạt động quản lý bookmark :
Hình 2.6: Biểu đồ hoạt động quản lý bookmark
2.3.3 Hoạt động quản lý Profile :
Hình 2.7 : Biểu đồ hoạt động quản lý profile
2.4 Phân tích biểu đồ lớp :
2.4.1 Mô hình khái niệm :
Hình 2.8 : Mô hình khái niệm
2.4.2 Biểu đồ lớp :
Hình 2.9 : Biểu đồ lớp
2.5 Phân tích biểu đồ tuần tự :
2.5.1 Tạo mới contact :
Hình 2.10 : Biểu đồ tuần tự tạo mới một danh bạ
2.5.2 Chỉnh sửa contact :
Hình 2.11 : Biểu đồ tuần tự chỉnh sửa danh bạ
2.6 Phân tích kiến trúc :
- Kiến trúc của hệ thống có thể được chia thành ba thành phần chính. Mỗi
thành phần được đóng gói trong một package
 Package UI : Chứa các lớp giao diện chương trình. Ở đây cấu trúc của
các lớp giao diện dựa trên các thành phần Google Web Toolkit của
Google.
 Package Service : Chứa các lớp Service của chương trình. Đây là nơi
chuyển giao các yêu cầu từ tầng UI, xử lí cơ bản và thao tác trên các
đối tượng của tầng Datastore.
 Package Datastore : chứa các lớp cơ sở dữ liệu của chương trình.
Hình 2.12 : Biểu đồ phân tích kiến trúc
2.6.1 Package UI :
Tải bản FULL (74 trang): https://bit.ly/3ElUkJZ
Dự phòng: fb.com/TaiHo123doc.net
Hình 2.13 : Biểu đồ cho Packgae UI
2.6.2 Packgae Service :
Tải bản FULL (74 trang): https://bit.ly/3ElUkJZ
Dự phòng: fb.com/TaiHo123doc.net
Hình 2.14 : Biểu đồ cho Package Service
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT
QUẢ
3.1 Xây dựng chương trình :
3.1.1 Cài đặt các phần mềm cần thiết để xây dựng ứng
dụng :
- Cài đặt JDK, Slim3 hỗ trợ Java 5 và 6.
- Tải về và cài đặt Java SE Development Kit ( JDK ).
- Để kiểm tra việc cài đặt JDK thành công hay không và kiểm tra phiên
bản của JDK, ta vào Command Prompt gõ dòng lệnh :
Hình 3.1 : Kiểm tra phiên bản JDK
- Cài đặt Eclipse, Slim3 hỗ trợ cho Eclipse phiên bản 3.4, 3.5 và phiên
bản mới nhất là 3.6. Tải về và cài đặt Eclipse 32 bit tương ứng với JDK
32 bit, hoặc Eclipse 64 bit với bản JDK 64 bit.
- Nếu dùng Eclipse, thì cách dễ nhất để phát triển, kiểm thử và triển khai
ứng dụng lên App Engine là sử dụng Google Plugin cho Eclipse.
- Ta có thể cài đặt Google Plugin bằng Software Update trong Eclipse.
- Các bước cài đặt plugin trong Eclipse 3.6 ( Helios )
Bước 1 : Chọn menu Help > Install New Software
Bước 2 : Trong ô Work with, điền vào :
http://dl.google.com/eclipse/plugin/3.6
5473063

More Related Content

Similar to ĐỒ Á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.pdf

OpenERP 7.0 Release Notes Tiếng Việt
OpenERP 7.0 Release Notes Tiếng ViệtOpenERP 7.0 Release Notes Tiếng Việt
OpenERP 7.0 Release Notes Tiếng ViệtOpenerp Việt Nam
 
Crmsugar.sptgroup.vn guide
Crmsugar.sptgroup.vn guideCrmsugar.sptgroup.vn guide
Crmsugar.sptgroup.vn guideTrang Kem
 
Luận Văn Hoàn Thiện Công Tác Tổ Chức Sử Dụng Phần Mềm Kế Toán Tại Các Doanh N...
Luận Văn Hoàn Thiện Công Tác Tổ Chức Sử Dụng Phần Mềm Kế Toán Tại Các Doanh N...Luận Văn Hoàn Thiện Công Tác Tổ Chức Sử Dụng Phần Mềm Kế Toán Tại Các Doanh N...
Luận Văn Hoàn Thiện Công Tác Tổ Chức Sử Dụng Phần Mềm Kế Toán Tại Các Doanh N...sividocz
 
Bao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-finalBao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-finalle dan
 
Giáo trình hướng dẫn cách lập biên bản nghiệm thu, hồ sơ chất lượng công trình
Giáo trình hướng dẫn cách lập biên bản nghiệm thu, hồ sơ chất lượng công trìnhGiáo trình hướng dẫn cách lập biên bản nghiệm thu, hồ sơ chất lượng công trình
Giáo trình hướng dẫn cách lập biên bản nghiệm thu, hồ sơ chất lượng công trìnhNguyễn Thế Anh Giaxaydung.vn
 
Nghiên cứu và hướng dẫn sử dụng bộ công cụ quét lỗ hổng hệ thống trong mạng lan
Nghiên cứu và hướng dẫn sử dụng bộ công cụ quét lỗ hổng hệ thống trong mạng lanNghiên cứu và hướng dẫn sử dụng bộ công cụ quét lỗ hổng hệ thống trong mạng lan
Nghiên cứu và hướng dẫn sử dụng bộ công cụ quét lỗ hổng hệ thống trong mạng lanleokidd
 
Kính mắt Smile - Nét đẹp cho đôi mắt của bạn
Kính mắt Smile  - Nét đẹp cho đôi mắt của bạnKính mắt Smile  - Nét đẹp cho đôi mắt của bạn
Kính mắt Smile - Nét đẹp cho đôi mắt của bạnKính Mắt Smile
 
Giáo trình đào tạo visual basic 6.0 fpt software solution[bookbooming.com]
Giáo trình đào tạo visual basic 6.0   fpt software solution[bookbooming.com]Giáo trình đào tạo visual basic 6.0   fpt software solution[bookbooming.com]
Giáo trình đào tạo visual basic 6.0 fpt software solution[bookbooming.com]bookbooming1
 
NGHIÊN CỨU, TRIỂN KHAI CÔNG NGHỆ QRADAR CHO VIỆC GIÁM SÁT AN NINH MẠNG CNTT
NGHIÊN CỨU, TRIỂN KHAI CÔNG NGHỆ QRADAR  CHO VIỆC GIÁM SÁT AN NINH MẠNG CNTTNGHIÊN CỨU, TRIỂN KHAI CÔNG NGHỆ QRADAR  CHO VIỆC GIÁM SÁT AN NINH MẠNG CNTT
NGHIÊN CỨU, TRIỂN KHAI CÔNG NGHỆ QRADAR CHO VIỆC GIÁM SÁT AN NINH MẠNG CNTTYenPhuong16
 
Thuc hanh vb
Thuc hanh vbThuc hanh vb
Thuc hanh vbhaquang83
 
giáo trình kế toán máy misa
giáo trình kế toán máy misagiáo trình kế toán máy misa
giáo trình kế toán máy misaChris Christy
 
Bài giảng E-markeitng hiệu chỉnh 2022.pdf
Bài giảng E-markeitng hiệu chỉnh 2022.pdfBài giảng E-markeitng hiệu chỉnh 2022.pdf
Bài giảng E-markeitng hiệu chỉnh 2022.pdfChiV83
 
TỐI ƯU HÓA QUÁ TRÌNH THIẾT KÊ GUỒNG QUAY CƯỚC CÂU CÁ f739fa06
TỐI ƯU HÓA QUÁ TRÌNH THIẾT KÊ GUỒNG QUAY CƯỚC CÂU CÁ f739fa06TỐI ƯU HÓA QUÁ TRÌNH THIẾT KÊ GUỒNG QUAY CƯỚC CÂU CÁ f739fa06
TỐI ƯU HÓA QUÁ TRÌNH THIẾT KÊ GUỒNG QUAY CƯỚC CÂU CÁ f739fa06nataliej4
 
Sách hướng dẫn sử dụng Powerpoint 2010
Sách hướng dẫn sử dụng Powerpoint 2010Sách hướng dẫn sử dụng Powerpoint 2010
Sách hướng dẫn sử dụng Powerpoint 2010Tâm Việt Group
 

Similar to ĐỒ Á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.pdf (20)

Bao cao
Bao caoBao cao
Bao cao
 
OpenERP 7.0 Release Notes Tiếng Việt
OpenERP 7.0 Release Notes Tiếng ViệtOpenERP 7.0 Release Notes Tiếng Việt
OpenERP 7.0 Release Notes Tiếng Việt
 
Hướng dẫn sử dụng SugarCRMCE
Hướng dẫn sử dụng SugarCRMCEHướng dẫn sử dụng SugarCRMCE
Hướng dẫn sử dụng SugarCRMCE
 
Crmsugar.sptgroup.vn guide
Crmsugar.sptgroup.vn guideCrmsugar.sptgroup.vn guide
Crmsugar.sptgroup.vn guide
 
Luận Văn Hoàn Thiện Công Tác Tổ Chức Sử Dụng Phần Mềm Kế Toán Tại Các Doanh N...
Luận Văn Hoàn Thiện Công Tác Tổ Chức Sử Dụng Phần Mềm Kế Toán Tại Các Doanh N...Luận Văn Hoàn Thiện Công Tác Tổ Chức Sử Dụng Phần Mềm Kế Toán Tại Các Doanh N...
Luận Văn Hoàn Thiện Công Tác Tổ Chức Sử Dụng Phần Mềm Kế Toán Tại Các Doanh N...
 
Bao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-finalBao cao-lap-trinh-android-final
Bao cao-lap-trinh-android-final
 
Giáo trình hướng dẫn cách lập biên bản nghiệm thu, hồ sơ chất lượng công trình
Giáo trình hướng dẫn cách lập biên bản nghiệm thu, hồ sơ chất lượng công trìnhGiáo trình hướng dẫn cách lập biên bản nghiệm thu, hồ sơ chất lượng công trình
Giáo trình hướng dẫn cách lập biên bản nghiệm thu, hồ sơ chất lượng công trình
 
Nghiên cứu và hướng dẫn sử dụng bộ công cụ quét lỗ hổng hệ thống trong mạng lan
Nghiên cứu và hướng dẫn sử dụng bộ công cụ quét lỗ hổng hệ thống trong mạng lanNghiên cứu và hướng dẫn sử dụng bộ công cụ quét lỗ hổng hệ thống trong mạng lan
Nghiên cứu và hướng dẫn sử dụng bộ công cụ quét lỗ hổng hệ thống trong mạng lan
 
Lập Trình Game Trên Thiết Bị Di Động.doc
Lập Trình Game Trên Thiết Bị Di Động.docLập Trình Game Trên Thiết Bị Di Động.doc
Lập Trình Game Trên Thiết Bị Di Động.doc
 
Luận văn: Nghiên cứu, thiết kế, chế tạo mobile robot tự hành tích hợp
Luận văn: Nghiên cứu, thiết kế, chế tạo mobile robot tự hành tích hợpLuận văn: Nghiên cứu, thiết kế, chế tạo mobile robot tự hành tích hợp
Luận văn: Nghiên cứu, thiết kế, chế tạo mobile robot tự hành tích hợp
 
Nghiên cứu ứng dụng chữ số trong gửi nhận tài liệu điện tử, HAY
Nghiên cứu ứng dụng chữ số trong gửi nhận tài liệu điện tử, HAYNghiên cứu ứng dụng chữ số trong gửi nhận tài liệu điện tử, HAY
Nghiên cứu ứng dụng chữ số trong gửi nhận tài liệu điện tử, HAY
 
do_an_ly_thuyet
do_an_ly_thuyetdo_an_ly_thuyet
do_an_ly_thuyet
 
Kính mắt Smile - Nét đẹp cho đôi mắt của bạn
Kính mắt Smile  - Nét đẹp cho đôi mắt của bạnKính mắt Smile  - Nét đẹp cho đôi mắt của bạn
Kính mắt Smile - Nét đẹp cho đôi mắt của bạn
 
Giáo trình đào tạo visual basic 6.0 fpt software solution[bookbooming.com]
Giáo trình đào tạo visual basic 6.0   fpt software solution[bookbooming.com]Giáo trình đào tạo visual basic 6.0   fpt software solution[bookbooming.com]
Giáo trình đào tạo visual basic 6.0 fpt software solution[bookbooming.com]
 
NGHIÊN CỨU, TRIỂN KHAI CÔNG NGHỆ QRADAR CHO VIỆC GIÁM SÁT AN NINH MẠNG CNTT
NGHIÊN CỨU, TRIỂN KHAI CÔNG NGHỆ QRADAR  CHO VIỆC GIÁM SÁT AN NINH MẠNG CNTTNGHIÊN CỨU, TRIỂN KHAI CÔNG NGHỆ QRADAR  CHO VIỆC GIÁM SÁT AN NINH MẠNG CNTT
NGHIÊN CỨU, TRIỂN KHAI CÔNG NGHỆ QRADAR CHO VIỆC GIÁM SÁT AN NINH MẠNG CNTT
 
Thuc hanh vb
Thuc hanh vbThuc hanh vb
Thuc hanh vb
 
giáo trình kế toán máy misa
giáo trình kế toán máy misagiáo trình kế toán máy misa
giáo trình kế toán máy misa
 
Bài giảng E-markeitng hiệu chỉnh 2022.pdf
Bài giảng E-markeitng hiệu chỉnh 2022.pdfBài giảng E-markeitng hiệu chỉnh 2022.pdf
Bài giảng E-markeitng hiệu chỉnh 2022.pdf
 
TỐI ƯU HÓA QUÁ TRÌNH THIẾT KÊ GUỒNG QUAY CƯỚC CÂU CÁ f739fa06
TỐI ƯU HÓA QUÁ TRÌNH THIẾT KÊ GUỒNG QUAY CƯỚC CÂU CÁ f739fa06TỐI ƯU HÓA QUÁ TRÌNH THIẾT KÊ GUỒNG QUAY CƯỚC CÂU CÁ f739fa06
TỐI ƯU HÓA QUÁ TRÌNH THIẾT KÊ GUỒNG QUAY CƯỚC CÂU CÁ f739fa06
 
Sách hướng dẫn sử dụng Powerpoint 2010
Sách hướng dẫn sử dụng Powerpoint 2010Sách hướng dẫn sử dụng Powerpoint 2010
Sách hướng dẫn sử dụng Powerpoint 2010
 

More from HanaTiti

TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfTRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfHanaTiti
 
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfTRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfHanaTiti
 
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...HanaTiti
 
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...HanaTiti
 
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...HanaTiti
 
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfNhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfHanaTiti
 
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfPháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfHanaTiti
 
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...HanaTiti
 
The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...HanaTiti
 
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfDeteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfHanaTiti
 
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfPhát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfHanaTiti
 
The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...HanaTiti
 
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfQuản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfHanaTiti
 
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfSự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfHanaTiti
 
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...HanaTiti
 
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfĐánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfHanaTiti
 
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...HanaTiti
 
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...HanaTiti
 
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfPHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfHanaTiti
 
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfHanaTiti
 

More from HanaTiti (20)

TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdfTRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
TRUYỀN THÔNG TRONG CÁC SỰ KIỆN NGHỆ THUẬT Ở VIỆT NAM NĂM 2012.pdf
 
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdfTRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
TRỊ LIỆU TÂM LÝ CHO MỘT TRƢỜNG HỢP TRẺ VỊ THÀNH NIÊN CÓ TRIỆU CHỨNG TRẦM CẢM.pdf
 
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
IMPACTS OF FINANCIAL DEPTH AND DOMESTIC CREDIT ON ECONOMIC GROWTH - THE CASES...
 
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
THE LINKAGE BETWEEN CORRUPTION AND CARBON DIOXIDE EMISSION - EVIDENCE FROM AS...
 
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
Phát triển dịch vụ Ngân hàng bán lẻ tại Ngân hàng thương mại cổ phần xuất nhậ...
 
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdfNhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
Nhân vật phụ nữ trong truyện ngắn Cao Duy Sơn.pdf
 
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdfPháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
Pháp luật về giao dịch bảo hiểm nhân thọ ở Việt Nam.pdf
 
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
Tổ chức dạy học lịch sử Việt Nam lớp 10 theo hướng phát triển năng lực vận dụ...
 
The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...The impact of education on unemployment incidence - micro evidence from Vietn...
The impact of education on unemployment incidence - micro evidence from Vietn...
 
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdfDeteminants of brand loyalty in the Vietnamese neer industry.pdf
Deteminants of brand loyalty in the Vietnamese neer industry.pdf
 
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdfPhát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
Phát triển hoạt động môi giới chứng khoán của CTCP Alpha.pdf
 
The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...The current situation of English language teaching in the light of CLT to the...
The current situation of English language teaching in the light of CLT to the...
 
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdfQuản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
Quản lý chi ngân sách nhà nước tại Kho bạc nhà nước Ba Vì.pdf
 
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdfSự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
Sự tiếp nhận đối với Hàng không giá rẻ của khách hàng Việt Nam.pdf
 
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...An Investigation into the Effect of Matching Exercises on the 10th form Stude...
An Investigation into the Effect of Matching Exercises on the 10th form Stude...
 
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdfĐánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
Đánh giá chất lượng truyền tin multicast trên tầng ứng dụng.pdf
 
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
Quản lý các trường THCS trên địa bàn huyện Thanh Sơn, tỉnh Phú Thọ theo hướng...
 
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
Nghiên cứu và đề xuất mô hình nuôi tôm bền vững vùng ven biển huyện Thái Thụy...
 
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdfPHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
PHÁT TRIỂN DOANH NGHIỆP THƯƠNG MẠI NHỎ VÀ VỪA TRÊN ĐỊA BÀN TỈNH HÀ TĨNH.pdf
 
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdfENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
ENERGY CONSUMPTION AND REAL GDP IN ASEAN.pdf
 

Recently uploaded

GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngYhoccongdong.com
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfNguyen Thanh Tu Collection
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiNgocNguyen591215
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhdtlnnm
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢImyvh40253
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...hoangtuansinh1
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfXem Số Mệnh
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhdangdinhkien2k4
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnpmtiendhti14a5hn
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfTrnHoa46
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...ChuThNgnFEFPLHN
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfXem Số Mệnh
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 

Recently uploaded (20)

GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng ĐồngGiới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
Giới thiệu Dự án Sản Phụ Khoa - Y Học Cộng Đồng
 
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdfBỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
BỘ LUYỆN NGHE VÀO 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ LỜI - CÓ FILE NGHE.pdf
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢIPHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
PHƯƠNG THỨC VẬN TẢI ĐƯỜNG SẮT TRONG VẬN TẢI
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdfCampbell _2011_ - Sinh học - Tế bào - Ref.pdf
Campbell _2011_ - Sinh học - Tế bào - Ref.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 

ĐỒ Á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.pdf

  • 1. TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN  ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI : 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 Sinh viên : Hoàng Xuân Khánh Lớp : 06T4 Cán bộ hướng dẫn : TS. Huỳnh Công Pháp. Đà Nẵng-06/2011
  • 2. MỤC LỤC TỔNG QUAN VỀ ĐỀ TÀI................................................................................... CHƯƠNG 1 CƠ SỞ LÝ THUYẾT...................................................................... Giới thiệu điện toán đám mây:...........................................................................2 Google App Engine:...........................................................................................3 1.1.1 Google App Engine (GAE) là gì? :.............................................................3 1.1.2 Môi trường phát triển ứng dụng :...............................................................4 1.1.3 Qui trình phát triển :...................................................................................7 1.1.4 Những hạn ngạch và giới hạn :...................................................................7 1.2 Google Web Toolkit :.....................................................................................8 1.2.1 Giới thiệu Google Web Toolkit :.................................................................8 1.2.2 Phát triển với Google Web Toolkit :...........................................................8 1.2.3 GWT RPC ( Remote Procedure Calls ) :....................................................9 1.3 Framework Slim3 cho Google App Engine................................................10 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 :......................................................................................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 :...................................................................................30 2.6 Phân tích kiến trúc :.....................................................................................31 2.6.1 Package UI :..............................................................................................32 2.6.2 Packgae Service :......................................................................................33 CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ....................... 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 51 3.2 Kết quả chương trình :.................................................................................56 KẾT LUẬN 64 [1] Kyle Roche and Jeff Douglas. Beginning Java Google App Engine...........65 [2] TS Nguyễn Thanh Bình. Phân tích và thiết kế hệ thống hướng đối tượng. 65
  • 3. Nghiên cứu Google App Engine: Xây dựng dịch vụ quản lý danh bạ cá nhân [3] PGS.TS Phan Huy Khánh. Quản lý dự án phần mềm.................................65 [4] Jacque Arsac. Nhập môn lập trình. Nguyên bản : Premières lecons de programmation. Trung tâm hệ thống Thông tin ISC, Hà nội 1991, 241 tr............65 [5] Eugene Ciurana. Developing with Google App Engine .............................65 [6] Google App Engine. http://code.google.com/..............................................65 [7] Slim3. http://sites.google.com/site/slim3appengine/....................................65 DANH MỤC HÌNH ẢNH HÌNH 1.1: MÔ HÌNH ĐIỆN TOÁN ĐÁM MÂY............................................... HÌNH 1.2 : GOOGLE APP ENGINE.................................................................. HÌNH 1.3 : CẤU TRÚC CỦA MỘT GWT RPC.............................................. HÌNH 2.1 : BIỂU ĐỒ CA SỬ DỤNG TỔNG QUÁT........................................ HÌNH 2.2 : CA SỬ DỤNG QUẢN LÝ DANH BẠ........................................... HÌNH 2.3 : CA SỬ DỤNG QUẢN LÝ BOOKMARK..................................... HÌNH 2.4 : CA SỬ DỤNG QUẢN LÝ PROFILE............................................ HÌNH 2.5 : BIỂU ĐỒ HOẠT ĐỘNG QUẢN LÝ DANH BẠ......................... HÌNH 2.6: BIỂU ĐỒ HOẠT ĐỘNG QUẢN LÝ BOOKMARK.................... HÌNH 2.7 : BIỂU ĐỒ HOẠT ĐỘNG QUẢN LÝ PROFILE.......................... HÌNH 2.8 : MÔ HÌNH KHÁI NIỆM................................................................. HÌNH 2.9 : BIỂU ĐỒ LỚP.................................................................................. HÌNH 2.10 : BIỂU ĐỒ TUẦN TỰ TẠO MỚI MỘT DANH BẠ.................... HÌNH 2.11 : BIỂU ĐỒ TUẦN TỰ CHỈNH SỬA DANH BẠ.......................... HÌNH 2.12 : BIỂU ĐỒ PHÂN TÍCH KIẾN TRÚC......................................... HÌNH 2.13 : BIỂU ĐỒ CHO PACKGAE UI.................................................... HÌNH 2.14 : BIỂU ĐỒ CHO PACKAGE SERVICE....................................... HÌNH 3.1 : KIỂM TRA PHIÊN BẢN JDK....................................................... HÌNH 3.2 : CÀI ĐẶT GOOGLE PLUGIN CHO ECLIPSE.......................... HÌNH 3.3 : CÀI ĐẶT GOOGLE PLUGIN, NHẤN OK ĐỂ TIẾP TỤC........ HÌNH 3.4 : CÀI ĐẶT GOOGLE PLUGIN, CHỌN CÁC THÀNH PHẦN CÀI ĐẶT..................................................................................... HÌNH 3.5 : KHỞI TẠO SLIM3 PROJECT...................................................... HÌNH 3.6 : ĐẶT TÊN PROJECT, PACKGAE VÀ CHỌN SỬ DỤNG GWT............................................................................................. 2
  • 4. Nghiên cứu Google App Engine: Xây dựng dịch vụ quản lý danh bạ cá nhân HÌNH 3.7 : CẤU TRÚC CỦA PROJECT SLIM3............................................ HÌNH 3.8 : CẤU HÌNH CHO ECLIPSE........................................................... HÌNH 3.9 : CẤU HÌNH CHO ECLIPSE ( TIẾP THEO )............................... HÌNH 3.10 : CẤU HÌNH ECLIPSE ĐỂ TỰ ĐỘNG CẬP NHẬT.................. HÌNH 3.11 : GIAO DIỆN CỦA ỨNG DỤNG................................................... HÌNH 3.12 : GIAO DIỆN QUẢN LÝ CỦA ỨNG DỤNG............................... HÌNH 3.13 : SƠ ĐỒ KHỐI TẠO MỚI MỘT NHÓM DANH BẠ................. HÌNH 3.14 : SƠ ĐỒ KHỐI XÓA MỘT NHÓM DANH BẠ........................... HÌNH 3.15 : SƠ ĐỒ KHỐI TẠO MỚI MỘT DANH BẠ............................... HÌNH 3.16 : SƠ ĐỒ KHỐI CHỈNH SỬA MỘT DANH BẠ........................... HÌNH 3.17 : SƠ ĐỒ KHỐI XÓA MỘT DANH BẠ......................................... HÌNH 3.18 : GIAO DIỆN YÊU CẦU LOGIN NẾU NGƯỜI DÙNG CHƯA ĐĂNG NHẬP................................................................. HÌNH 3.19 : ĐĂNG NHẬP TÀI KHOẢN VỚI GOOGLE ACOUNT........... HÌNH 3.20 : TRANG CHỦ CỦA ỨNG DỤNG................................................ HÌNH 3.21 : GIAO DIỆN QUẢN LÝ DANH BẠ............................................ HÌNH 3.22 : CÁC MODULE QUẢN LÝ DANH BẠ...................................... HÌNH 3.23 : POPUPTHÊM MỚI MỘT NHÓM............................................. HÌNH 3.24 : THÊM MỚI MỘT DANH BẠ...................................................... HÌNH 3.25 : CHIA SẺ DANH BẠ...................................................................... HÌNH 3.26 : GỬI EMAIL ĐẾN DANH BẠ...................................................... HÌNH 3.27 : CHỈNH SỬA DANH BẠ............................................................... HÌNH 3.28 : GIAO DIỆN QUẢN LÝ BOOKMARK...................................... HÌNH 3.29 : THÊM MỚI MỘT BOOKMARK............................................... HÌNH 3.30 : GIAO DIỆN QUẢN LÝ PROFILE............................................. HÌNH 3.31 : CHỈNH SỦA PROFILE................................................................ HÌNH 3.32 : UPLOAD HÌNH ẢNH ĐỂ THAY ĐỔI HÌNH ĐẠI DIỆN........ HÌNH 3.33 : POPUPTÌM KIẾM PROFILE CỦA BẠN BÈ THEO TÊN..... HÌNH 3.34 : POPUPTÌM KIẾM PROFILE CỦA BẠN BÈ THEO EMAIL......................................................................................... 3
  • 5. Hình 3.23 : Popup thêm mới một nhóm..................Error: Reference source not found Hình 3.24 : Thêm mới một danh bạ........................Error: Reference source not found Hình 3.25 : Chia sẻ danh bạ....................................Error: Reference source not found Hình 3.26 : Gửi email đến danh bạ.........................Error: Reference source not found Hình 3.27 : Chỉnh sửa danh bạ................................Error: Reference source not found Hình 3.28 : Giao diện quản lý bookmark................Error: Reference source not found Hình 3.29 : Thêm mới một bookmark.....................Error: Reference source not found Hình 3.30 : Giao diện quản lý profile.....................Error: Reference source not found Hình 3.31 : Chỉnh sủa profile..................................Error: Reference source not found Hình 3.32 : Upload hình ảnh để thay đổi hình đại diện...Error: Reference source not found Hình 3.33 : Popup tìm kiếm Profile của bạn bè theo tên.Error: Reference source not found Hình 3.34 : Popup tìm kiếm Profile của bạn bè theo email...Error: Reference source not found
  • 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ĩnh vực Công Nghệ Thông Tin, giải pháp công nghệ này sẽ là một xu hướng trong tươ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ải quyết, khắc phục các điểm yếu hay các vấn đề mà nhiều doanh nghiệp hiện đang gặp phải như thiếu năng lực Công Nghệ Thông Tin, chi phí đầu tư ban đầu hạn chế… Doanh nghiệp sẽ không cần phải có cơ sở hạ tầng nội bộ, triển khai nhanh chó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ế khi ngườ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 ứng dụ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ùng thầ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à ứng dụ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.
  • 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
  • 8. NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN
  • 9. NHẬN XÉT CỦA CÁN BỘ DUYỆT
  • 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ựng cá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ực hiệ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ả.
  • 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ây lớn có thể kể đến bây giờ bao gồm: - Google App Engine của Google: http://code.google.com/appengine/ - Windows Azure của Microsoft: http://www.microsoft.com/windowsazure/windowsazure/ - Nền tảng điện toán đám mây ra đời đầu tiên: Amazone Webservice của Amazon.com - Sun Cloud của Sun http://www.sun.com/solutions/cloudcomputing/ - Facebook Hình 1.1: Mô hình điện toán đám mây
  • 12. Google App Engine: 1.1.1 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ập trì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ây củ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ưu lượ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à Python environment. Với App Engine‘s Java runtime environment, ta có thể xây dựng các ứng dụng sử dụng dựa trên các chuẩn kỹ thuật của Java, bao gồm JVM, Java servlet, hỗ trợ ngôn ngữ lập trình Java, cũng như các ngôn ngữ sử dụng trình biê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, bao gồm một trình thông dịch nhanh Python và các thư viện chuẩn Python. Môi trườ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.
  • 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ức phí 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ân sách. Bắt đầu với App Engine là hoàn toàn miễn phí, với 500 MB dung lượng lư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í. 1.1.2 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ậm chí 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ăng sau: - 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ản Google… - Một môi trường phát triển cục bộ với đầy đủ các tính năng mô phỏng GAE 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 :
  • 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 trong JVM. Một ứng dụng có thể sử dụng bất cứ JVM bytecode hay các thư viện nà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 exception. Ứng dụng của bạn sẽ truy cập hầu hết các dịch vụ của App Engine, sử dụng các Java API chuẩn. - Datastore service : sử dụng JDO (Java Data Object) và JPA (Java Persistence API). - Email service : sử dụng Java Mail API. - URL fetch servive : sử dụng java.net HTTP API. - Ngoài ra còn có những API cấp thấp khác. 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 (data object) 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ác thuộ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ợ.
  • 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ực thể 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ác giao dịch. Ứng dụng có thể gán một thực thể vào một nhóm ngay khi khởi tạo. 5. Google account : App Engine hỗ trợ tích hợp Google Account vào ứng dụng của bạn cho việc xác thực người dùng. Sử dụng Google Account cho phép người dùng sử dụng ứng dụng của bạn nhanh hơn, bởi không cần phải tạo tài khoản. Nó còn giúp bạn không phải xây dựng một hệ thống tài khoản người dùng mà chỉ dùng riêng cho ứng dụng của bạn. 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ủa datastore 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 : Ứng dụng có thể thực hiện các công việc khác, ngoài nhiệm vụ đáp ứng các web request. Ứng dụng của bạn có thể thực hiện các nhiệm vụ theo một lị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ể
  • 16. 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ông việ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ực thi Python, phiên bản cho Java sẽ được phát hành trong tương lai gần. 1.1.3 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ường bả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ên App Engine, bạn có thể tải ứng dụng đó lên như là một phiên bản mới. Phiên bả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ản mớ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át triển Eclipse, ta có thể sử dụng Google Plugin để tạo, thử nghiệm và tải ứng dụ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ên App Engine. Ta có thể đăng kí ứng dụng mới, cấu hình tên miền, thay đổi phiê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 qua kho dữ liệu của ứng dụng. 1.1.4 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àn miễ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ọi ngườ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ằng ngà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ủa bạn. 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ạn ngạch (quota) . Một hạn ngạch sẽ xác định có bao nhiêu tài nguyên mà ứng
  • 17. dụ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ạn nà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ên vượt quá thời gian chờ để bảo tồn tài nguyên. 1.2 Google Web Toolkit : 1.2.1 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át triể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ển phả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 Java developer để xây dựng các ứng dụng AJAX mà không cần phải biết quá nhiều ngô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ân Javascript 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ụng AJAX quá khó khăn và nhiều lỗi. Với GWT, bạn có thể phát triển và kiểm tra lỗi các ứng dụng AJAX bằng ngôn ngữ Java, sử dụng các công cụ phát triển Java tuỳ theo ý thích. Khi bạn triển khai ứng dụng của mình, bộ biên dịch của GWT sẽ dịch ứng dụng Java của bạn sang JavaScript và HTML. 1.2.2 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 đượ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.
  • 18. 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ình như 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ện trên cơ sở mã của bạn bằng phương pháp in-lining, loại các mã không cần thiế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 động nhanh 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ên hầu hết các trình duyêt, kể cả các trình duyệt di động trên Iphone và Android. 1.2.3 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ực hiệ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 đến thủ tục gọi chạy trên các máy chủ từ xa : - Dịch vụ (service) chạy trên máy chủ (các hàm mà bạn gọi) - Các mã trên máy khách gọi dịch vụ. - Đối tượng dữ liệu Java được trao đổi qua lại giữa client và server.
  • 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 : - Định nghĩa một interface (Ex: MyService.java) cho dịch vụ, được kế thừa từ RemoteService và khai báo tất các phương thức của dịch vụ. - Tạo một lớp (Ex: MyServiceImpl.java) kế thừa RemoteServiceServlet và cài đặt interface mà bạn đã tạo ở trên. - Xác định một giao diện không đồng bộ (Ex: MyServiceAsync.java) cho dịch vụ của bạn để được gọi là từ phía máy khách. 1.3 Framework Slim3 cho Google App Engine Slim3 là một full-stack framework MVC mã nguồn mở được tối ưu hóa cho Google App Engine / Java, và bạn cũng có thể sử dụng Slim3 như một framework về cơ sở dữ liệu. Các thành phần chính của Slim3 :
  • 20. 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ều khó khăn. Slim3 khắc phục nhược điềm đó, nó hỗ trợ Global Transaction giữa các nhó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 khi biê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ại mộ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 : Tương đương với câu lệnh truy vấn trong JDO/JPA : EmployeeMeta e = EmployeeMeta.get(); List<Employee> list = Datastore.query(e) .filter(e.salary.greaterThan(5000), e.job.equal("ANALYST")) .sort(e.salary.asc) .asList(); PersistenceManager pm = PMF.get().getPersistenceManager(); try { Query query = pm.newQuery(Employee.class); query.setFilter("salary > :salary && job == :job"); query.setOrdering("salary asc"); List<Employee> list = (List<Employee>) query.execute(5000, "ANALYST"); } finally { pm.close(); }
  • 21. 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.
  • 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ột profile 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ản Google của mình để đăng nhập, sử dụng dịch vụ. Và cũng sử dụng chính tài khoả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ông tin 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óm mặ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ộc nhó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.
  • 23. 2.2 Phân tích biểu đồ ca sử dụng : 2.2.1 Ca sử dụng : 1. Ca sử dụng chung : Hình 2.1 : Biểu đồ ca sử dụng tổng quát. Mô tả : - Người dùng đăng nhập vào hệ thống để sử dụng dịch vụ bằng tài khoản Google. - Sau khi đăng nhập thành công, người dùng có thể thực hiện các thao tác quản lý trên danh bạ cá nhân, bookmark cũng như quản lý profile thông tin cá nhân.
  • 24. 2. Ca sử dụng quản lý danh bạ : Hình 2.2 : Ca sử dụng quản lý danh bạ Mô tả : - Tại giao diện quản lý danh bạ, người dùng có thể thực hiện các thao tác trên các nhóm danh bạ, danh bạ. - 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ột danh bạ cho bạn bè, gửi email đến danh bạ, đưa một danh bạ vào nhóm yêu thích (favorite). 3. Ca sử dụng quản lý bookmark :
  • 25. Hình 2.3 : Ca sử dụng quản lý bookmark. Mô tả : - Tại giao diện quản lý bookmark, tương tự như trên danh bạ, người dùng có thể thực hiện các thao tác trên các nhóm bookmark, bookmark. - 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 bookmark cũng như chia sẻ một bookmark cho bạn bè. 4. Ca sử dụng quản lý Profile :
  • 26. 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. 2.2.2 Đặc tả ca sử dụng : 1. Đặc tả ca sử dụng quản lý danh bạ : a. Create new group : 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 nhóm, điền tên nhóm, hệ thống sẽ xác thực tên nhóm có hợp lệ hay không. Nếu tên nhóm hợp lệ, thì quá trình tạo nhóm thành công, nếu không sẽ thông báo lỗi cho người dùng. ii. Kịch bản :
  • 27. Hành đông của tác nhân Hành động của hệ thống 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 một nhóm. 6/ Nhập tên nhóm cần tạo. 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ên nhóm cần tạo. 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ành cô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ười dù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ột nhóm rồi chọn chức nằng chỉnh sửa để thay đôi tên nhóm, hoặc xóa nhó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 : Hành đông của tác nhân Hành động của hệ thống 1/ Người dùng đăng nhập vào dịch vụ 2/ Xác thực ID và mật khẩu.
  • 28. 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ỉnh sửa. 6/ Nhập tên nhóm cần thay đổi. 5/ Cửa sổ Popup hiện ra để người dùng nhập tên nhó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ành công. 6/ Chọn chức năng xóa nhóm khỏi danh sách. 2/ Đăng nhập không thành công, thông báo lỗi. 7/ Xóa nhóm khỏi danh sách, đưa các danh bạ trong nhóm và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ực thông tin danh bạ có hợp lệ hay không. Nếu hợp lệ, thì quá trình tạo danh bạ thành công, nếu không sẽ thông báo lỗi cho người dùng. ii. Kịch bản : Hành đông của tác nhân Hành động của hệ thống 1/ Người dùng đăng nhập vào dịch vụ 2/ Xác thực ID và mật khẩu.
  • 29. 3/ Chọn chức năng quản lý danh bạ 4/ Chọn chức năng tạo mới một danh bạ. 6/ Nhập thông tin cho danh bạ. 5/ Cửa sổ Popup hiện ra để người dùng nhập thông tin của danh bạ cần tạo. 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ông báo tạo thành công. 2/ Đăng nhập không thành công, thông báo lỗi. 8/ Thông tin danh bạ không hợp lệ, thông báo lỗi đến ngườ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ùng chỉnh sửa các thông tin ii. Kịch bản : Hành đông của tác nhân Hành động của hệ thống 1/ Người dùng đăng nhập vào dịch vụ 3/ Chọn chức năng quản lý 2/ Xác thực ID và mật khẩu.
  • 30. danh bạ 4/ Xem danh sách các nhóm, chọn nhóm, chọn thành viê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. 5/ Cửa sổ Popup hiện ra, hiển thị thông tin hiện tại 7/ Kiểm tra thông tin có hợp lệ hay không. 8/ Nếu thông tin hợp lệ, thông báo chỉnh sửa thành công. 6/ Chọn chức năng xóa danh bạ khỏi nhóm. 2/ Đăng nhập không thành công, thông báo lỗi. 7/ Xóa danh bạ ra khỏi nhóm. 2. Đặc tả ca sử dụng quản lý bookmark : Tương tự như ca sử dụng quản lý danh bạ. 3. Đặc tả ca sử dụng quản lý profile : a. Update profile : i. Mô tả : Mỗi người sử dụng dịch vụ đều có một trang Profile riêng, lưu trữ thông tin cá nhân của mình. Người dùng có thể vào trang quản lý Profile để cập nhật thông tin cá nhân của mình. ii. Kịch bản : Hành đông của tác nhân Hành động của hệ thống 1/ Người dùng đăng nhập vào dịch vụ 3/ Chọn chức năng quản lý Profile 2/ Xác thực ID và mật khẩu.
  • 31. 4/ 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. 5/ Cửa sổ Popup hiện ra, hiển thị thông tin hiện tại của Profile 7/ Hệ thống kiểm tra các thô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ại Profile cho người dùng và thông báo thành công. 2/ Đăng nhập không thành công, thông báo lỗi. b. Share profile : 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 chia sẻ Profile. Một cửa sổ Popup hiện ra để người dùng nhập email của người cần chia sẻ. ii. Kịch bản : Hành đông của tác nhân Hành động của hệ thống 1/ Người dùng đăng nhập vào dịch vụ 3/ Chọn chức năng quản lý Profile 2/ Xác thực ID và mật khẩu.
  • 32. 4/ 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. 5/ Cửa sổ Popup hiện ra để người dùng nhập vào email của người cần chia sẻ. 7/ Hệ thống kiểm tra các email có hợp lệ không. 8/ Nếu các email hợp lệ, hệ thống gửi email có chứa Profile của người dùng và thông báo thành công. 2/ Đăng nhập không thành công, thông báo lỗi. 8/ Email không hợp lệ, thông báo lỗi và yêu cầu người dù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ổ Popup người dùng có thể chọn tìm kiếm theo tên hoặc email. Người dùng nhậ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ạ. ii. Kịch bản : Hành đông của tác nhân Hành động của hệ thống 1/ Người dùng đăng nhập vào dịch vụ 3/ Chọn chức năng quản lý Profile 2/ Xác thực ID và mật khẩu.
  • 33. 4/ Bấm vào nút Search để bắt đầu tìm kiếm. 6/ Người chọn tìm kiếm theo tên hoặc email, nhập vào từ khóa tìm kiếm. 8/ Người dùng xem kết quả tìm kiếm được. 10/ Bấm nút Add để thêm kết quả tìm kiếm được vào danh bạ. 5/ Cửa sổ Popup tìm kiếm hiện ra. 7/ Hệ thống hiển thị danh sách kết quả. 9/ Hệ thống hiển thị thông tin của người được chọn. 11/ Thông báo thành công. 2/ Đăng nhập không thành cô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ập lại từ khóa.
  • 34. 2.3 Biểu đồ hoạt đông : 2.3.1 Hoạt động quản lý danh bạ : Hình 2.5 : Biểu đồ hoạt động quản lý danh bạ
  • 35. 2.3.2 Hoạt động quản lý bookmark : Hình 2.6: Biểu đồ hoạt động quản lý bookmark
  • 36. 2.3.3 Hoạt động quản lý Profile : Hình 2.7 : Biểu đồ hoạt động quản lý profile
  • 37. 2.4 Phân tích biểu đồ lớp : 2.4.1 Mô hình khái niệm : Hình 2.8 : Mô hình khái niệm
  • 38. 2.4.2 Biểu đồ lớp : Hình 2.9 : Biểu đồ lớp
  • 39. 2.5 Phân tích biểu đồ tuần tự : 2.5.1 Tạo mới contact : Hình 2.10 : Biểu đồ tuần tự tạo mới một danh bạ 2.5.2 Chỉnh sửa contact :
  • 40. Hình 2.11 : Biểu đồ tuần tự chỉnh sửa danh bạ 2.6 Phân tích kiến trúc : - Kiến trúc của hệ thống có thể được chia thành ba thành phần chính. Mỗi thành phần được đóng gói trong một package
  • 41.  Package UI : Chứa các lớp giao diện chương trình. Ở đây cấu trúc của các lớp giao diện dựa trên các thành phần Google Web Toolkit của Google.  Package Service : Chứa các lớp Service của chương trình. Đây là nơi chuyển giao các yêu cầu từ tầng UI, xử lí cơ bản và thao tác trên các đối tượng của tầng Datastore.  Package Datastore : chứa các lớp cơ sở dữ liệu của chương trình. Hình 2.12 : Biểu đồ phân tích kiến trúc 2.6.1 Package UI : Tải bản FULL (74 trang): https://bit.ly/3ElUkJZ Dự phòng: fb.com/TaiHo123doc.net
  • 42. Hình 2.13 : Biểu đồ cho Packgae UI 2.6.2 Packgae Service : Tải bản FULL (74 trang): https://bit.ly/3ElUkJZ Dự phòng: fb.com/TaiHo123doc.net
  • 43. Hình 2.14 : Biểu đồ cho Package Service
  • 44. Chương 3 XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ 3.1 Xây dựng chương trình : 3.1.1 Cài đặt các phần mềm cần thiết để xây dựng ứng dụng : - Cài đặt JDK, Slim3 hỗ trợ Java 5 và 6. - Tải về và cài đặt Java SE Development Kit ( JDK ). - Để kiểm tra việc cài đặt JDK thành công hay không và kiểm tra phiên bản của JDK, ta vào Command Prompt gõ dòng lệnh : Hình 3.1 : Kiểm tra phiên bản JDK - Cài đặt Eclipse, Slim3 hỗ trợ cho Eclipse phiên bản 3.4, 3.5 và phiên bản mới nhất là 3.6. Tải về và cài đặt Eclipse 32 bit tương ứng với JDK 32 bit, hoặc Eclipse 64 bit với bản JDK 64 bit. - Nếu dùng Eclipse, thì cách dễ nhất để phát triển, kiểm thử và triển khai ứng dụng lên App Engine là sử dụng Google Plugin cho Eclipse. - Ta có thể cài đặt Google Plugin bằng Software Update trong Eclipse. - Các bước cài đặt plugin trong Eclipse 3.6 ( Helios ) Bước 1 : Chọn menu Help > Install New Software Bước 2 : Trong ô Work with, điền vào : http://dl.google.com/eclipse/plugin/3.6 5473063