Tải bản đầy đủ (.docx) (67 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 (1.1 MB, 67 trang )

LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn tới các Thầy, Cô trong trường Đại
học Công nghệ thông tin và Truyền thông đã tạo điều kiện cho em để hoàn thành
đồ án tốt nghiệp này.
Em xin gửi lời cảm ơn chân thành tới các Thầy, các Cô trong bộ môn
Mạng và Truyền thông đã tạo điều kiện cơ sở vật chất, tài liệu cần thiết giúp em
hoàn thành đồ án tốt nghiệp này.
Em xin chân thành cảm ơn thầy Nguyễn Anh Chuyên đã nhận hướng dẫn
em thực hiện đồ án. Trong quá trình thực hiện đồ án thầy đã tận tình hướng dẫn,
chỉ bảo, cung cấp các tài liệu cần thiết giúp em hoàn thành đồ án tốt nghiệp này.
Một lần nữa em xin chân thành cảm ơn toàn thể các Anh, Chị các Thầy,
Cô đã tạo điều kiện tốt nhất và giúp đỡ em hoàn thành đồ án 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 thực hiện

Lưu Đình Long

1


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.
Nếu sai em xin chịu mọi hình thức kỷ luật của trường Đại học Công nghệ
thông tin và Truyền thông.
Thái Nguyên tháng 06 năm 2012
Sinh viên thực hiện


Lưu Đình Long

2


MỤC LỤC

3


DANH MỤC HÌNH ẢNH

4


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 mạnh 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.

5


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 mình 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.

6


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.


7


1.1.3. Hướng tiếp cận của đề tài
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 triể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 Android đã 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 Android:

Hình 1.1: Lịch sử phát triển Android

8


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

9


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 trình 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á trình 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 trình 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.

10



Đ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.


11


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 + +.
12


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,
13


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 nơi 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ệ, chỉnh 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,…

14



Hình 1.3: Sơ đồ chuyển trạng thái của Activity

15


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 InterOrb (IIOP). 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.

16


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. Để 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
17


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 đẩ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 ,
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 chuẩn 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.

18


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.

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:

19


− 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

20


LINQ (Language Integrated Query) đưa ra khả năng lập trình mới
trong .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.

Hình 1.6: Cấu trúc LINQ

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 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 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 để giao 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ể

21



đượ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ở.
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#. Nó 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.

Customer element

Id attribute

Order element

Date attribute

Items element

Item element

Item element


Ví dụ :
element

22
foo

quatity element

100


Hình 1.7 : Cây phân tích XML

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. Nghĩ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.

23



Tuy nhiên, XmlTextReader và XmlTextWriter có một số nhược điểm. Bởi vì
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


24


đị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 đơn giản hơn: 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.

25


×