Tải bản đầy đủ (.docx) (68 trang)

Xây dựng chương trình chia sẻ tài liệu trên 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 (1010.19 KB, 68 trang )

LỜI CAM ĐOAN
Em xin cam đoan về nội dung của đồ án tốt nghiệp với tên đề tài : “xây
dụng chương trình chia sẻ tài liệu trên Android >'> là không sao chép nội dung
cơ bản từ các đồ án khác, hay sản phẩm tương tự không phải do em làm ra. Sản
phẩm đồ án là do chính bản thân em nghiên cứu và xây dựng.
tháng 06 năm 2012 Sinh viên
thực hiện

Lưu Đình Long

1


MỤC LỤC


DANH MỤC HÌNH ẢNH


LỜI MỞ ĐẦU
Các thiết bị di động đang chiếm một vai trò rất lớn trong cuộc sống của
chúng ta. Những chiếc điện thoại ngày càng trở nên “thông minh” hơn, giá thành
hạ, mẫu mã đẹp và bên cạnh đó chúng còn được trang bị cho mình một hệ điều
hành manh mẽ. Có thể kể đến một số hệ điều hành nổi tiếng trong thế giới điện
thoại đi động như Symbian, Apple, Mobile Windows, RIM...
Đặc biệt Google và HTC đã tung ra một hệ điều hành mới làm cả thế giới
phải chú ý đó là hệ điều hành Andorid. Với ưu thế là hệ điều hành mã nguồn mở,
việc phát triển ứng dụng trên nền Android trở nên dễ dàng hơn và được hỗ trợ
nhiều hơn bởi cộng đồng mã nguồn mở trên toàn thế giới.
ứng dụng của các thiết bị di động rất rộng rãi trong đời sống, trong nhiều
lĩnh vực: giải trí, học tập, tiện ích... Trong điện thoại của chúng ta chứa những bức


ảnh đẹp, những video, những tài liệu học tập quan trọng. Việc lưu trữ, backup và
chia sẻ nó là cần thiết. Vì các lý do đó em quyết định chọn đồ án với tên đề tài:
“Xây dụng chương trình chia sẻ tài liệu trên Android”
Nội dung của đồ án bao gồm:
chương 1: Tổng quan đề tài và cơ sở lý thuyết. Trong chương trình bày tổng quan
về đề tài, lý do chọn đề tài, mục tiêu đề tài, hướng tiếp cận giải quyết, xây dựng
chương trình. Tổng quan hệ điều hành android và web service. Trình bày tổng quan
các kiến thức về hệ điều hành Android, gồm lịch sử phát triển, đặc điểm và kiến
trúc hệ điều hành Android. Trình bày tổng quát web service, khái niệm, đặc điểm,
cấu trúc một webservice, khái niệm Web service sử dụng ASP.NET.
chương 2: Phân tích thiết kế chương trình chia sẻ tài liệu trên android. Trong
chương trình bày phân tích và thiết kế chương trình chia sẻ tài liệu, chương 3: Xây
dựng ứng dụng chia sẻ tài liệu trên android. Phần này trình bày quá trình xây dựng
ứng dụng. Kiểm thử chương trình, kết luận và hướng phát triển
Tổng kết những kết quả đã được, những ưu, nhược điểm của chương trình.
Hướng phát triển của chương trình.

CHƯƠNG 1
TỔNG QUAN ĐỀ TÀI VÀ cơ SỞ LÝ THUYẾT


1.1. Tổng quan đề tài
1.1.1. Yêu cầu và lý do thực hiện đề tài
Tài liệu, thông tin là tài sản quý. Những file tài liệu kinh doanh với những
số liệu quan trọng, những giáo trình học tập. Những cuốn sách hay. Những hình
ảnh, video kỷ niệm. Sẽ rất phiền toái nếu vì một lý do nào đó chúng ta đánh mất
những tài liệu này. Một dịch vụ sao lưu và chia sẻ tài liệu là rất cần thiết. Những
dịch vụ này cho phép mỗi người sử dụng máy tính, điện thoại... có thể sao lưu cất
giữ hoặc chia sẻ tài liệu của minh cho người khác. Có rất nhiều phần mềm, dịch vụ
sao lưu chia sẻ tài liệu trực tuyến. Đây là những dịch vụ giúp người dùng có thể sao

lưu và chia sẻ tài liệu. Một số phần mền nổi tiếng và được sử dụng nhiều có thể kể
đến như:
a) Dropbox
Là dịch vụ sao lưu, lưu trữ dữ liệu trực tuyến với khả năng đồng bộ theo
thời gian thực và tự động thực hiện sao lưu, hỗ trợ miễn phí 2GB dung lượng lưu
trữ trực tuyến trên máy chủ. Dropbox cho phép người dùng sao lưu nhanh chóng dữ
liệu của mình. Dữ liệu của người dùng sẽ được lưu trên server, người dùng có thể
đồng bộ dữ liệu, hoàn tác những thao tác chỉnh sửa dữ liệu với lịch sử được lưu là
30 ngày.
b) Google picasa, google document
Google là công ty cung cấp nhiều dịch vụ internet trong đó có hai dịch vụ
sao lưu và chia sẻ dữ liệu nổi tiếng đó là google-picasa và google-document. Mỗi
người dùng đăng ký tài khoản của google sẽ có 1GB dung lượng dành cho sao lưu,
chia sẻ hình ảnh trên dịch vụ picasa và sẽ có 1GB cho lưu trữ tài liệu trên dịch vụ
google-document. Google có hệ thống server mạnh, được bố trí khắp thế giới, dịch
vụ lưu trữ nhanh và người dùng cũng rất dễ dàng quản lý và chia sẻ tài liệu của
mình.
c) Skydriver
Skydriver là dịch vụ sao lưu, chia sẻ dữ liệu của tập đoàn Microsoft. Người
sử dụng sau khi đăng ký tài khoản sẽ có 7GB dung lượng bộ nhớ để sao lưu và chia
sẻ tài liệu. Giao diện Skydriver dễ sử dụng, băng thông upload và download có thể


