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

Đồ án HỖ TRỢ PHÁT HIỆN VÀ THÔNG BÁO ÙN TẮC GIAO THÔNG TRÊN NỀ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 (809.86 KB, 48 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC

Đề tài:
HỖ TRỢ PHÁT HIỆN VÀ THÔNG BÁO ÙN TẮC GIAO THÔNG TRÊN NỀN
ANDROID

Nhóm sinh viên thực hiện:

TRẦN NGỌC THẮNG
TẠ ANH VIỆT
NGÔ HẢI NAM
Lớp ĐT7 – K52

Giảng viên hướng dẫn:

TS. LÊ DŨNG

Hà Nội, 5-2012
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
1


TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN


TỐT NGHIỆP ĐẠI HỌC

Đề tài:
HỖ TRỢ PHÁT HIỆN VÀ THÔNG BÁO ÙN TẮC GIAO THÔNG TRÊN NỀN
ANDROID

Nhóm sinh viên thực hiện: TRẦN NGỌC THẮNG
TẠ ANH VIỆT
NGÔ HẢI NAM
Lớp ĐT7 – K52
Giảng viên hướng dẫn:
Cán bộ phản biện:

2

TS. LÊ DŨNG


Hà Nội, 5-2012

3


BỘ GIÁO DỤC VÀ ĐÀO

CỘNG HÒA XÃ HÔI CHỦ

TẠO
TRƯỜNG ĐẠI HỌC BÁCH


NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

KHOA HÀ NỘI

---------------------------------

-------------------------------------------------

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: .…………….………….…….. Số hiệu sinh viên: ……………………
Khoá:…………………….Khoa: Điện tử - Viễn thông

Ngành: ………………..................

1. Đầu đề đồ án:
………………………………………………..
………………………………………………………………………………
………………………………………………………………………………………………
……………..………............
2. Các số liệu và dữ liệu ban đầu:
……………………………………..……………………………………………..……..
………………………………….
………………………………………………………………………………………………
……………………………….…..………………………..
………………………………………………………………………………………………

3. Nội dung các phần thuyết minh và tính toán:
………………………………………………………………………………………………
………………..….

………………………………………………………………………………………………
……………………………………..….
………………………………………………………………………………………………
………………………………………..….
………………………………………………………………………………………………
………………………..
4. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):

4


………………………………………………………………………………………………
………………………..….
………………………………………………………………………………………………
…………………………..……….
………………………………………………………………………………………………
………………………………..
5. Họ tên giảng viên hướng dẫn: ………………………………………………………..
……………………
6. Ngày giao nhiệm vụ đồ án: ………………………………………………………..
……………………….
7. Ngày hoàn thành đồ án:
………………………………………………………………………..…………..
Ngày
tháng
năm
Giảng viên hướng dẫn

Chủ nhiệm Bộ môn


Sinh viên đã hoàn thành và nộp đồ án tốt nghiệp ngày

tháng

năm

Cán bộ phản biện

5


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------------------BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên: .................................................. Số hiệu sinh viên: ...............................
Ngành:..................................................................................................Khoá: .........................
Giảng viên hướng dẫn:
..................................................................................................................................................
Cán bộ phản
biện: .........................................................................................................................................
.........
1. Nội dung thiết kế tốt nghiệp:
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................

..................................................................................................................................................
...............................................................................................
2. Nhận xét của cán bộ phản biện:
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
6


..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
.................................................
Ngày

tháng

năm

Cán bộ phản biện
( Ký, ghi rõ họ và tên )

7



