Tải bản đầy đủ (.doc) (73 trang)

Xây dựng ứng dụng giới thiệu sách và đọc sách điện tử trên thiết bị di động sử dụng hệ điều hành android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.7 MB, 73 trang )

LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn các thầy (cô) giáo trong bộ môn
Mạng & Truyền Thông cũng như các thầy cô giáo trong trường Đại học Công
nghệ Thông tin & Truyền thông, những người đã dạy dỗ, trang bị cho em
những kíến thức bổ ích trong thời gian em được học tập và nghiên cứu tại trường.
Em xin bày tỏ lòng biết ơn sâu sắc nhất tới thầy giáo ThS. Đỗ Văn Toàn
người đã tận tình hướng dẫn, gợi ý và chỉ bảo cho em trong suốt thời gian làm đồ
án tốt nghiệp vừa qua để em có thể hoàn thành đồ án một cách tốt nhất.
Tiếp theo, em xin gửi lời cảm ơn chân thành tới gia đình, bạn bè, những
người thân đã cổ vũ, động viên tiếp thêm cho em nghị lực để em hoàn thành bản
báo cáo thực tập tốt nghiệp này.
Em xin chân thành cảm ơn !
Thái Nguyên, tháng 06 năm 2012
Sinh viên
Nguyễn Thị Vẻ

1


LỜI CAM ĐOAN
Trong kỳ làm đồ án tốt nghiệp này để hoàn thành nội dung bản đồ án bản
thân em đã tự tìm hiểu, nghiên cứu dựa trên các tạp chí, sách báo và những
nguồn tài liệu trên internet, cộng với sự giúp đỡ nhiệt tình của ThS. Lê Đỗ Văn
Toàn và sự tham khảo cách thức trình bày từ một một số đồ án từ các khóa
trước. Kết quả là em đã hoàn thành đồ án với đề tài “Xây dựng ứng dụng giới
thiệu sách và đọc sách điện tử trên thiết bị di động sử dụng hệ điều hành
Android”.
Em xin cam đoan nội dung trong đồ án này không sao chép từ các đồ án
trước đó. Nếu có điều gì sai sót em xin chịu hoàn toàn trách nhiệm.
Thái Nguyên, tháng 6 năm 2012
Sinh Viên


Nguyễn Thị Vẻ

2


MỤC LỤC
CHƯƠNG 1..............................................................................................................1
CƠ SỞ LÝ THUYẾT..............................................................................................1
CHƯƠNG 2............................................................................................................24
PHÂN TÍCH THIẾT KẾ.......................................................................................24
CHƯƠNG 3............................................................................................................56
CÀI ĐẶT VÀ MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC................................................56

3


DANH MỤC HÌNH ẢNH
..................................................................................................................................1
Hình 1-1. Android Timeline.....................................................................................1
..................................................................................................................................2
Hình 1-2. Kiến trúc Android...................................................................................2
..................................................................................................................................3
Hình 1-3. Kiến trúc tầng Application Framework...................................................3
..................................................................................................................................4
Hình 1-4. Kiến trúc tầng Android Runtime and Libraries......................................4
..................................................................................................................................4
Hình 1-5. Kiến trúc tầng hạt nhân Linux.................................................................4
..................................................................................................................................7
Hình 1-6. Sơ đồ chu kỳ sống của Activity...............................................................7
................................................................................................................................10

Hình 1-7. Chu kỳ sống của một ứng dụng Android..............................................10
................................................................................................................................10
Hình 1-8. Activity stack.........................................................................................10

Hình 1-9. Chồng giao thức của dịch vụ Web........................................................13
................................................................................................................................14
Hình 1-10: Kiến trúc của Dịch vụ Web.................................................................14
................................................................................................................................21
Hình 1-11. Cấu trúc cây.........................................................................................21
................................................................................................................................23

4


Hình 1-12. Dạng file XML....................................................................................23
................................................................................................................................23
Hình 1-13. Cấu trúc DOM.....................................................................................23
................................................................................................................................33
Hình 2-1. Use case tổng thể...................................................................................33
Hình 2-2. Use Case cho chức năng đọc sách.........................................................34
Hình 2-3. Use Case cho chức năng giới thiệu sách...............................................35
................................................................................................................................35
Hình 2-4: Use Case cho chức năng Cập nhật Chủ đề, Tác giả............................35
................................................................................................................................46
Hình 2-4. Biểu đồ hoạt động của use case U0: Home...........................................46
................................................................................................................................47
Hình 2-5. Biểu đồ hoạt động của Use Case U10:Tìm kiếm..................................47
................................................................................................................................47
Hình 2-6. Biểu đồ hoạt động của Use Case U6: Danh sách chủ đề......................47
................................................................................................................................48