điều chỉnh. Một phần mềm chạy trên máy client giúp người dùng dễ dàng upload,
download, đồng bộ và chỉnh sửa tài liệu của họ. c) Các dịch vụ sao lưu, chia sẻ dữ
liệu khác
Bên cạnh những công ty, những dịch vụ chia sẻ dữ liệu trực quan trên thị
trường internet còn nhiều dịch vụ sao lưu, chia sẻ dữ liệu nổi tiếng khác như:
-


Mediafire.com

-

Uploading.com

-

Hotfile.com
Đây là một số dịch vụ sao lưu trên môi trường PC được sử dụng phổ biến.

Trên thị trường thiết bị di động các phần mềm chia sẻ tài liệu chưa nhiều và chưa
có nhiều phần mềm chia sẻ dữ liệu giữa người dùng với nhau thông qua một
chương trình ứng dụng. Dropbox có client chạy trên thiết bị iphone và Android
nhưng chức năng chia sẻ giữa người dùng với nhau qua thiết bị di động là chưa có.
Đô án được xây dựng với các chức năng giúp người sử dụng backup tài liệu, chia
sẻ tài liệu tránh khỏi những phiền toái khi bạn bị mất máy hoặc máy gặp trục trặc.
Chương trình chia sẻ tài liệu là một phần mềm dịch vụ, giúp người sử dụng điện
thoại có thêm tiện ích khi sử dụng. Người sử dụng có thể backup những dữ liệu
quan trọng, tránh những trường hợp làm mất thông tin. Người sử dụng còn có thể
chia sẻ những tài liệu trên máy của họ cho mọi người, chia sẻ những bức ảnh đẹp,
những video, hay những tài liệu học tập, văn bản. Đây là những lý do em chọn đề
tài “Xây dựng chương trình chia sẻ tài liệu trên Android'.
1.1.2. Mục tiêu của đề tài
Mục tiêu của đề tài là nhằm đưa ra một giải pháp bổ sung, khả thi cùng với
các dịch vụ sao lưu khác trên điện thoại như Dropbox cung cấp tiện ích cho người
sử dụng. Hơn thế nữa, mục tiêu của chương trình còn giúp người sử dụng dễ dàng
hơn trong việc chia sẻ tài liệu trên điện thoại, cụ thể là Android.
1.1.3. Hướng tiếp cận của đề tàỉ
Phương pháp đưa ra là sử dụng web Service. Một dịch vụ web chạy trên

server thực hiện các công việc quản lý người dùng và quản lý tài liệu của mỗi


người dùng. Một mô hình Client - server. Phía Client giao tiếp với server thực hiện
các chức năng của chương trình.
Công viêc chính thực hiện để tài bao gồm:
-

Tìm hiểu và cài đặt Server trên nền ASP.NET.

-

Tìm hiểu và xây dựng web Service kết nối với Client và cơ sở dữ liệu.

-

Tìm hiểu và cài đặt Client trên nền hệ điều hành Android.

-

Tìm hiểu các phương thức truyền dữ liệu giữa môi trường Android(java
SE) và ASP.NET
1.2.

Tổng quan hệ điều hành
Android 1.2.1. Lịch sử phát triển

Android là hệ điều hầnh/môi trường lập trình được phát triển bởi Google, đã
được tổ chức Open Handset Alliance chứng nhận Android là nền tảng mã nguồn
mở đầu tiên hoàn toàn miễn phí, mở, và chứa đầy đủ các yếu tố cần thiết để phát

ừiển ứng dụng cho điện thoại di động. Được chính thức ra đời năm 2005, cho tới
nay Androỉd đã phát triển nhanh và mạnh với nhiều phiên bản và được ưa dùng.
Các phiên bản của Androỉd:

arcn



?O08



7BG0

1-Mtfk-iii (J.1 Arnounosd I ü.|)p( 1 0 Ha leased
2007

nrtrIE ■

a»7
OHM AmnounMtf

2QỌ*

I Android Open.So.irair)



2W7
iHrty Lmoh SDK




I iưr.qte Blip Andrea he. ■ wbthen tafcft vM 3a/te