LỜI NÓI ĐẦU
Hiện nay, tắc đường đang là vấn đề chung của các thành phố lớn như Hồ Nội
và Thành phố Hồ Chí Minh. Tắc đường không chỉ gây thiệt hại về kinh tế mà còn
kéo theo nhiều hậu quả xã hội nghiêm trọng. Các cơ quan chức năng đã có nhiều cố
gắng đề ra các giải pháp chống tắc đường. Từ các giải pháp kỹ thuật như là phân làn
đường, bịt các ngã tư, tăng cường người chỉ huy ở các nút giao thông hay bị ùn tắc
đến giải pháp tận dụng sức mạnh cộng đồng như là thực hiện chương trình VOV
giao thông, tăng cường giáo dục, tuyên truyền, kêu gọi ý thức của người tham gia
giao thông. Tuy nhiên, do mật độ tham gia giao thông quá lớn, cơ sở hạng tầng
không đủ đáp ứng được, một phần ý thức của người tham gia giao thông chưa cao,
nên các biện pháp đề ra chưa mang lại hiệu quả như mong muốn.
Thực tế, hiện tượng tắc đường chỉ thường xuyên xảy ra ở một số điểm cố
định vào các giờ cao điểm. Nếu chúng ta có cách thông báo cho mọi người tham gia
giao thông biết được đoạn đường nào đang bị ùn tắc thì có thể giảm được số điểm
ùn tắc.
Trong thời gian qua, chương trình VOV giao thông của đài tiếng nói Việt
Nam đã ra đời và nhận được sự hưởng ứng tích cực của mọi người. Cách làm của
chương trình VOV giao thông đó là cùng với người tham gia giao thông và các
cộng tác viên tại các điểm hay xảy ra ùn tác phát hiện và thông báo tình trạng giao
thông qua làn sóng radio. Tuy nhiên, nhược điểm của VOV giao thông là vì sử dụng
chương trình phát thanh nên thông tin chỉ đến được với số ít người tham gia giao
thông, thông tin được truyền tải dưới dạng âm thanh nên ít trực quan, giảm bớt tính
hiệu quả của thông tin.
Hướng đến một cách tiếp cận khác đó là thông qua môi trường Internet và
các thiết bị di động, nhóm em đã chọn đề tài khóa luận “Hỗ trợ phát hiện và thông
báo ùn tắc giao thông trên nền Android ”. Bài toán được giải quyết chủ yếu dựa
8



vào dịch vụ Google Map và các thiết bị sử dụng hệ điều hành Android. Google
Maps là dịch vụ đã phổ biến trên thế giới cũng như ở Việt Nam. Ở các thành phố
lớn trên thế giới, Google Maps có tích hợp thông tin giao thông vào bản đồ ở chế độ
Traffic View. Tuy nhiên, ở Việt Nam, dịch vụ này không hỗ trợ cũng như chưa có
dịch vụ nào tương tự. Android cũng là hệ điều hành mã nguồn mở của Google. Hệ
điều hành di động này có thể cài đặt trên nhiều thiết bị, có các giao diện lập trình
tích hợp với dịch vụ Google Maps.
Để có thể hoàn thành được đồ án tốt nghiệp này, nhóm em đã được học hỏi
những kiến thức quí báu từ các thầy, cô giáo của Trường Đại Học Bách Khoa Hà
Nội trong suốt năm năm đại học.Nhóm em vô cùng biết ơn sự dạy dỗ, chỉ bảo tận
tình của các thầy, cô giáo trong thời gian học tập này.
Chúng em cũng xin bày tỏ lòng biết ơn sâu sắc tới TS Lê Dũng - Bộ môn
Điện tử tin học - Viện điện tử viễn thông - Đại Học Bách Khoa Hà Nội, đã tận tình
chỉ bảo và định hướng cho nhóm nghiên cứu đề tài này. Thầy đã cho những lời
khuyên, sự góp ý cùng những gợi mở vô cùng quí báu trong suốt quá trình hoàn
thành đồ án này.
Cuối cùng,chúng em xin chân thành cảm ơn gia đình và bạn bè đã luôn tạo
điều kiện thuận lợi, động viên và giúp đỡ trong suốt thời gian học tập cũng như
trong quá trình tìm hiểu, nghiên cứu và hoàn thành đồ án này.

Hà Nội, tháng 5 năm 2012
Nhóm sinh viên
Trần Ngọc Thắng
Tạ Anh Việt
Ngô Hải Nam

9