Hình 2-1. Biểu đồ hoạt động của use case U5: Danh sách tác giả.......................48
................................................................................................................................48
Hình 2-2. Biểu đồ hoạt động của use case U13: Danh sách các sách theo chủ đề
................................................................................................................................48
................................................................................................................................49
Hình 2-3. Biểu đồ hoạt động của use case U19: Chi tiết sách..............................49
................................................................................................................................49
Hình 2-10. Biểu đồ hoạt động của use case U26: Danh sách sách theo chủ.......49

5


................................................................................................................................50
Hình 2-11. Biểu đồ hoạt động của use case U31: Thêm chủ đề..........................50
................................................................................................................................50
Hình 2-12. Biểu đồ hoạt động của use case U27: Xem chi tiết............................50
................................................................................................................................51
Hình 2-13. Biểu đồ tuần tự cho client....................................................................51
2.7.2 Chức năng U0: Home...................................................................................51
Hình 2-14. Biểu đồ tuần tự cho chức năng U0:Home...........................................51
................................................................................................................................52
Hình 2-15. Biểu đồ tuần tự cho chức năng U5: Danh sách tác giả.......................52
................................................................................................................................52
Hình 2-16. Biểu đồ tuần tự cho chức năng U19:Chi tiet sach..............................52
................................................................................................................................53
Hình 2-17. Biểu đồ tuần tự cho chức năng U10: Tìm kiếm..................................53
................................................................................................................................53
Hình 2-18. Biểu đồ tuần tự cho chức năng U13: Danh sách các sách theo chủ đề
................................................................................................................................53
Hình 2-19. Bảng cơ sở...........................................................................................56

................................................................................................................................57
Hình 3-1. Cấu trúc các thư mục của module client...............................................57
................................................................................................................................58
Hình 3-2. Màn hình hiển thị Trang Chủ và chức năng đọc sách..........................58
Hình 3-3. Các giao diện của chức năng Đọc Sách theo Tác giả...........................59
Hình 3-4. Giao diện của chức năng đọc sách theo chủ để....................................60

6


Hình 3-5. Giao diện của chức năng đọc sách theo Danh Sách.............................61
Hình 3-6. Giao diện hiển thị của chức năng giới thiệu sách theo Tác giả............61
................................................................................................................................62
Hình 3-7. Giao diện hiển thị của chức năng Giới Thiệu Sách theo Chủ Đề.........62
................................................................................................................................63
Hình 3-8. Giao diện hiển thị của chức năng Giới Thiệu Sách theo Danh Sách....63
Hình 3-9 Giao diện hiển thị kết quả của chức năng tìm kiếm...............................64
Và khi click vào từng cuốn sách thì chức năng này cũng giống như các chức
năng ở trên là sẽ hiển thị ra giao diện đọc sách như dưới đây: ...........................64
................................................................................................................................64
Hình 3-10: Giao diện chức năng đọc sách trong chức năng tìm kiếm..................64
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI.....................................65

7


CHƯƠNG 1
CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về Android
1.1.1 Khái niệm Android

Android là một hệ điều hành dành cho thiết bị di động như điện thoại,
máy tính bảng và netbooks. Android được phát triển bởi Google, dựa trên nền
tảng Linux kernel và các phần mềm nguồn mở.
1.1.2 Lịch sử Android
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi
Linux do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó
được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform.

Hình 1-1. Android Timeline.
Vào cuối 2007, thuộc về Liên minh Thiết bị Cầm tay Mã Nguồn mở
(Open Handset Alliance) . Phiên bản SDK lần đầu tiên phát hành vào tháng 11
năm 2007. Một vài ngày sau đó, Google lại tiếp tục công bố sự ra mắt phiên bản
Android SDK release Candidate 1.0. Trong tháng 10 năm 2008, Google được cấp
giấy phép mã nguồn mở cho Android Platform. Vào cuối năm 2008 thì Google
cũng cho phát hành một phiên bản vá lỗi 1.1 của hệ điều hành này. Android phát
hành SDK 1.5 vào tháng Tư năm 2009.
1.1.3 Kiến trúc Android