Hình 1.1: Lịch sử phát triển Android
1.2.2.
Đăc điểm của hê điều hành
Android • •
Android là một môi trường giúp phát triển phần mềm cho các thiết bị di
động. Nó không phải là nền tảng cho phần cứng. Android bao gồm một nhân hệ
điều hành dựa trên nhân của hệ điều hành mã nguồn mở Linux, một giao diện
người dùng phong phú, các ứng dụng cho người dùng cuối, thư viện mã, frame
work, hỗ trợ đa phương tiện,... Một đặc điểm mạnh mẽ khác của Android nó là một
nền tảng mã nguồn mở, điều này rất có lợi trong việc cung cấp các yếu tố còn thiếu


(các thư viện, các công cụ hỗ trợ phát triển ứng dụng) bởi cộng đồng phát triển mã
nguồn mở toàn cầu. Không chỉ hỗ trợ các thiết bị có cấu hình phần cứng mạnh
được biết tới là các “Smart Phone” Android hỗ trợ được các nền tảng phần cứng
khác tất nhiên phải đảm bảo được tốc độ xử lý.
Giống với lập trình ứng dụng trong WINDOWS được cung cấp các tính
năng thỏa mãn sự hỗ trợ của hệ điều hành như cung cấp các cửa sổ, các nút bấm,
các textbox,... các hệ quản trị cơ sở dữ liệu cho phép truy xuất, thay đổi, lưu trữ
như MySQL, SQL server,...
Trong hệ điều hành Android cũng cung cấp các khái niệm này, tuy nhiên có
phương thức đóng gói khác và có cấu trúc phù họp cho điện thoại. Các phương
thức đó là
- Activities
Trong hệ điều hành Android các khối xây dựng lên giao diện người dùng được

hiểu là Activities. Chúng ta có thể hiểu Activities trong hệ điều hành Android chính
là các cửa sổ hoặc các nút hoặc các hộp thoại trong các ứng dụng chạy trên máy
tính để bàn. Như vậy phần giao diện được gọi là Activities còn mã nguồn của
chương trình sẽ được đóng gói vào các Form Content providers hoặc Services.
Content providers
Content Providers cung cấp một mức độ trừu tượng (Level Of Anstractio) đối
với bất kỳ dạng dữ liệu nào được lưu trên thiết bị mà có thể bị truy cập từ nhiều
ứng dụng khác nhau. Các mô hình phát triển ứng dụng trên Android
khuyến khích việc xây dựng dữ liệu có thể được truy cập từ nhiều ứng dụng khác
nhau tuy nhiên phải kiểm soát được truy cập.
-

Intents

Intents được hiểu là thông điệp của hệ thống. Thông điệp này chạy vòng quanh
bên trong thiết bị thông báo tới các ứng dụng các sự kiện khác nhau xảy ra bên
trong hệ thống như: trạng thái phần cứng bị thay đổi, dữ liệu mới được thêm vào,
các sự kiện của ứng dụng(ví dụ người sử dụng Click vào phần nào đó của thiết bị).
Không chỉ người lập trinh mới có thể hồi đáp lại Intents tuy nhiên người lập trình
có thể tạo ra các Intents theo mục đích của mình như dùng để khởi tạo các


Activities khác hoặc dùng để báo cho ta biết khi có các tình huống cụ thể phát
sinh,...
-

Services

Trong Android các phương thức Activities, Content Providers, Intents có thời
gian sống rất ngắn và có thể tắt tại bất cứ thời điểm nào. Tuy nhiên Services được

thiết lập để có thể chạy liên tục nếu cần thiết và độc lập với các hoạt động. Services
được sử dụng trong việc kiểm tra quá trinh cập nhật cho dữ liệu trong RSS hoặc
chơi lại một bản nhạc mặc dù phương thức Activities đã tắt.
Các đặc điểm mà hệ điều hành Android cung cấp phát triển các ứng dụng:
Lưu trữ: Lập trinh viên có thể đóng gói các dữ liệu cần thiết cho ứng dụng,
những dữ liệu này không có sự thay đổi chẳng hạn như dữ liệu cho các biểu tượng
hoặc dữ liệu cần cho trợ giúp người sử dụng. Lập trình viên có thể sử dụng một
phần nhỏ không gian lưu trữ trên bộ nhớ của thiết bị dùng để lưu trữ cơ sở dữ liệu
hoặc sử dụng thẻ nhớ (SD Card) để lưu trữ dữ liệu cần thiết nếu người dùng sử
dụng thẻ nhớ. Android cung cấp các phương thức giúp đọc, ghi dữ liệu.
Mạng: các thiết bị sử dụng Hệ điều hành Android cung cấp sẵn khả năng
truy cập Internet thông qua các kết nối vừa hoặc lớn hơn. Lập trình viên có thể tận
dụng lợi thế truy cập Internet từ bất kỳ cấp độ nào mà họ muốn, có thể sử dụng
Sockets trong java hoặc tất cả các phương thức được xây dựng và đưa vào bộ
Webkit trong Android. Bộ webkit trong Android được xây dựng dựa trên trình
duyệt Web và cung cấp tất cả các ứng dụng cần thiết cho một trình duyệt.
Đa phương tiện: Các thiết bị sử dụng Android cung cấp khả năng ghi và
phát video, quá trình ghi và phát cụ thể hoàn toàn có thể thay đổi. Người lập trình
viên có thể truy vấn tới thiết bị, tìm hiểu khả năng của thiết bị(có phát nhạc hay
không, có camera hay không) và lấy ra những khả năng đa phương tiện phù hợp
như là nghe nhạc, lấy ảnh từ camera, sử dụng Micro để ghi dữ liệu âm thanh v.v.
GPS: Các thiết bị sử dụng Android nếu có khả năng định vị vị trí thì lập
trình viên hoàn toàn có thể lấy ra được các thông tin cần thiết để xây dựng ứng
dụng riêng của mình như định vị (GPS), xem bản đồ hoặc cho phép người sử dụng
theo dõi thiết bị trong trường hợp bị mất cắp.