TÓM TẮT NỘI DUNG
Hiện nay, Google Maps đã cung cấp dịch vụ bản đồ giao thông cho nhiều
thành phố lớn trên thế giới. Ở Việt Nam, mặc dù vấn đề ùn tắc giao thông đang trở
nên hết sực nghiêm trọng nhưng có rất ít những dịch vụ hỗ trợ người đi đường
nhằm giúp họ giảm thiểu nguy cơ đối mặt với vấn đề tắc đường. Nhóm em xin đề
xuất đề tài đồ án là “Hỗ trợ phát hiện và thông báo ùn tắc giao thông trên
Android”. Mục tiêu của đề tài là mô phỏng giải pháp cung cấp thông tin giao thông
qua môi trường Internet và các thiết bị di động. Giải pháp được chọn là kết hợp
Web Server chạy trên nền ASP.NET và phần mềm chạy trên thiết bị điện thoại di
động Android. Nội dung báo cáo này được chia thành 4 phần như sau:
- Chương 1. Các kỹ thuật sử dụng: Trình bày sơ lược về kỹ thuật lập trình
trên Android, ASP.NET, và Google Maps APIs và giới thiệu các chương trình và
công cụ cần sử dụng để thực hiện đề tài.
- Chương 2. Phân tích, thiết kế: Tài liệu phân tích và thiết kế chương trình
theo phương pháp hướng đối tượng. Mỗi thành viên trong nhóm sẽ phụ trách thực
hiện những module riêng sau đó cả nhóm sẽ cùng nhau ghép các module lại thành
chương trình hoàn chỉnh.
- Chương 3. Cài đặt, thử nghiệm: Một số điểm nét chính khi thực hiện cài
đặt và thử nghiệm Web Server và chương trình giả lập điện thoại Android. Thử
nghiệm trên máy tính sau đó cài đặt ứng dụng vào điện thoại chạy thử nghiệm.
- Chương 4. Đánh giá và tổng kết: Nêu đánh giá toàn bộ đề tài, trình bày
những kết quả đạt được cũng như các hạn chế của đề tài từ đó đề xuất hướng nghiên
cứu trong tương lai.

10


ABSTRACT
Nowadays, Google Maps had provided the traffic map service for many big
city on over the world. In Vietnam, though the traffic jam problem is becoming

terrible but there are very little services that assist people join in traffic to avoid the
traffic jam problem. We propose one project with name “Programing of assistance
and notification the traffic jam on Android mobile phone”. The purpose of this
project is emulating a solution which provide traffic information by Internet and
some mobile devices. Combining Web Server run on ASP.Net base and the software
run on Android mobile phone is the solution chose. Contents of this report is
classified into 4 parts :
Chapter 1: Some Techniques : Present sketchily about technique coding in
Android, ASP.NET and Google Maps APIs and introduce some softwares and tools
are essential to finish this project.
Chapter 2: Analysis and design : Some analysis documents and design
program by object-oriented method. Each member will do particular modules, then
all members will assemble them into full program.
Chapter 3: Install and test: Some main features when installing and testing
Web Server and simulator program Android phone. Testing on computer before
install on Android mobile phone and run demo.
Chapter 4: Evaluate and summarize: Evaluating whole project, presenting
the results and defects of this project in order to propose research directions in the
future.

11


Chương I. Các kỹ thuật sử dụng
1.1.Giới thiệu về Android
Android được phát triển bởi tập đoàn Google, phiên bản đầu tiên ra đời năm
2008. Được xây dựng trên một nền tảng mở, và một bộ thư viện đa năng, mạnh mẽ
với nguyên lý mở, Android đã nhanh chóng được cộng đồng lập trình viên di động
hưởng ứng mạnh mẽ. Nền tảng Android tích hợp nhiều tính năng nổi bật:
- Android là một hệ điều hành nhân Linux, đảm bảo sự tương tác với các

phần cứng, quản lý bộ nhớ, điều khiển các tiến trình tối ưu cho các thiết bị di động.
- Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành phần riêng
lẻ.
- Máy ảo Dalvik được tối ưu cho các thiết bị di động, chạy các ứng dụng lập
trình trên ngôn ngữ Java.
- Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm SQLite,
WebKit, OpenGL và trình quản lý đa phương tiện.
- Hỗ trợ các chuẩn đa phương tiện phổ biến, thoại trên nền GSM, Bluetooth
EDGE, 3G và Wifi
- Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc…
- Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa lỗi,
tích hợp với Eclipse SDK.
1.1.1 Phát triển ứng dụng trên Android
1.1.1.1 Cấu trúc của các tầng phần mềm trên Android
Cấu trúc của Android được chia theo tầng các phần mềm bao gồm tầng ứng
dụng (Application Layer), Ứng dụng khung (Application Framework), Các thư viện
(Libraries), Android Runtime và nhân Linux (Linux Kernel).
12