1


Hệ điều hành android có 4 tầng từ dưới lên trên là: Tầng hạt nhân Linux,
tầng Libraries & Android runtime , tầng Application Framework

và tầng

Application.

Hình 1-2. Kiến trúc Android
a, Tầng Application.

Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng
như: Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọi
điện(phone), quản lý danh bạ (Contacts), duyệt web (Browser), nhắn tin (SMS),
lịch làm việc (Calendar), đọc e-mail (Email-Client), bản đồ (Map), quay phim
chụp ảnh(camera)... Các ứng dụng được cài thêm như các phần mềm chứng
khoán (Stock), các trò chơi (Game), từ điển, các widget các ứng dụng của bên
thứ 3…

b, Tầng Application Framework

2


Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho
các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng
tạo. Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm
truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động.

Hình 1-3. Kiến trúc tầng Application Framework
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử
dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa
việc sử dụng lại các thành phần. Cơ bản tất cả các ứng dụng là một bộ các dịch
vụ và các hệ thống, bao gồm: View Manage, Activity Manager, Telephony
Manager, Location Manager, Window Manager, Notication Manager, Resource
Manager, Content Provider.
c, Tầng Android Runtime and Libraries
Phần Library
Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có
thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như : Thư viện hệ
thống (System C library)(Libc); Thư viện Media (Media Libraries); Thư viện

web (LibWebCore); Surface Manage ; SGL công nghệ 2D ; SQLite ; Free Type;
SSL(Secure Socket Layer); Open GL/EL.

3


Hình 1-4. Kiến trúc tầng Android Runtime and Libraries
Phần Android Runtime
Chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể
hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính
thường. Thứ nhất là các thư viện lõi (Core Library), chứa các lớp như JAVA IO,
Collections, File Access. Thứ hai là một máy ảo java (Dalvik Virtual Machine)
d, Tầng hạt nhân Linux(Linux Kernel layer)

Hình 1-5. Kiến trúc tầng hạt nhân Linux
Hệ điều hành android được phát triển dựa trên hạt nhân linux, cụ thể là hạt
nhân linux phiên bản 2.6. Tất cả mọi hoạt động của điện thoại muốn thi hành
được thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ
(memory management), giao tiếp với phần cứng (driver model), thực hiện bảo
mật (security), quản lý tiến trình (process).

4


1.1.4 Các thành phần cấu thành Android project
a, Android Emulator
Android SDK và Plugin Eclipse được gọi là một Android Deverloper
Tool(ADT). Các lập trình viên cần phải sử dụng công cụ IDE (Integrated
Development Enveronment) để phát triển, debugging và testing cho các ứng
dụng.

Android Emulator có một số đã bị giới hạn như là kết nối qua cổng USB,
camera và video, nghe phone, nguồn điện giả lập và bluetooth.
b, Các thành phần tạo nên Android Project
Activity
Activity là nền của 1 ứng dụng. Khi khởi động 1 ứng dụng Android nào
đó thì bao giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của
ứng dụng cho phép người dùng tương tác.
Content Provider
Kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và chia sẻ
dữ liệu giữa các ứng dụng.
Intents
Intent được sử dụng để gửi các thông báo đi nhằm khởi tạo 1 Activity hay
Service để thực hiện công việc bạn mong muốn. VD: khi mở 1 trang web, bạn
gửi 1 intent đi để tạo 1 activity mới hiển thị trang web đó.
Services
Thành phần chạy ẩn trong Android. Service sử dụng để update dữ liệu,
đưa ra các cảnh báo (Notification) và không bao giờ hiển thị cho người dùng
thấy.
Broadcast Receiver
Thành phần thu nhận các Intent bên ngoài gửi tới. VD: bạn viết 1 chương

5


trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn cần 1 BR để
nhận biết các Intent là các cuộc gọi tới.
Notification
Đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt
động.
Activity, Service, Broadcast Receiver và Content Provider mới là những

thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong
AndroidManifest.
File AndroidManifest
Trong khung package Explorer, ở phía dưới thư mục res, sẽ thấy một file
có tên là AndroidManifest.xml. Mỗi ứng dụng đều cần có file này để mô tả
những thông tin quan trọng của nó cho hệ thống Android biết.
Cụ thể những công việc mà AndroidManifest.xml thực hiện :
-