Các dịch vụ thoại: Dĩ nhiên thiết bị chạy Android cho phép các ứng dụng cơ
bản của điện thoại. Lập trình viên có thể xây dựng chương trình cho phép gọi và
nhận cuộc gọi, gửi và nhận tin nhắn, và tất cả dịch vụ khác của một chiếc điện thoại

thông thường.
1.2.3. Kiến trúc hệ điều hành Android
Việc phát triển dựa trên nhân Linux 2.6 đem lại nhiều thuận lợi lớn cho
Android bởi lịch sử phát triển lâu đời và là nền tảng mở. Nhân này chịu trách
nhiệm điều khiển phần cứng, quản lý điện năng, quản lý truy cập và các chức năng
cần thiết khác cho một hệ điều hành. Các điều khiển thiết bị được cung cấp bao
gồm: Hiển thị, máy ảnh, bàn phím, Wifi, bộ nhớ Flash, Âm thanh, và IPC(Xử lý
truyền thông). Dựa trên nhân của Linux hệ điều hành Android có kiến trúc kiểu
ngăn xếp như sau. Các thành phần chính sẽ được mô tả rõ ở bên dưới.


Linux Kennel
Như đã trình bày ở trên, hệ điều hành Android được xây dựng dựa trên nền

tảng là nhân của hệ điều hành mã nguồn mở Linux. Nhân Linux cung cấp một lớp
trừu tượng giúp điều khiển nền tảng phần cứng cũng như các dịch vụ cốt lõi như bộ
nhớ, xử lý và quản lý hệ thống tập tin.. Cung cấp các khả năng như điều khiển thiết
bị, truy xuất vào thiết bị, điều khiển nguồn điện, truy xuất tới máy ảnh, màn hình
cảm ứng, GPS,... Các ứng dụng của người dùng được viết bởi ngôn ngữ Java,
Android SDK, sau đó được biên dịch thành mã Byte và chạy thông qua máy ảo
Davik.
Cor UK ti

......
Acu-tir Htro^r

, y

tul 11 141M


^ ™Rr

AmicATiGN F RAMEWORK

WfciíM»
Him*»-

Comm
PtOTtítr,

H'iflUt

Miro-io-

Hrafir

Viwi
Jfllon

I.TO««

r an.1t»r

Libraries
SSniK

Fnmnw k

ot*w!a Ị1?
5Gk


D nr*T|<
Ck/.tr

6-0 »>01

NoR**or<-r

rürjifDr

AMD ROI D Runtime
SQO*

cUG~ ar l-c*

TAV-hKir
ViL

liir

LINUK «CttRMCC
-n
,

Drw*r

Fhsh *1inKCY
|>.wtr

ird«r 11


PC'I

Oilrir


*OTo*flr

wnonvw

335;

|J!Í£L«

Hình 1.2: Kiến trúc ngăn xếp của hệ điều hành Android ♦♦♦
Android Runtime
Ở mức này, máy ảo Davik thực hiện nhiệm vụ giống với CLR(Comon
Language Runtime) của Microsoft tuy nhiên tất cả các ứng dụng Android được
chạy thông qua các tiến trình riêng, các tiến trình này được quản lý thông qua máy
ảo Davik do vậy mỗi ứng dụng sẽ khởi tạo một máy ảo tương ứng, Davik được
thiết kế đảm bảo hiệu xuất cho việc xử lý các tiến trình. Các ứng dụng thực thi
thông qua Davik được định dạng dưới dạng .Dex
Các máy ảo Dalvik có các lớp Java tạo các tập tin và kết hợp chúng vào một
hoặc nhiều các tập tin thực thi Dalvik (. dex). Nó ghép sự trùng lặp thông tin
từ các tập tin hoặc từ các lớp, có hiệu quả việc giảm không gian cần thiết. Ví
dụ, tệp dex của các ứng dụng web, trình duyệt Android là khoảng 200Kb,
trong khi tương đương với phiên bản jar là khoảng 500Kb. Các Tệp dex của
các ứng dụng đồng hồ báo thức, khoảng 50Kb và ở phiên bản Jar là khoẳng
120Kb. Thứ hai, Google đã điều chỉnh rác trong máy ảo Dalvik. Các công ty có
thể biện minh cho



điều này sự lựa chọn vì nhiều các thư viện lõi của Android, trong đó có các thư viện
đồ họa, được thực hiện trong c và c + +.
Một số thư viện tiêu biểu


Các hệ thống thư viện của

c được dựa trên Berkeley Software Distribution

và được tinh chỉnh để nhúng vào các thiết bị dựa trên Linux.


SLG công cụ đồ họa 2D cơ bản.