Hình 1.1 Cấu trúc của các tầng phần mềm trên Android

- Android Runtime: Bao gồm máy ảo Dalvik và các thư viện Android.
o Các thư viện cơ bản: Các ứng dụng Android được phát triển trên môi
trường Java, nhưng Dalvik lại không phải là một Java VM. Các thư viện cơ bản của
Android cung cấp hầu hết các chức năng có trong thư viên cơ bản của Java cũng
như là thư viện riêng của Android.
o Máy ảo Dalvik: Dalvik là máy ảo để chạy các ứng dụng trên Android, đã
được tối ưu để đảm bảo rằng một thiết bị có thể chạy được nhiều Instance một cách
hiệu quả. Nó dựa vào nhân Linux để thực hiện đa luồng và quản lý bộ nhớ cấp thấp.

13


- Tầng ứng dụng khung: Cung cấp các lớp được sử dụng để tạo ra các ứng
dụng trong Android. Nó cũng cung cấp các lớp trừu tượng truy cập phần cứng và
quản lý tài nguyên của ứng dụng.
- Tầng ứng dụng: Tất cả các ứng dụng, bao gồm ứng dụng sẵn có và ứng
dụng từ nhà cung cấp thứ 3 được xếp vào tầng Ứng dụng với cùng một thư viện các
giao diện lập trình(API). Tầng ứng dụng chạy trong Android Runtime (Dalvik) sử
dụng các lớp và dịch vụ có sẵn trong lớp Ứng dụng khung.
1.1.1.2 Kiến trúc ứng dụng trên Android
Kiến trúc của Android khuyến khích khái niệm Thành phần sử dụng lại, cho
phép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác với
quyền truy cập được quản lý bởi khai báo. Cơ chế đó cho phép người lập trình tạo
ra một trình quản lý danh bạ hoặc trình quay số điện thoại mà có các thành phần
người khác có thể tạo mới giao diện và mở rộng chức năng thay vì tạo lại chúng.
Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứng dụng,
cung cấp một framework cho mọi mọi phần mềm được xây dựng:
- Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản
lý các tầng Activity.
- Views: Được sử dụng để tạo lập cá giao diện ngƣời dùng cho các Activity
- Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc
gửi các thông báo đến người dùng.
- Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng.
- Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn như là
chuỗi ký tự, đồ họa được đặt bên ngoài.

14



1.1.1.3 Các thư viện trên Android
Android cung cấp một số các APIs cho phát triển ứng dụng. Danh sách các
API cơ bản sau được cung cấp bởi tất cả các thiết bị trên nền Android:
- android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp như là các
lớp quản lý (List, Stack…) lớp xử lý chuỗi, lớp xử lý XML
- android.os: Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản
như là chuyển tin nhắn, thông tin chéo, đồng hồ và gỡ lỗi.
- android.graphics: Cung cấp các lớp đồ họa mức thấp thực hiện các chức
năng đồ họa, màu, vẽ cơ bản.
- android.text: Công cụ hiển thị và xử lý văn bản
- android.database: Cung cấp các lớp mức thấp bắt buộc cho việc điều
khiển cursor khi làm việc với các cơ sở dữ liệu .
android.content: Các giao tiếp lập trình nội dung được dùng để quản lý truy
cập dữ liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tài nguyên,
Content Provider, và các gói.
- android.view: View là lớp giao diện người dùng cơ bản nhất. Tất cả giao
diện người dùng được tạo ra đều phải sử dụng một tập các View để cung cấp cho
các thành phần tương tác người dùng.
- android.widget: Xây dựng dựa trên gói View. Những lớp Widget những
thành phần giao diện được tạo sẵn được sử dụng để tạo nên giao diện người dùng.
Các Widget bao gồm danh sách, nút bấm, hộp nhập, các kiểu trình bày(layout)
- com.google.android.maps: bộ API mức cao cung cấp truy cập đến điều
khiển bản đồ sẵn trong Android từ ứng dụng được xây dựng. Bao gồm cả lớp
MapView cũng như Overlay và MapController để tương tác với bản đồ bên trong
ứng dụng.