Đặt tên cho java package của ứng dụng.

-

Mô tả các thành phần của ứng dụng : activity, service, broadcast receiver
hoặc content provider.

-

Thông báo những permission mà ứng dụng cần có để truy nhập các
protected API và tương tác với các ứng dụng khác.

-

Thông báo những permission mà ứng dụng khác cần có để tương tác với
ứng dụng hiện thời

-

Thông báo level thấp nhất của Android API mà ứng dụng cần để chạy.
(Android 1.0 là level 1, 1.1 là level 2, 1.5 là level 3, 1.6 là level 4 ….)


c, Chu kỳ sống của Activity

6


Hình 1-6. Sơ đồ chu kỳ sống của Activity
Activity có bốn trạng thái:
- Active (running): Activity đang hiển thị trên màn hình (foreground).
- Paused: Activity vẫn hiển thị (visible), không thể tương tác (lost focus).
- Stop: Activity bị thay thế bởi Activity mới sẽ tiến đến trạng thái stop.
- Killed: Khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo
nguyên tắc ưu tiên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị
giải phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại
hoàn toàn và phục hồi lại trạng thái trước đó.
Các phương thức của chu kỳ sống Activity
-

onCreate(): Được gọi khi activity lần đầu tiên được tạo. Làm tất cả các
cài đặt tĩnh như tạo các view, kết nối dữ liệu đến list.

-

onRestart(): Được gọi sau khi activity đã được dừng, chỉ một khoảng
đang khởi động lần nữa (stared again).

-

onStart(): Được gọi trước khi một activity visible với người dùng.


7


-

onResume(): Được gọi trước khi activity bắt đầu tương tác với người
dùng. Tại thời điểm này activity ở trên đỉnh của stack activity.

-

onPause(): Được gọi khi hệ thống đang resuming activity khác. Phương
thức này là điển hình việc giữ lại không đổi dữ liệu

-

onStop(): Được gọi khi activity không thuộc tầm nhìn của người dùng. Nó
có thể diễn ra bởi vì nó đang bị hủy, hoặc bởi vì activity khác vừa được
resumed và bao phủ nó.

- onDestroy(): Được gọi trước khi activity bị hủy. Đó là lần gọi cuối cùng mà
activity này được nhận. Nó được gọi khác bởi vì activity đang hoàn thành, hoặc
bởi vì hệ thống tạm thời bị hủy diệt để tiết kiệm vùng nhớ.
d, Content Provider và URI
Content Provider cung cấp cho chúng ta một đối tượng con trỏ giúp chúng
ta có thể dễ dàng lấy được bất cứ dữ liệu lưu trữ nào chỉ cần cung cấp một đường
dẫn đúng đến dữ liệu đó. Đường dẫn này còn được gọi là Uri.
• Tạo một Uri:

Uri uri = Uri.parse(“content://com.android.contacts/contacts”);
e, Background Service

Service là 1 trong 4 thành phần chính trong 1 ứng dụng Android (Activity,
Service, BroadcastReceiver, ContentProvider) thành phần này chạy trong hậu
trường và làm những công việc không cần tới giao diện như chơi nhạc,
download, xử lý tính toán…

f, SQLite

8


SQLite là một dạng CSDL tương tự như MySQL, PostgreSQL... Đặc điểm
của SQLite là gọn, nhẹ, đơn giản. Chương trình gồm 1 file duy nhất vỏn vẹn
chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà có thể
sử dụng ngay. Dữ liệu database cũng được lưu ở một file duy nhất. Không có
khái niệm user, password hay quyền hạn trong SQLite database. SQLite phát huy
uy lực mạnh trên các thiết bị có quy mô vừa và nhỏ. Hiện nay thì SQLite đã được
ứng dụng vào smartphone như iPhone và Android để lưu trữ dữ liệu.
1.1.5 Chu kỳ ứng dụng Android
Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho
ứng dụng khi codes cần được run và sẽ còn chạy cho đến khi:
-

Nó không phụ thuộc.

-

Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác
Một sự khác thường và đặc tính cơ bản của Android là thời gian sống của

tiến trình ứng dụng không được điều khiển trực tiếp bới chính nó. Thay vào đó,

nó được xác định bởi hệ thống qua một kết hợp của:
-

Những phần của ứng dụng mà hệ thống biết đang chạy

-

Những phần quan trọng như thế nào đối với người dùng. Bao nhiêu vùng

nhớ chiếm lĩnh trong hệ thống.
a, Chu kỳ sống thành phần
Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ
lúc bắt đầu khởi tạo và đến thời điểm kết thúc. Ở giữa, đôi lúc chúng có thể là
active hoặc inactive, hoặc là trong trường hợp activies nó có thể visible hoặc
invisible.

9


Hình 1-7. Chu kỳ sống của một ứng dụng Android
b, Activity Stack

Hình 1-8. Activity stack
Bên trong hệ thống các activity được quản lý như một activity stack. Khi
một Activity mới được start, nó được đặt ở đỉnh của stack và trở thành activity
đang chạy activity trước sẽ ở bên dưới activity mới và sẽ không thấy trong suốt
quá trình activity mới tồn tại.
1.2. Web service
1.2.1 Giới thiệu công nghệ
Dịch vụ Web là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng

tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng

10


Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML. Dịch vụ
Web là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các
chức năng và đưa ra các thông tin người dùng yêu cầu. Một dịch vụ Web được
tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng
khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ mà nó thực hiện,
đồng thời có thể yêu cầu thông tin từ dịch vụ Web khác. Nó bao gồm các mô-đun
độc lập cho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực
thi trên server.
Trước hết, có thể nói rằng ứng dụng cơ bản của Dịch vụ Web là tích hợp
các hệ thống và là một trong những hoạt động chính khi phát triển hệ thống.
Trong hệ thống này, các ứng dụng cần được tích hợp với cơ sở dữ liệu (CSDL)
và các ứng dụng khác, người sử dụng sẽ giao tiếp với CSDL để tiến hành phân
tích và lấy dữ liệu. Trong thời gian gần đây, việc phát triển mạnh mẽ của thương
mại điện tử và B2B cũng đòi hỏi các hệ thống phải có khả năng tích hợp với
CSDL của các đối tác kinh doanh (nghĩa là tương tác với hệ thống bên ngoài –
bên cạnh tương tác với các thành phần bên trong của hệ thống trong doanh
nghiệp).
1.2.2 Đặc điểm của Dịch vụ Web
a, Đặc điểm
-

Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả
trong những môi trường khác nhau. Ví dụ,Web server chạy hệ điều hành
Linux, client chạy hệ điều hành Windows, vẫn có thể chạy và xử lý bình
thường


-

Phần lớn kĩ thuật của Dịch vụ Web được xây dựng dựa trên mã nguồn mở
và được phát triển từ các chuẩn đã được công nhận, ví dụ như XML.

-

Một Dịch vụ Web bao gồm có nhiều mô-đun và có thể công bố lên mạng
Internet.

-

Là sự kết hợp của việc phát triển theo hướng từng thành phần với những
lĩnh vực cụ thể và cơ sở hạ tầng Web.

11


-

Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server.
Những lĩnh vực trong cuộc sống có thể áp dụng và tích hợp dịch vụ Web

là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có
kết nối đến web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các
dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…), các đại lý bán hàng
qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua mạng…
hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông
tin thuê xe…

b, Ưu và nhược điểm
Ưu điểm:
-

Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng
phần mềm khác nhau chạy trên những nền tảng khác nhau.

-

Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa
trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được.

-

Nâng cao khả năng tái sử dụng.

-

Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép
các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web.

-

Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần
trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.

-

Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành
hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống

của các doanh nghiệp khác.

Nhược điểm:
-

Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web,
giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng
cấp, thiếu các giao thức cho việc vận hành.

-

Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.

12


-

Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.

1.2.3 Kiến trúc của Dịch vụ Web
Dịch vụ Web gồm có 3 chuẩn chính: SOAP (Simple Object Access
Protocol), WSDL (Web Service Description Language) và UDDI (Universal
Description, Discovery, and Integration). Hình 1-9 mô tả chồng giao thức của
dịch vụ Web, trong đó UDDI được sử dụng để đăng ký và khám phá dịch vụ
Web đã được miêu tả cụ thể trong WSDL. Giao tác UDDI sử dụng SOAP để nói
chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web.
Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP.

Hình 1-9. Chồng giao thức của dịch vụ Web

Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính
được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web
tương tác với những ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành
phần chính:
-