Các thư viện đa phương tiện PacketVideo’s OpenCORE, các thư viện này
cung cấp khả năng ghi và phát hầu hết các định dạng âm thanh và Video.



Một thư viện có tên là Surface Manager điều khiển truy cập tới hệ thống hiển
thị và hỗ trợ hiển thị 2D và 3D.



Thư viện Webkit cung cấp các hỗ trợ cho trình duyệt giống với hỗ trợ trong
trình duyệt GoogleChrome.




Thư viện FreeType hỗ trợ phông trữ.



Thư viện SQLite cung cấp các phương thức liên quan tới cơ sở dữ liệu.
SQLite là thư viện mã nguồn mở tuy nhiên không có các công cụ trên
Android lập trình viên có thể mua các công cụ cần thiết cho việc khai thác cơ
sở dữ liệu.

♦♦♦

Application Framework
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 vô cùng phong phú và sáng tạo. Lập
trình viên có thể tự do tận dụng phần cứng, truy cập thông tin địa điểm, chạy các
dịch vụ nền, thiết lập hệ thống cảnh báo, thêm các thông báo và trạng thái,... Kiến
trúc ứng dụng được thiết kế đơn giản hóa trong việc sử dụng các thành phần, các
ứng dụng đều có khả năng Public các thành phần của mình với mục đích cho các
ứng dụng khác sử dụng (dĩ nhiên tồn tại khả năng bảo mật và mã hóa cần thiết). Tất
cả ứng dụng là tập hợp các dịch vụ và hệ thống cơ bản.


Tập họp các đối tượng View được hiểu là các thành phần xây dựng lên giao
diên người dùng (UI) của ứng dụng như các Button, TextView, ListView,
Layout, Grids, Edit Box,...



• Content Provider cho phép ứng dụng có thể truy cập dữ liệu từ các ứng dụng
khác, bao hàm cả các ứng dụng của hệ thống như danh bạ điện thoại, hệ
thống tin nhắn,... Ngoài ra cho phép ứng dụng chia sẻ dữ liệu của chính mình
cho các ứng dụng khác
• Resource Manager quản lý việc truy cập của ứng dụng tới các tài nguyên của
chính ứng dụng ví dụ: truy cập tới các Layout, các xâu được định nghĩa, các
Icon.
• Notification Manager quản lý việc đưa ra các thông báo, cảnh báo của ứng
dụng
• Activity Manager quản lý vòng đời của ứng dụng, khởi tạo, chạy, kết thúc,
đồng thời có khả năng gọi lại các Activity trong ngăn xếp chứa chúng.


Application
Được gọi là tầng ứng dụng noi chứa các ứng dụng giao tiếp với người sử

dụng. Các ứng dụng này được phát triển trên nền tảng ngôn ngữ Java. Các hệ thống
Android cung cấp một số ứng dụng có sẵn như quản lý danh bạ, trình duyệt, các ứng
dụng gọi và nhận cuộc gọi, Home,...
Contact: là ứng dụng miễn phí, mã nguồn mở được cung cấp bởi Google nó cung
cấp các tính năng cơ bản của một ứng dụng quản lý danh bạ điện thoại như thêm
liên hệ, chinh sửa liên hệ, xóa liên hệ,... Ngoài ra nó cũng cho phép các nhả phát
triển có khả năng tương tác lên cơ sở dữ liệu một số tương tác thường thấy như việc
tham chiếu lên cơ sở dữ liệu, đọc cơ sở dữ liệu, chỉnh sửa hoặc xóa một bản ghi bất
kỳ,... Để thực hiện lập trình viên cần cấp quyền truy cập cho ứng dụng, dùng con trỏ
tham chiếu tới dữ liệu.
Phone: ứng dụng cho phép người sử dụng thực hiện các chức năng thoại cơ bản của
điện thoại di động như thực hiện cuộc gọi, nhận cuộc gọi, gửi nhận tin nhắn,...
Brower: Giống với các trình duyệt của IOS hay Windows Mobile trình duyệt của

Android cung cấp các tính năng cơ bản như khả năng duyệt web động cũng như web
tĩnh, đọc các định dạng xml các dạng tệp ảnh, tệp video, tệp audio, sử dụng các giao
thức khác nhau để kết nối internet. Sử dụng các công nghệ khác nhau để truy cập
như công nghệ GPRS, 3G, 4G,...


E&. CliU
Activity

Kptcn dung
quay ki
Actaity

Tieu tfii ¿1 hi
buy

&f‘Crea
tef)i
■oerReBl
a’iD
-----1-- - -

anSiaitij

Grtflesn;n
neO
Adtivity ifeag chpy

Mot Activity IcbAc


then ogimg

ActZVity
‘ilC*L
krc h ho# ta
man iafih

_______r_______
Cik ijt-ici dyng kiwc

can b6 rid

I Activity bt an ft

V_______

_______________________________

w

Hinh 1.3: So do chuyen trang thai cua Activity

Activity ¿ecu
kicb hoar f a
man hinh


1.2.4. Các dịch vụ mạng
Nền tảng Android kết hợp nền tảng khả năng phần cứng, kiến trúc phần mềm,
và truy cập vào mạng dữ liệu đem lại sức mạnh lớn trong việc thiết kế các ứng dụng