15


- android.app: Một gói thư viện bậc cao, cung cấp truy cập đến dữ liệu của

ứng dụng. Gói ứng dụng cũng bao gồm lớp Activity và Service là thành phần cơ
bản của mọi ứng dụng Android.
- Android.provider: Để tạo thuận lợi cho người phát triển truy cập đến các
Content Provider tiêu chuẩn(như là dữ liệu danh bạ), gói Cung cấp(Provider) bao
gồm các lớp cho phép truy cập đến cơ sở dữ liệu chuẩn trong tất cả các bản phân
phối Android.
- Android.telephony: Các API điện đàm cung cấp khả năng tương tác trực
tiếp với tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các cuộc gọi,
tình trạng các cuộc gọi và tin nhắn SMS.
- android.webkit: Gói WebKit cung cấp các API để làm việc với các nội
dung Web-based bao gồm một lớp WebView để tạo ra giao diên web, nhúng trong
ứng dụng và một trình quản lý cookie.
- Cùng với các API của Android, còn có một tập các thư viện C/C++ như:
o OpenGL: Thư viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn
OpenGLES 1.0 API
o FreeType: Hỗ trợ xử lý bitmap và font vector
o GGL: Thư viện cơ bản, dùng để cung cấp các engine đồ họa 2D
o Libc: Thư viện C chuẩn, được tối ưu cho các thiết bị Linux-based
o SQLite: Engine cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu
của ứng dụng
o SSL: Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo
mật truyền thông Internet
- Ngoài các thư viện chuẩn của Android, để đáp ứng tiêu chí phù hợp với
nhiều thiết bị khác nhau, Android còn có thể có các API phụ thuộc thiết bị như
android.location, android.media, android.opengl, android.hardware,
android.bluetooth, android.net.wifi, và android.telephony. [1]

16



1.1.1.4 Các thành phần của ứng dụng Android
1.1.1.4.1 Activity
Một Activity là đại diện cho một giao diện người dùng, tiếp nhận tương tác
người dùng với ứng dụng. Ví dụ một Activity có thể là một danh sách các mục mà
người dùng có thể chọn lựa hoặc là một của sổ trình diễn ảnh với các thông tin
khác. Một ứng dụng có thể có một hoặc nhiều Activity. Việc di chuyển giữa các
Activity được thực hiện bằng cách từ Activity hiện tại mở ra Activity mới Giao diện
của Activity được quy định bởi một đối tượng View có trật tự. Một View là một
vùng hình chữ nhật bên trong cửa sổ màn hình. Một View cũng có thể chứa nhiều
View khác. View có thể được tạo mới thông qua việc thừa kế lớp View hoặc khai
báo thông qua file XML. Một activity có 3 trạng thái chính:
- Active hoặc running khi Activity ở trên nhất màn hình và nhận tương tác
người dùng.
- Paused khi Activity không còn là trọng tâm trên màn hình nhưng vẫn hiện
thị trước người dùng.
- Stopped Khi một activity hoàn toàn bị che khuất, nó sẽ rơi vào trạng thái
Stopped. Tuy nhiên, nó vẫn còn lưu trữ toàn bộ thông tin trạng thái. Và nó thường
bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ.
Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với
các bước chuyển:
void onCreate(Bundle savedInstanceState)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
17



Sơ đồ chuyển trạng thái được biểu diễn như hình dưới.

Hình 1.2 Sơ đồ chuyển trạng thái của Activity
1.1.1.4.2 .Service

18


Một Service không có giao diện và chạy ngầm trong khoảng thời gian không
xác định. Ví dụ, một Service có thể chơi nhạc ở chế độ ngầm khi người dùng
chuyển ra khỏi trình nghe nhạc. Mỗi Service đề được mở rộng từ lớp cơ sở là
Service trong gói android.app. Có thể kết nối tới hoặc kích hoạt một Service thông
qua interface mà Service đưa ra.
Cũng giống như Activity và những thành phần khác, các Service chạy trong
luồng chính của ứng dụng.
Vòng đời của một service:

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

19