Dịch vụ vận chuyển (Service Transport): Có nhiệm vụ truyền thông điệp
giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP,
FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks
Extensible Exchange Protocol- BEEP).

13


-

Thông điệp XML: Có nhiệm vụ giải mã các thông điệp theo định dạng
XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng.
Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và
REST.

-

Mô tả dịch vụ: Được sử dụng để miêu tả các giao diện chung cho một dịch
vụ Web cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một
ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML.

-

Khám phá dịch vụ: Tập trung dịch vụ vào trong một nơi được đăng ký, từ

đó giúp một dịch vụ Web có thể dễ dàng khám phá ra những dịch vụ nào
đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương
tác.

Hình 1-10: Kiến trúc của Dịch vụ Web
Trong đó, tầng giao thức tương tác dịch vụ (Service Communication
Protocol) với công nghệ chuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận
chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một
dịch vụ từ xa thông qua một thông điệp XML. Ngoài ra, để các dịch vụ có tính an
toàn, toàn vẹn và bảo mật thông tin, trong kiến trúc dịch vụ Web, chúng ta có
thêm các tầng Policy, Security, Transaction, Management.
1.2.4 Các thành phần của Dịch vụ Web

14


a, XML – eXtensible Markup Language
Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử
dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu
B2B. Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML
nhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định
nghĩa những thành phần đó chứa cái gì. Với XML, các thẻ có thể được lập trình
viên tự tạo ra trên mỗi trang web và được chọn là định dạng thông điệp chuẩn bởi
tính phổ biến và hiệu quả mã nguồn mở.
b, WSDL – Web Service Description Language
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của
XML, bao gồm các thông tin:
-

Tên dịch vụ.


-

Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của dịch vụ
Web.

-

Loại thông tin: Thao tác, tham số, những kiểu dữ liệu (có thể là giao diện
của dịch vụ Web cộng với tên cho giao diện này).
Một WSDL hợp lệ gồm hai phần: Phần giao diện (mô tả giao diện và

phương thức kết nối) và phần thi hành mô tả thông tin truy xuất CSDL. Cả hai
phần này sẽ được lưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ
và tập tin thi hành dịch vụ. Giao diện của một dịch vụ Web được miêu tả trong
phần này đưa ra cách thức làm thế nào để giao tiếp qua dịch vụ Web. Tên, giao
thức liên kết và định dạng thông điệp yêu cầu để tương tác với dịch vụ Web được
đưa vào thư mục của WSDL.
WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung
cấp dịch vụ Web qua Internet. Một client khi kết nối tới dịch vụ Web có thể đọc
WSDL để xác định những chức năng sẵn có trên server. Sau đó, client có thể sử
dụng SOAP để lấy ra chức năng chính xác có trong WSDL.
c, Universal Description, Discovery, and Integration (UDDI)

15


Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận
thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ. UDDI
định nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy

tìm và nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web như: Cấu
trúc UDDI, trang trắng (White pages), trang vàng (Yellow pages), trang xanh
(Green pages), loại dịch vụ (tModel).
Những thông tin về dịch vụ Web được sử dụng và công bố lên mạng sử
dụng giao thức này. Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của dịch
vụ Web khác nhằm xác định xem dịch vụ nào sẽ cần đến nó.
d, SOAP – Simple Object Access Protocol
Các dịch vụ Web có thể truy xuất bằng một giao thức là Simple Object
Access Protocol – SOAP. Nói cách khác chúng ta có thể truy xuất đến UDDI
registry bằng các lệnh gọi hoàn toàn theo định dạng của SOAP.
SOAP là một giao thức giao tiếp có cấu trúc như XML. Nó được xem là
cấu trúc xương sống của các ứng dụng phân tán được xây dựng từ nhiều ngôn
ngữ và các hệ điều hành khác nhau. SOAP là giao thức thay đổi các thông điệp
dựa trên XML qua mạng máy tính, thông thường sử dụng giao thức HTTP.
Cấu trúc một thông điệp theo dạng SOAP
Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao
gồm các phần tử sau: Phần tử gốc (envelop), phần tử đầu trang (header), phần tử
khai báo nội dung chính trong thông điệp (body), phần tử đưa ra các thông tin về
lỗi(fault).
Có 3 kiểu thông báo sẽ được đưa ra khi truyền thông tin: Request
message(tham số gọi thực thi một thông điệp), respond message (các tham số trả
về, được sử dụng khi yêu cầu được đáp ứng) và cuối cùng là fault message
(thông báo tình trạng lỗi).
Kiểu truyền thông: Có 2 kiểu truyền thông