mạng.
Android cung cấp truy cập bằng nhiều cách: mạng di động IP, WiFi, và
Bluetooth. Ở đây chúng ta sẽ tập trung vào việc ứng dụng Android trong việc sử
dụng mạng dữ liệu IP, sử dụng phương pháp tiếp cận khác nhau.
Phần này giới thiệu lại các kiến thức cơ bản về mạng từ đó chuyển qua xem xét
các yếu tố hỗ trợ mạng trên nền tảng Android. Như ta đã biết kiến trúc mạng
TCP/IP là một kiến trúc mạnh bao gồm các lớp và các giao thức sử dụng tương ứng
với các lớp như.
- Tầng Application sử dụng các giao thức SMTP,HTTP,FTP
- Tầng Transport sử dụng giao thức: TCP,UDP
- Tầng Internet sử dụng giao thức: IP, ICMP, IGMP
- Tầng Link sử dụng giao thức : ARP,RARP.
HTTP và Soap
Web Services là một mô hình chung cho xây dựng ứng dụng và có thể được
thực hiện trên bất kỳ hệ thống nào có hỗ trợ giao tiếp qua Internet. Trước đây việc
kết nối tới Webservice sử dụng các công nghệ như Component Object Model
(DCOM), Remote Method Invocation (RMI), và Internet Protocol Inter- Orb
(HOP). Thật không may tất cả các mô hình này phụ thuộc vào một giao thức, đối
tượng cụ thể. Sau này Web Service mở rộng các mô hình này một đưa ra giao thức
truy cập đối tượng đơn giản (SOAP) và Extensible Markup Language (XML).
Như chúng ta đã biết giao thức HTTP cho phép người dùng gửi yêu cầu
“Request” tới máy chủ HTTP, và máy chủ sẽ hồi đáp “Response” yêu cầu của
người sử dụng. Với SOAP tất cả các Request và Response được triết xuất thành
XML và gửi đi thông qua giao thức HTTP. Điều này khiến việc trao đổi giữa Client
và Server trở nên đơn giản và bảo mật hơn.


Hình 1.4: Mô hình sử dụng SOAP
Truyền dữ liệu sử dụng SOAP
Cộng đồng mã nguồn mở đã phát triển một gói mới cho phép truyền dữ liệu

sử dụng Soap. Gói này cho phép chuyển dữ liệu gửi đi thành XML, gửi dữ liệu tới
WebService, nhận về phản hồi từ WebService (cũng dạng XML) lấy ra thành phần
của dữ liệu.
XSTREAM
Như vậy công nghệ Soap giúp trao đổi dữ liệu giữa Client và WebService
dưới dạng XML thông qua giao thức HTTP. Đe thuận tiện cho việc gửi dữ liệu, lập
trình viên có thể sử dụng XSTREAM
XSTREAM là một công cụ giúp chuyển các đối tượng hay những thể hiện
của những lớp Java qua dạng XML hay ngược lại. Nó là một mã nguồn mở, được
phát triển từ đầu năm 2004.
Để sử dụng XSTREAM cần khởi tạo các đối tượng cần chuyển đổi thành
XML, đối tượng có thể bao hàm nhiều đối tượng con. Sau đó dùng XSTREAM để
tiến hành chuyển đổi qua lại giữa đối tượng và tệp XML.
1.3 Tổng quan Web service
1.3.1 Giới thiệu web service
Dịch vụ Web (Web Service) được coi là một công nghệ mang đến cuộc
cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to Business)
và B2C (Business to Customer). Giá trị cơ bản của dịch vụ Web dựa trên việc cung


cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và
hệ thống kế thừa. Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau
và chạy trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi
dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy
tính. Tuy nhiên những công nghệ sử dụng ở đây không nhất thiết phải là những
công nghệ mới. Đây là điểm khác biệt của web services so với các công nghệ khác,
đó chính là khả năng kết hợp các công nghệ đã có như là XML, SOAP, WSDL,
UDDI để tạo ra các service, đặc điểm này làm nổi bật vai trò của web services.
Ưu và nhược điểm
a) Ư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 đhỳ đầ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 ừong 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 đhịr hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành ,
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.
b) 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ể xảy ra 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 chuNi cho dịch vụ Web khiến người dùng khó nắm bắt.
+ Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.


1.3.2.

Giới thiệu ASP.NET

ASP.NET có tên đầy đủ là Active Server Page .NET. ASP.NET là mô hình
phát triển ứng dụng Web hợp nhất bao gồm nhiều dịch vu cho phép xây dựng các
ứng dụng Web tiên tiến với số code nhỏ nhất. ASP.NET là một phần của .NET
Framework, khi lập trình với ASP.NET người lập trình có thể sử dụng các thự viện
của .NET Framework. ASP.NET hỗ trợ lập trình với nhiều ngôn ngữ như là MS
Visual Basic,


c#, Jscript .NET và J#, các ngôn ngữ này đều phải tương thích với

“Common Language Runtime” (CLR). Các ngôn ngữ đều được dịch ra mã IL.
ASP.NET là ngôn ngữ lập trình hướng đối tượng sử dụng các ngôn ngữ .NET. Nó
cung cấp bộ các đối tượng nhỏ và thực sự là một tầng làm việc trên nguyên lý của
HTTP và HTML. Mã nguồn không được truy cập toàn bộ các đối tượng trong .NET
Framework nhưng có thể khai thác tất cả các quy ước của một môi trường OOP
(Object Oriented Programming). Thiết kế hướng đối tượng giúp tạo các lóp, giao
diện, kế thừa các lớp.