1.1.1.4.3 Broadcast receiver
Một Broadcast receiver là một thành phần mà không làm gì khác ngoài việc
nhận các thông báo được broadcast. Một ứng dụng có thể có nhiều broadcast
receiver để đáp lại những thông báo được phát đến. Tất cả các broadcast receiver
được thừa kế từ lớp cơ sở BroadcastReceiver.
Một Broadcast receiver không có giao diện nhưng nó có thể thực hiện gọi
một Activity hay là sử dụng NotificationManager để thông báo cho người dùng.
1.1.1.4.4 Content Provider

Một Content Provider tạo ra một tập các dữ liệu cụ thể nào đó của ứng dụng
cung cấp cho các ứng dụng khác. Các lớp Content Provider thừa kế từ cơ sở
ContentProvider để cài đặt một số hàm tiêu chuẩn cho phép ứng dụng khác nhận và
lƣu trữ dữ liệu.
1.1.1.4.5 Manifest file
File AndroidManifest.xml là file có cấu trúc XML được dùng để khai báo
các thành phần trong ứng dụng Android. Nó cũng là nơi để khai báo các quyền truy
cập của ứng dụng cũng như các thư viện cần thiết.
1.1.1.4.6 Các thành phần khác
Ngoài các thành phần chính ở trên, còn có các thành phần khác như
Resource bao gồm các file đồ họa, âm thanh, string,… và các thư viện do nhà cung
cấp thứ 3. Tham khảo thêm về các thành phần trong [2].
1.2 Giới thiệu về ASP.NET và Web Service
1.2.1 ASP.NET
1.2.1.1 Đặc điểm của ASP.NET

20


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.

21


Hình 1.4 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, 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).

22


- 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).
Khía cạnh quang trọng nhất của công cụ ASP.NET là nó chạy trong môi
trường 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.
1.2.1.2 Một số khái niệm mới trong ASP.NET 3.5
1.2.1.2.1 ASP.NET AJAX
Trong ASP.NET 2.0, ASP.NET AJAX được cài đặt thêm vào. Tuy nhiên
trong ASP.NET 3.5, ASP.NET AJAX đã được tích hợp. vào trong .NET Framework,
do đó quá trình xây dựng giao diện người dùng được dễ dàng và trực quan.
23


ASP.NET AJAX Control Extenders đã được tích hợp ToolBox của Visual Studio
2008.
1.2.1.2.2 LINQ
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.5 Cấu trúc LINQ
1.2.2 Web Service
1.2.2.1 Khái niệm
Một Web service được định nghĩa là một tập các phương thức có thể được

định vị thông qua địa chỉ URL, các phương thức này được công bố trên hệ thống
mạng và được dùng như những khối cơ bản để xây dựng một ứng dụng phân tán
(Trích sách: Developing XML Web service using Microsoft Visual Studio .NET).
Nói một cách đơn giản hơn, web service là tập hợp các phương thức có thể được
24


các ứng dụng khác triệu gọi từ xa (RPC- Remote Procedure Call) để hình thành nên
một hệ ứng dụng phân tán.
1.2.2.2. Hoạt động của Web Service

Hình 1.6: Hoạt động của Web Service
Một ứng dụng web service thường gồm 2 phần: client và server.
Client và server sẽ giao tiếp với nhau theo giao thức HTTP: Ứng dụng client
sẽ gửi những lời gọi hàm đến server thông qua các gói tin HTTP request và kết quả
thực thi hàm sẽ được server hồi đáp thông qua các gói tin HTTP response.
SOAP: Các thông điệp sẽ được định dạng theo chuẩn giao thức SOAP (Simple
Object Access Protocol). Đây thực chất cũng chỉ là một ngôn ngữ được định nghĩa
bên trên ngôn ngữ XML có sẵn.
WSDL (Web Service Definition Language): Đây là file XML chứa các định nghĩa
về các hàm trong Web service tương ứng. Các nhà phát triển ứng dụng sẽ phải dựa
vào nội dung file này để biết Web service hỗ trợ những hàm này và nhận những
tham số tương ứng, kết quả trả về như thế nào.
Nếu chúng ta phát triển Web service trong môi trường J2ME thì không nhất
thiết phải hiểu rõ cấu trúc về file WSDL, vì trong bộ công cụ Wireless Toolkit của
Sun đã cung cấp sẵn công cụ Stub Generator. Chức năng của bộ công cụ này là đọc

25



×