16


-


Remote procedure call (RPC): Cho phép gọi hàm hoặc thủ tục qua mạng.
Kiểu này được khai thác bởi nhiều dịch vụ Web.

-

Document: Được biết đến như kiểu hướng thông điệp, nó cung cấp giao
tiếp ở mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công
sức hơn.
Hai kiểu truyền thông này cung cấp các định dạng thông điệp, tham số, lời

gọi đến các API khác nhau nên việc sử dụng chúng tùy thuộc vào thời gian và sự
phù hợp với dịch vụ Web cần xây dựng.
Cấu trúc dữ liệu:
Cung cấp những định dạng và khái niệm cơ bản giống như trong các ngôn
ngữ lập trình khác như kiểu dữ liệu (int, string, date…) hay những kiều phức tạp
hơn như struct, array, vector… Định nghĩa cấu trúc dữ liệu SOAP được đặt trong
namespace SOAP-ENC.
Mã hóa:
Giả sử service rquester và service provider được phát triển trong Java, khi
đó mã hóa SOAP là làm thế nào chuyển đổi từ cấu trúc dữ liệu Java sang SOAP
XML và ngược lại, bởi vì định dạng cho Web Service chính là XML. Bất kỳ một
môi trường thực thi SOAP nào cũng phải có một bảng chứa thông tin ánh xạ
nhằm chuyển đổi từ ngôn ngữ Java sang XML và từ XML sang Java – bảng đó
được gọi là SOAP Mapping Registry. Nếu một kiểu dữ liệu được sử dụng dưới
một dạng mã hóa thì sẽ có một ánh xạ tồn tại trong bộ đăng ký của môi trường
thực thi SOAP đó.
1.2.5 An toàn cho dịch vụ Web
Việc đảm bảo an toàn cho dịch vụ Web là một vấn đề quan trọng, đặc biệt
đối với những dịch vụ liên quan đến trao đổi tiền tệ, thông tin từ thị trường chứng
khoán hay dịch vụ bán hàng qua mạng...Hiện nay, nó được thực hiện cho những

SOAP/HTTP dựa trên cơ chế truyền thông điệp bằng cách sử dụng giao thức
HTTPS.

17


Đảm bảo an toàn cho dịch vụ Web:
WS-Security: Đây là một chuẩn an toàn bao trùm cho SOAP, nó được
dùng khi muốn xây dựng những dịch vụ Web toàn vẹn và tin cậy. WS-security
được thiết kế mang tính mở nhằm hướng tới những mô hình an toàn khác bao
gồm PKI, Kerberos và SSL. Tuy nhiên, WS-security cũng chưa thể đảm bảo
được tất cả yêu cầu về bảo mật và an toàn thông tin, nó chỉ là một trong những
lớp của giải pháp an toàn cho dịch vụ Web.
Các thành phần được thêm để tăng cường tính bảo mật có thể là WSSecure

Conversation

Describes,WS-Authentication

Describes,WS-Policy

Describes hay WS-Trust Describes.
1.2.6. Xây dựng một dịch vụ Web
Có 4 giai đoạn chính để xây dựng một dịch vụ Web là:
-

Giai đoạn xây dựng : Bao gồm phát triển và chạy thử ứng dụng dịch vụ
Web, xây dựng các chức năng và định nghĩa dịch vụ.

-


Giai đoạn triển khai: Công bố định nghĩa dịch vụ, xây dựng WSDL và
triển khai mã thực thi của dịch vụ Web. Triển khai dịch vụ Web tới một
ứng dụng phía server, sau đó sẽ công bố dịch vụ Web trên mạng Internet
để các client có thể nhìn thấy.

-

Giai đoạn tiến hành: Tìm kiếm và gọi thực thi dịch vụ Web bởi những
người dùng muốn sử dụng dịch vụ.

-

Quản lý: Quản lý và quản trị dịch vụ, duy trì sự ổn định của dịch vụ, cập
nhật thông tin mới, sửa lỗi khi nó xảy ra…

Qui trình xây dựng một dịch vụ Web bao gồm các bước sau:
1. Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ cung
cấp (sử dụng ngôn ngữ Java chẳng hạn).

18


×