WB

Common Language Specification

ASP.MET
Windows
JSçript Forms
ỉl+i
Cff
!
Wöb Forms Web Services
Mobile I internet Toolkit
ADO.NËÎ and XML
Hasp Class Library
Cum mon Langeai ge Runtime
Ope ra t i ng System

Hình 1.5: Vị trí của ASP.NET trong .NET Framework
Một ứng dụng ASP.NET luôn luôn được biên dịch, nó không chạy bằng mã của


c#

hoặc Visual Basic mà không được biên dịch trước. Một ứng dụng ASP.NET thực
sụ được biên dịch thông qua 2 giai đoạn:


-

Giai đoạn đầu tiên những các mã (C#, Visual Basic hoặc ngôn ngữ .NET
khác) được dịch bởi Microsoft Intermediate Language (MSIL). Giai đoạn
dịch này được dịch tự động khi trang web đầu tiên yêu cầu. Các file được
dịch thành mã IL (Intermediate Language Code).

-

Giai đoạn tiếp theo được dịch trước khi trang Web được thực thi. Tại giai
đoạn này mã IL được dịch thành bản mã máy (Native Machine Code). Giai
đoạn này được gọi là Just-In-Time (JIT).
Điều trọng nhất của công cụ ASP.NET là nó chạy trong môi thời gian thực

(Runtime) của CLR (Common Language Runtime). CLR là máy ảo (virtual
machine) trong Microsoft .NET, do có ngôn ngữ trung gian IL nên việc phát triển
ứng dụng trên .NET sẽ không bị phụ thuộc vào thiết bị, có nghĩa là ứng dụng .NET
có thể chạy trên bất kỳ thiết bị nào có .NET Framework. Tất cả các namespace, các
ứng dụng, các lớp trong bộ .NET Framework được gọi tắt là bộ quản lý mã. CLR
cũng cung cấp các dịch vụ quan trọng khác như:
-

Quản lý bộ nhớ


-

Thu nhặt rác trong bộ nhớ

-

Quản lý các luồng

-

Xử lý ngoại lệ

-

Bảo mật

Mọi sự cài đặt .NET Framework đều cung cấp các lớp như nhau. Để triển khai
ứng dụng ASP.NET chỉ cần sao chép các tập tin vào thư mục ảo trên máy chủ
(server) và máy chỉ chỉ cần có .NET Framework. Việc cấu hình dễ dàng đơn giản
không phụ thuộc vào IIS (Internet Information Services), cấu hình trong ASP.NET
được đặt trong file web.config. File web.config được để cùng với thư mực chứa
trang web. File web.config không bao giờ bị khóa, Nó có thể truy cập bất kỳ lúc
nào, việc sửa file này hoàn toàn dễ dàng vì chúng được lưu dưới dạng XML.
• LINQ
LINQ (Language Integrated Query) đưa ra khả năng lập trình mới ừong .NET.
Giải pháp lập trình hợp nhất, đem đến khả năng truy vấn dữ liệu theo cú pháp SQL


trực tiếp trong c# hay VB.NET, áp dụng cho tất cả các dạng dữ liệu từ đối tượng
đến Cơ sở dữ liệu quan hệ và XML.

Rttgrawni ỉ
CM VB.NÊT
••-.vainp&ísr.k*

others —
*4
ỉ und« đ i)ự*l r

juiiiy
Er.'1-nl.lon Ira««

1.3.3. Các khái niệm cơ bản của web Service
a)

XML
XML là một chuẩn mở do W3C đưa ra và được phát triển từ SGML. XML

là một ngôn ngữ mô tả văn bản với cấu trúc do người sử dụng định nghĩa, nó được
sử dụng để định nghĩa các thành phần dữ liệu ừê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 không tuân theo một đặc tả quy ước như HTML, người sử dụng hay các
chương trình có thề quy ước định dạng các tag XML đề gỉao tiếp với nhau. Trong
khi 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 trinh 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ở.


Do dịch vụ Web là sự kết họp của nhiều thành phần khác nhau nên nó sử
dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp. Vì vậy XML là

công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng
một dịch vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML. Khi đó,
các thông tin mã hóa sẽ hoàn toàn phù họp với các thông tin theo chuẩn của SOAP
hoặc XML-RPC và có thể tương tác với nhau trong một thể thống nhất.
Document Object Model (DOM) có thể nói là “ một cách chuẩn để đọc ghi
XML ”. Hầu hết các hệ điều hành phổ biến đều có một phiên bản DOM, có thể sử
dụng trong hầu hết các ngôn ngữ lập trình, bao gồm

c#.

a ó là một Application

Programming Interface (API) để truy vấn các file XML.
Ý tưởng của DOM là bất kỳ file XML nào có thể được mô tả dưới dạng một cây
chứa các node.


Ví dụ:

Reader và Writer
Mặc dù DOM là một cách thuận lợi để đọc và ghi XML, nhưng nó cũng có một
số giới hạn. Điều đáng nói khi load một tài liệu XML vào DOM, toàn bộ tài liệu phải
được load vào bộ nhớ. Vào lúc này, DOM xây dựng toàn bộ cây mô tả tài liệu, với
tất cả các node, ẩ ghĩa là khi file XML có kích thước lớn thì sẽ tốn bộ nhớ. Quá trình
này cũng chiếm nhiều thời gian, đặc biệt khi cần một hoặc hai node trong tài liệu.
Với XmlTextReader và XmlTextWriter đã cải thiện được hai điều của
DOM:
- Toàn bộ file không cần thiết đưa vào bộ nhớ trước khi xử lý document
- XmlTextReader và XmlTextWriter làm việc rất nhanh do không cần phải xây
dựng cấu trúc cây.



Tuy nhiên, XmlTextReader và XmlTextWriter có một số nhược điểm. Bởi YÌ chúng
không lưu toàn bộ file vào bộ nhớ nên đôi khi khi trong việc liên hệ giữa một phần
và các phần khác trong document.
b) WSDL (Web Service Description Language)
WSDL là một ngôn ngữ dựa trên XML để định vị và mô tả các dịch vụ Web. WSDL
là viết tắt của Web Service Description Language.
WSDL được dựa trên XML.
WSDL được dùng để mô tả các dịch vụ Web .
WSDL được dùng để xác định vị trí dịch vụ Web.
WSDL là một chuẩn của W3C.
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à giao thức kết nối.
- Phần thi hành: mô tả thông tin để truy xuất service.
Cả hai phần này sẽ được lưu trong 2 tập tin XML.
c) UDDI
UDDI là một dịch vụ thư mục nơi mà các công ty có thể đăng ký và tìm kiếm
các dịch vụ web.
-

UDDI là viết tắt của Universal Description Discovery and Integration.

-


UDDI là một thư mục để lưu trữ các thông tin về các dịch vụ web.

-

UDDI là một thư mục của các dịch vụ web giao diện mô tả bởi WSDL.

-

UDDI truyền qua SOAP.

-

UDDI được xây dựng trên Microsoft NET.
Để 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.
Cấu trúc UDDI:
+ Trang trắng - White pages: chứa thông tin liên hệ và các định dạng chính của dịch
vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng... Những thông tin này
cho phép các đối tượng khác xác định được dịch vụ.
+ Trang vàng - Yellow pages: chứa thông tin mô tả dịch vụ Web theo những loại
khác nhau. Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo
từng loại với nó.
+ Trang xanh - Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức
năng của dịch vụ Web.

+ Loại dịch vụ - tModel: chứa các thông tin về loại dịch vụ được sử dụng.
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ó.
Những UDDI registry hiện có:
- UDDI Business Registry: bộ đăng ký được bảo trì bởi Microsoft, IBM đặc điểm
của bộ đăng ký này là nó phân tán về mặt vật lý.
- IBM Test Registry: bộ đăng ký cho những người phát triển để thử nghiệm công
nghệ và kiểm tra những service của họ.
- Private registries IBM ships: bộ đăng ký UDDI cá nhân,
d) SOAP (Simple Object Access Protocol)
SOAP là một XML dựa trên giao thức để cho phép các ứng dụng trao đổi
thông tin qua HTTP. Hoặc đon giản hom: SOAP là một giao thức để truy cập vào
một dịch vụ web.
SOAP là viết tắt của Simple Object Access Protocol.
SOAP là một giao thức truyền thông.
SOAP là một định dạng để gửi thông điệp.
SOAP được thiết kế để giao tiếp qua Internet.
SOAP là nền tảng độc lập.


SOAP là ngôn ngữ độc lập.
SOAP dựa trên XML.
SOAP là đơn giản và mở rộng.
SOAP cho phép bạn có được khoảng tường lửa.
SOAP là một chuẩn của W3C.
Một vấn đề khá quan trọng là làm thế nào để truy xuất dịch vụ khi đã tìm
thấy? Câu trả lời là 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 nhu 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.
Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi
những thông điệp trả lời tới client. Cả SMTP và HTTP đều là những giao thức ở lớp
ứng dụng của SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày
nay nó có thể làm việc rất tốt với cơ sở hạ tầng Internet.
Đặc trưng SOAP
SOAP có những đặc trưng sau :
SOAP được thiết kế đơn giản và dễ mở rộng.
Tất cả các message SOAP đều được mã hóa sử dụng XML.
- SOAP sử dụng giao thức truyền dữ liệu riêng.
Không có garbage collection (tập hợp rác) phân tán , và cũng không có cơ
chế tham chiếu. Vì thế SOAP client không giữ bất kỳ một tham chiếu đầy đủ nào về
các đối tượng ở xa. SOAP không bị ràng buộc bởi bất kỳ ngôn ngữ lập trình nào
hoặc công nghệ nào.
Vì những đặc trưng này, nó không quan tâm đến công nghệ gì được sử dụng để
thực hiện miễn là người dùng sử dụng các message theo định dạng XML. Tương tự,
service có thể được thực hiện trong bất kỳ ngôn ngữ nào, miễn là nó có thể xử lý
được những message theo định dạng XML.
cấu trúc một thông điệp theo dạng SOAP:


×