1. Trang chủ
  2. » Luận Văn - Báo Cáo

Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android

70 392 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 70
Dung lượng 4,09 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

− 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ị

Trang 1

LỜI CẢM ƠN

Em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin, Bộ môn CôngNghệ Phầm Mềm, trường Đại học Công Nghệ Thông Tin Và Truyền Thông đã tạođiều kiện tốt cho em hoàn thành đồ án này

Em xin gửi lời cảm ơn chân thành tới thầy Nguyễn Trường Thắng (ViệnCông Nghệ Thông Tin- Viện Khoa Học và Công Nghệ Việt Nam) Thầy đã nhiệttình hướng dẫn cho em hoàn thành đồ án tốt nghiệp này

Em xin gửi lời cảm ơn sâu sắc tới tất cả các thầy cô, những người đã giảngdạy, trang bị cho em những kiến thức quý báu trong suốt những năm học vừa qua –trường Đại học Công Nghệ và Truyền thông– Đại học Thái Nguyên

Xin chân thành cảm ơn tới gia đình, anh chị, bạn bè đã giúp đỡ, ủng hộ, độngviên em trong suốt thời gian học tập và nghiên cứu

Mặc dù em đã cố gắng hoàn thiện thật tốt đồ án nhưng do kiến thức có hạn do

đó không thể tránh khỏi những sai sót, em rất mong nhận được sự cảm thông, ý kiếnđóng góp của các quý Thầy Cô và các bạn!

Em xin chân thành cảm ơn! Sinh viên thực hiện

Đặng Thị Hà

Trang 2

LỜI CAM ĐOAN

Em xin cam đoan nội dung của đồ án này là sản phẩm của bản thân em tìmhiểu, nghiên cứu và xây dựng lên Không sao chép của ai Nội dung đồ án có thamkhảo, sử dụng tài liệu, thông tin từ một số nguồn khác được trích dẫn trong phần tàiliệu tham khảo, và một số website Nếu có gì sai sót em xin chịu hoàn toàn mọitrách nhiệm và kỷ luật của trường đề ra

Tác giả đồ án Đặng Thị Hà

Trang 3

MỤC LỤC

Trang 4

DANH MỤC CÁC HÌNH

DANH MỤC CÁC BẢNG

Trang 5

DANH MỤC TỪ VIẾT TẮT

Ký hiệu

Giải thích

EDGE Enhanced Data Rates for GSM

Evolution

Sự phát triển tăng tốc độ truyền cho mạng GSM

API Application Programming Interface Giao diện lập trình ứng dụng

GPRS General Packet Radio Service Gói dịch vụ vô tuyến tổng

hợp

GSM Global System for Mobile

Communications

Hệ thống thông tin di động toàn cầu

SDK Software Development Kit Bộ công cụ phát triển phần

mềm

GPS Global Positioning System Hệ thống định vị toàn cầu

Trang 6

LỜI MỞ ĐẦ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 lực lượng giao thông tai các điểm hay ùntắc cho tới các biện pháp pháp tận dụng sức mạnh cộng đồng như là thực hiệnchương trình VOV giao thông, tăng cường giáo dục, tuyên truyền, kêu gọi ý thứccủ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 giagiao thông chưa cao, nên các biện pháp đề ra chưa mang lại hiệu quả như mongmuốn

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, em đã chọn đề tài đồ án “Dịch vụ cung cấp thông tin tình trạng giao thông dựa trên vị trí cho thiết bị cầm tay trên nền Android“ Bài toán được

giải quyết chủ yếu dựa vào dịch vụ Google Map và các thiết bị sử dụng hệ điềuhành Android Google Maps là dịch vụ đã phổ biến trên thế giới cũng như ở ViệtNam Ở các thành phố lớn trên thế giới, Google Maps có tích hợp thông tin giaothô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ự

Mục tiêu của đề tài:

Đề tài nhằm đưa ra một giải pháp bổ sung, khả thi cùng với các phương tiệnkhác như VOV giao thông đưa thông tin giao thông đến cho người sử dụng Internet

di động trên các điện thoại, cụ thể là Android

Hướng tiếp cận của đề tài:

Giải pháp đưa ra là sử dụng cùng nguồn thông tin như VOV Giao thông, có thể

Trang 7

đường, chỉ định điểm tắc đường cụ thể trên bản đồ, có mô tả về thời gian tắc, thờigian dự kiến kết thúc Phần mềm thực hiện hai nhiệm vụ chính là xác định điểm tắcđường trên bản đồ, công việc này được xử lý ở Server, truy cập và hiển thị lại thôngtin trên các thiết bị di động, phần này được thực hiện ở Client

Các công việc chính của đề tài bao gồm:

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

• Tìm hiểu và xây dựng Webservice kết nối Client và Cơ sở dữ liệu SQLServer

• Tìm hiểu dịch vụ Google Maps và các giao diện lập trình được hỗ trợ để tíchhợp với phần Server và Client

• Tìm hiểu và cài đặt Client trên nền điện thoại di động Android

Đồ án bao gồm 3 chương với nội dung như sau:

Chương 1: Cơ sở lý thuyết chương này bao gồm các kiến thức được sử dụng để

xây dựng chương trình

Chương 2: Phân tích thiết kế hệ thống chương này sẽ đi phân tích thiết kế hệ

thống để đạt được mục tiêu đề ra

Chương 3: Cài đặt và thử nghiệm chương này sẽ trình bày một số file được cài

đặt trong hệ thống và kết quả thu được

Thái Nguyên, tháng 6 năm 2012

Trang 8

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu về hệ điều hành 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 độnghưở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ácphầ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ậptrì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íchhợp với Eclipse SDK

1.1.1 Phát triển ứng dụng trên Android

 Cấu trúc của các thành phầ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ácthư viện (Libraries), Android Runtime và nhân Linux (Linux Kernel)

Trang 9

Hình 1.1: Kiến trúc hệ điều hành 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ạ được nhiềuInstance một cách hiệu quả Nó dựa vào nhân Linux để thực hiện đaluồng và quản lý bộ nhớ cấp thấp

Tầng ứng dụng khung: Cung cấp các lớp được sửa 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ầncứ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ư

Trang 10

viện các giao diện lập trình(API) Tầng ứng dụng chạy trong AndroidRuntime (Dalvik) sử dụng các lớp và dịch vụ có sẵn trong lớp Ứng dụngkhung.

 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 ứngdụ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ườilậ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ácthà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ạolạ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

 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

Trang 11

android.database Cung cấp các lớp mức thất 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àinguyê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ấpcho 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

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 trongtấ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áccuộ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

Trang 12

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ềuthiế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

 Các thành phần của ứng dụng Android

Activity

Một Activity là đại diện cho một giao diện người dùng, tiếp nhận tươngtác người dùng với ứng dụng Ví dụ một Activity có thể là một danh sáchcá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ácthông tin khác Một ứng dụng có thể có một hoặc nhiều Activity Việc dichuyển giữa các Activity được thực hiện bằng cách từ Activity hiện tại mở raActivity 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ộtView cũng có thể chứa nhiều View khác View có thể được tạo mới thôngqua việc thừa kế lớp View hoặc khai báo thông qua file XML

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

Trang 13

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ướcchuyển:

 void onCreate(Bundle savedInstanceState)

Trang 14

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

Trang 15

Service

Một Service không có giao diện và chạy ngầm trong khoảng thời giankhông xác định Ví dụ, một Service có thể chơi nhạc ở chế độ ngầm khi ngườidù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 Servicethông qua interface mà Service được tạo ra

Cũng giống như Activity và cũng và những thành phần khác, các dịch vụ chạytrong 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

Broadcast receiver

Một Broadcast receiver là một thành phần mà không làm gì khác ngoàiviệc nhận các thông báo được broadcast Một ứng dụng có thể có nhiều

Trang 16

broadcast receiver để đáp lại những thông báo được phát đến Tất cả các broadcastreceiver được thừa kế từ lớp cơ sở BroadcastReceiver Một Broadcast receiverkhông có giao diện nhưng nó có thể thực hiện gọi một Activity hay là sử dụngNotificationManager để thông báo cho người dùng

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à cungcấp thứ

1.2 Giới thiệu về ASP.NET MVC

1.2.1 ASP.NET

 Đặc điểm của ASP.NET

ASP.NET có tên đầy đủ là Active Server Page NET ASP.NET là mô hìnhphá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 NETFramework, 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ữ

Trang 17

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ônngữ 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ênnguyên lý của HTTP và HTML Mã nguồn không được truy cập toàn bộ các đốitượng trong NET Framework nhưng có thể khai thác tất cả các quy ước củamột môi trường OOP (Object Oriented Programming) Thiết kế hướng đối tượnggiúp tạo các lớp, giao diện, kế thừa các lớp

Hình 1.4 Vị trí của ASP.NET trong NET FrameworkMộ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ữ NETkhác) được dịch bởi Microsoft Intermediate Language (MSIL) Giai đoạndịch này được dịch tự động khi trang web đầu tiên yêu cầu Các file đượcdịch thành mã IL (Intermediate Language Code)

Trang 18

− 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 (virtualmachine) trong Microsoft NET, do có ngôn ngữ trung gian IL nên việc pháttriển ứng dụng trên NET sẽ không bị phụ thuộc vào thiết bị, có nghĩa là ứngdụng NET có thể chạy trên bất kỳ thiết bị nào có NET Framework Tất cả cácnamespace, 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ư:

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

Trang 19

Hình 1.5 Cấu trúc LINQ

 Khái niệm MVC

MVC là một mô hình kiến trúc phần mềm Khi sử dụng đúng cách, mô hìnhMVC giúp cho người phát triển phần mềm độc lập các nguyên tắc nghiệp vụ và giaodiện người dùng một cách rõ ràng hơn Phần mềm phát triển theo mô hình MVC tạonhiều thuận lợi cho việc bảo trì nâng cấp và sửa chữa vì các thành phần riêng biệt ítliên quan với nhau

Kiến trúc của MVC bao gồm 3 thành phần cơ bản: Model, View, và Controltrong đó:

Model: Được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu

vào các kho chứa dữ liệu Tất cả các nghiệp vụ logic được thực thi ở Model

Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và được kiểm tra

ở Model trước khi lưu vào cơ sở dữ liệu Việc truy xuất, xác nhận, và lưu dữliệu là một phần của Model

Trang 20

View : View là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra

màn hình, cung cấp các menu, nút bấm, hộp đôi thoại, chọn lựa…, để ngườidùng có thể thêm sửa xóa, tìm kiếm và thực hiện các thao tác khác đối với dữliệu trong hệ thống… Thông thường các thông tin cần hiển thị lấy từ thànhphần Models

Controller (Tầng điều khiển): là phần điều khiển của ứng dụng, điều hướng

các nhiệm vụ đến đúng phương thức (method) có chức năng xử lí nhiệm vụ

đó Nó chịu trách nhiệm xử lí các tác động về mặt giao diện, các thao tác đốivới models, và cuối cùng là chọn một View thích hợp để hiển thị ra màn hình MVC chia nhỏ quá trình xử lý của một ứng dụng, giúp người lập trình làm việctrên từng thành phần riêng lẻ, không ảnh hưởng đến các thành phần khác giúp pháttriển ứng dụng nhanh, đơn giản, dễ nâng cấp

Hình 1.6 Cấu trúc của mô hình MVC trên môi Web

Lợi ích to lớn của phương pháp MVC là giúp chia chương trình ra thành các phầnriêng lẻ, tạo ra sự minh bạch giữa dữ liệu, điều khiển, và hiển thị Điều này khiếncho việc kiểm thử, bảo trì một hệ thống MVC dễ dàng và tiết kiệm hơnnhiều

 Một số vấn đề về ASP.NET MVC

 Cấu trúc một dự án trong Visual Studio

Một project ASP.NET MVC trong Visual Studio có cấu trúc như sau:

Trang 21

Hình 1.7 Cấu trúc dự án ASP.NET MVC trong Visual Studio 2008

- /App_Data Thường dùng để chứa các file dữ liệu, thường là các file *.mdf

hoặc *.mdb, cũng có thể là cái file dữ liệu dạng xml

- /bin Thư mục chứa các file đã được biên dịch cũng như các thư viện tham

chiếu của ứng dụng

- /Content Thường được dùng để chứa các file tĩnh như là đồ họa, âm thanh

hoặc CSS

- /Controllers Lưu trữ các lớp Controller (Các lớp thừa kế từ lớp cơ sơ là

Controller hoặc cài đặt giao diện IController)

- /Models Thư mục chứa các lớp model

- /Views Đây là nơi lưu trữ các file View có phần mở rộng là *.aspx, *.ascx

Mỗi file đều được chứa trong thư mục con tương ứng với tên của Controller

Trang 22

- /Views/Shared: Chứa các file template và không thuộc một Controller cụ thể nào

cả, ví dụ như file master page, file 404.html…

- Default.aspx: Không thực hiện một chức năng hiển thị nào cả, chỉ đơn giản là file

mặc định để chỉ định vào cấu hình URL của ứng dụng

- Global.asax Lưu trữ các chỉ dẫn map URL, cũng như là cài đặt các quy định khởi

động, tắt ứng dụng khi cần thiết

- Web.config Là file có cấu trúc XML, lưu trữ toàn bộ các cấu hình của ứng

dụng

 Truyền dữ liệu từ Controller sang View

Việc truyền Model từ Controller sang View có thể thực hiện theo nhiều cách

Đơn giản là thực hiện gọi hàm: return View("MyView", modelObject);

Nếu cần truyền nhiều dữ liệu khác, có thể sử dụng Mảng ViewData trong Controller

để truyền dữ liệu: ViewData[“dataname”] = modelObject;

ViewData sẽ được truyền qua View và sử dụng trở lại bằng cách lấy giá trị của

ViewData[“dataname”]

 Dữ liệu động trong View của MVC

Các View được khai báo theo định dạng HTML Vì thế không sẽ không

có được những ứng dụng tốt nếu như chỉ làm việc với các dữ liệu tĩnh Có nhiềucách để thêm dữ liệu động trong View của MVC Có thể sử dụng Inline Code,HTML helpers, Server controls, Partial views, và phương thứcHtml.RenderAction() Trong đó sử dụng Inline code cho những phần nhỏ đượckhuyến khích trong ASP.NET MVC Inline code được đặt khai báo bằng thẻ <%

%> Ví dụ khi viết mã trong HTML là:

<h1>Information about <%= Model.Name %></h1>

Trang 23

1.3 Giới thiệu về Google Maps

Hiện tại, có nhiều nhà cung cấp dịch vụ bản đồ trực tuyến miễn phínhư là Google, Yahoo, Microsoft, và Amazon… Google là hãng cung cấp dịch vụtốt nhất với sản phẩm Google Maps với nhiều chức năng bản đồ cũng như cung cấpcác APIs mở Nhiều hạn chế trong các sản phẩm bản đồ nền Web-based đã đượcGoogle Maps khắc phục Để hiểu làm cách nào mà công nghệ này có khả năng thayđổi cách thức tạo bản đồ số chúng ta sẽ tìm hiểu qua cách tiếp cận cổ điển trong xuấtbản bản đồ môi Web Bản đồ Web cổ điển dựa vào cơ sở hạ tầng phức tạpcủa dữ liệu, phần cứng, phần mềm và nguồn lực con người

Dữ liệu trong ứng dụng bản đồ Web cổ điển có thể chia làm 2 danh mụcriêng biệt: dữ liệu cơ sở và dữ liệu của ứng dụng Dữ liệu cơ sở, hay dữ liệu nềnthường bao gồm dữ liệu địa lý và thường có nhiều lớp như là lớp khí quyển, ảnh,đường và các đường biên lãnh thổ Dữ liệu cụ thể của ứng dụng bao gồm các tầng

dữ liệu cụ thể cho ứng dụng được phát triển Ví dụ, một ứng dụng bản đồ Web chomột thành phố thì sẽ có các lớp như là các vùng trực thuộc, vị trí các học, các côngtrình công cộng, và nhiều lớp khác Mỗi lớp dữ liệu này phải được định vị và lưutrữ trên máy chủ bởi chính tổ chức đó và nó cần được cập nhật định kỳ VớiGoogle Maps, sẽ không còn phải định vị và quản lý dữ liệu cơ sở nữa Dữliệu vùng, đường đã đi kèm trong Google Maps Tuy nhiên, người sử dụng cũngcần phải quản lý ứng dụng của mình bằng dữ liệu XML hoặc là các định dạngkhác Không chỉ có các yêu cầu dữ liệu phức tạp, các ứng dụng bản đồ cổ điển còn

có các vấn đề với phần cứng phần mềm và sức lực con người Phải mua thêm phầncứng và phần mềm, cũng như cần có sự quản lý của con người để cài đặt bảo trì,quản trị phần mềm, lập trình tạo ra ứng dụng Tuy không hoàn toàn loại bỏ các yêucầu phần cứng và phần mềm, nhưng chúng đã được giảm thiểu đáng kể với GoogleMaps Vẫn cần phần cứng để triển khai ứng dụng nhưng yêu cầu phần mềm thì đãđược hạn chế một cách tối đa Google Maps là sản phẩm miễn phí, không cần cài

Trang 24

đặt, hay quản lý Sản phẩm hỗ trợ các APIs để tạo ra các chức năng tùy biến của ứngdụng

Google Maps hỗ trợ các dịch vụ như định vị, tìm đường, thêm dữ liệu cánhân, các điều khiển làm cho việc ứng dụng bản đồ trong ứng dụng Web trở nên dễdàng và thuận tiện hơn bao giờ hết

Để sử dụng Google Maps trong ứng dụng Client cần để thêm vào thư viện sửdụng câu lệnh trong file AndroidManifest.xml Project tạo ra nó tự động nếu chọnmột phiên bản Google API

<uses library android:required = "true"android:name =

"com.google.android.maps" </uses-library>

Để dễ dàng hơn khi tăng khả năng ứng dụng google map, các nhà cung cấpGoogle đã đưa ra một thư viện mở rộng nó bao gồm gói: Các lớp của các gói

com.google.android.maps được xây dựng tải về, dựng hình, và bộ nhớ đệm của

Maps, cũng như một loạt các tùy chọn hiển thị và điều khiển

Lớp “MapController” có thể sử dụng để tương tác với “MapView” bởi di chuyển nóMột “Geopoint” dùng miêu tả vị trí thông qua kinh độ và vĩ độ và lớp “Overlay” cóthể sử dụng để vẽ trên bản đồ, các vị trí đánh dấu

Trang 25

keytool.exe -list -alias androiddebugkey -keystore "C:\android\debug.keystore" -storepass android -keypass android

Kết quả như hình sau:

Trang 26

Hình 1.8: Lấy fingerprint từ máy tính

Sau khi thu được fingerprint vào địa chỉ:

http://code.google.com/android/maps-api-signup.html để đăng kí nhận google apikey, sau đó thu được key thường có dạng như sau:

0tsie_1ve1s-wJU3hUdddc6QRTJ_qcxDHZ7HHqw

Cuối cùng là sẽ nhúng key này vào filemail Xml trong thư mục res/layout/mail.xmlnhư trên

Nói chung, lớp MapView cung cấp một bao bọc xung quanh Google Maps API cho

phép ứng dụng thao tác dữ liệu Google Maps thông qua các phương thức, và nó chophép làm việc với dữ liệu bản đồ

Vì Maps không phải là một phần của thư viện Android tiêu chuẩn, do đó nó có thểkhông có mặt trên một số thiết bị Android-powered Tương tự như vậy, các thư việnMaps bên ngoài không được bao gồm trong thư viện Android tiêu chuẩn được cungcấp trong SDK Vì vậy, bạn có thể phát triển bằng cách sử dụng các lớp của gói

com.google.android.maps, thư viện Maps bên ngoài được tạo sẵn cho bạn như là

Trang 27

1.4 Tìm hiểu dịch vụ web (web service)

1.4.1 Khái niệm về dịch vụ web Web Services là chuẩn mở của tổ chức W3C (World Wide Web Consortium)

và được định nghĩa như sau: “Web Service là ứng dụng phần mềm được định danh

bởi URI (Uniform Resource Identifier), các giao diện và sự gắn kết của nó là có khả

năng định nghĩa, mô tả, và khám phá bằng XML Một Web Service hỗ trợ trực tiếp

sự tương tác với những tác nhân phần mềm (software agents) khác bằng việc sử

dụng những thông điệp dựa trên XML được trao đổi thông qua giao thức dựa trênInternet.”

Về cơ bản thì Web Service được phối hợp bởi hai sức mạnh của công nghệ phổbiến đó là : XML, ngôn ngữ mô tả dữ liệu; và giao thức truyền tải HTTP được hỗ trợrộng khắp bởi trình duyệt và Web server

Web Services = XML + Transport Protocol (HTTP) 1.4.2 Đặc điểm của dịch vụ web

− Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả trongnhững môi trường khác nhau

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

− Một Dịch vụ Web bao gồm có nhiều mô-đun

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

− Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server Nó

có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP,Oracle Application server hay Microsoft.Net…

Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống cóthể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc và phânloại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tincần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa

Trang 28

điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hốiđoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C)như đặt vé máy bay, thông tin thuê xe…

1.4.3 Ưu và nhược điểm

 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ếntrình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web

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

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

 Nhược điểm:

 Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của dịch vụ Web,giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếucá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.

Trang 29

1.4.4 Kiến trúc web service

Hình 1.9: Kiến trúc web serviceTrong đó bao gồm các tầng :

Tầng vận chuyển với những công nghệ chuẩn là HTTP , SMTP và JMS ●

Tầng giao thức tương tác dịch vụ ( Service Communication Protocol) vớicông nghệ chuẩn là SOAP SOAP là giao thức nằm giữa tầng vận chuyển vàtầng mô tả thông tin về dịch vụ, SOAP cho phép người dùng triệu gọi mộtservice từ xa thông qua một message XML

Tầng mô tả dịch vụ (Service Description) với công nghệ chuẩn là WSDL

và XML WSDL là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML.Web service sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữliệu cho các thao tác , các chức năng mà web service cung cấp

Tầng dịch vụ ( Service): cung cấp các chức năng của service

Tầng đăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI.

UDDI dùng cho cả người dùng vạà SOAP server, nó cho phép đăng ký dịch

vụ để người dùng có thể gọi thực hiện service từ xa qua mạng, hay nói cách

Trang 30

khác một service cần phải được đăng ký để cho phép các client có thể gọithực hiện.

Bên cạnh đó để cho các service có tính an toàn , toàn vẹn và bảo mật thông tintrong kiến trúc web service chúng ta có thêm các tầng Policy, Security, Transaction,Management giúp tăng cường tính bảo mật , an toàn và toàn vẹn thông tin khi sửdụng service

Trong đề tài này em xây dựng một web service làm nhiệm vụ kết nối cơ sở

dữ liệu giữa Client và Android, Web service cung cấp các phương thức cho phépclient lấy được dữ liệu từ server và trả về cho người sử dụng thấy các thông tin cầnthiết

Trang 31

CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Phân tích

2.1.1 Phân tích dịch vụ Google Maps

Dịch vụ bản đồ số Google Maps có hỗ trợ một số chức năng như: tìm đường

đi giữa 2 điểm, ước lượng khoảng cách, xác định tọa độ của một điểm theo tên đượcnhập vào, hoặc lấy tọa độ từ một điểm trên bản đồ Tuy nhiên Google Maps lạikhông hỗ trợ xác định điểm đầu và điểm cuối của một con đường theo tên, phố.Ngược lại, việc quản lý giao thông thì lại phải căn cứ vào tên đường phố Vì thếcần có thêm cơ sở dữ liệu để quản lý tên đường phố là bắt buộc với ứng dụng trong

đề tài này

2.1.2 Phân tích hệ thống

 Yêu cầu người dùng

Xây dựng phần mềm “Dịch vụ cung cấp thông tin tình trạng giao thông dựatheo vị trí cho thiết bị cầm tay trên nền Android” cần thực hiện được các chức năngsau:

- Chức năng biên tập, dành cho người biên tập có thể đặt các trạng thái bằng cách thao tác trực tiếp trên bản đồ

- Chức năng xem thông tin dành cho người dùng dịch vụ có thể biết trạng thái các điểm được thông báo

 Yêu cầu hệ thống

- Một nút giao thông có thể có nhiều trạng thái như tắc đường, cấm đường, cócông trình thi công, hoặc là có tai nạn giao thông Những trạng thái này có thể đượcthêm vào hoặc sửa đổi cho phù hợp

Trang 32

- Dữ liệu đường phố, vùng địa lý thực tế có thể bị thay đổi, vì thế nguời biên tập cóthể cập nhật được cơ sở dữ liệu đường phố, quận huyện khi cần thiết để đảm bảotính chính xác

- Chức năng báo tắc đường phải chỉ định được tọa độ, tên đường, tên trạng thái củanút giao thông trên bản đồ

- Người dùng thiết bị di động nền Android có thể xem các trạng thái đó trên điệnhoại ở chế độ bản đồ hoặc theo danh sách

- Người dùng cũng có thể thông báo một con đường đang bị tắc với mô tả và gửi lên cho Server

- Client có thể tự động cập nhật các trạng thái sau một khoảng thời gian nào đó Người dùng cũng có thể cập nhật bằng tay để có những thông tin cập nhật nhất

- Phần Server được lập trình trên nền Web phải hỗ trợ các thao tác như bấm chuột phải để đặt trạng thái Người biên tập thao tác trực tiếp trên bản đồ vì thế yêucầu Trạng thái được đặt cần phải đúng với một con đường nào đó trên bản đồ

2.2 Xây dựng biểu đồ ca sử dụng

2 2.1 Xác định tác nhân và ca sử dụng

 Tác nhân

- Nguoi dung: Người dùng điện thoại Android và phần mềm

- Nguoi bien tap: Người cập nhật thông tin trạng thái giao thông

- Google map: Hệ thống cung cấp bản đồ cho hệ thống

Trang 33

- Gui thong bao: Người dùng gửi thông báo các trạng thái giao thông

cho hệ thống

- Xem trang thai theo duong: Người biên tập chọn một đường trong danh

sách để xem thông tin trạng thái đường đó

- Tao trang thai: Người biên tập thông báo một trạng thái mới qua một

điểm trên bản đồ

- Cap nhat trang thai: Người biên tập thực hiện cập nhật trạng thái tại

điểm Mục đích cập nhật là thay đổi mô tả, hoặc thời gian dự kiến kết thúc

- Ket thuc trang thai: Người biên tập kết thúc một trạng thái sớm hơn thời

gian dự kiến, thông tin về trạng thái sẽ không được gửi đến cho người dùng nữa

 Biểu đồ ca sử dụng

Hình 2.1 Biểu đồ ca sử dụng của Server

Trang 34

Khởi tạo Map Activity, chuyển đến vị trí người dùng

2 Tạo luồng mới truy cập dữ liệu từ hệ thống cơ sở dữ liệu trả về

3 Hiển thị lên bản đồ

Trang 35

3.1 Không kết nối được với hệ thống, kết thúc truy vấn chờ thời gian truy cập lại

Bảng 2.1 Ca sử dụng xem theo bản đồ

Hình 2.3 Biểu đồ tuần tự xem theo bản đồ

 Xem theo danh sách

Tên ca sử dụng Xem theo danh sách

Sự kiện kích hoạt Người dùng chọn nút xen theo danh sách trong clientLuồng sự kiện chính:

1 Khởi tạo màn hình xem theo danh sách

2 Tạo luồng mới truy vấn dữ liệu từ hệ thống chờ dữ liệu trả về

3 Liệt kê ra màn hình các trạng thái nhận được

Luồng sự kiện phụ:

2.1 Không tìm thấy hệ thống Kết thúc luồng truy vấn, chờ thời gian cập nhật lại

Ngày đăng: 13/12/2016, 09:40

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Kiến trúc hệ điều hành Android - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Hình 1.1 Kiến trúc hệ điều hành Android (Trang 9)
Hình  1.2 Sơ đồ chuyển trạng thái của Activity - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
nh 1.2 Sơ đồ chuyển trạng thái của Activity (Trang 14)
Hình  1.5 Cấu trúc LINQ - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
nh 1.5 Cấu trúc LINQ (Trang 19)
Hình  1.7 Cấu trúc dự án ASP.NET MVC trong Visual Studio 2008 - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
nh 1.7 Cấu trúc dự án ASP.NET MVC trong Visual Studio 2008 (Trang 21)
Hình 1.8: Lấy fingerprint từ máy tính - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Hình 1.8 Lấy fingerprint từ máy tính (Trang 26)
Hình 1.9: Kiến trúc web service Trong đó bao gồm các tầng : - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Hình 1.9 Kiến trúc web service Trong đó bao gồm các tầng : (Trang 29)
Hình 2.1 Biểu đồ ca sử dụng của Server - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Hình 2.1 Biểu đồ ca sử dụng của Server (Trang 33)
Hình 2.2 Biểu đồ ca sử dụng Client - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Hình 2.2 Biểu đồ ca sử dụng Client (Trang 34)
Bảng 2.1 Ca sử dụng xem theo bản đồ - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Bảng 2.1 Ca sử dụng xem theo bản đồ (Trang 35)
Bảng 2.2 Ca sử dụng theo danh sách - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Bảng 2.2 Ca sử dụng theo danh sách (Trang 36)
Bảng 2.3 Ca sử dụng gửi thông báo - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Bảng 2.3 Ca sử dụng gửi thông báo (Trang 37)
Hình 2.6: Hiển thị danh sách trạng thái đường - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Hình 2.6 Hiển thị danh sách trạng thái đường (Trang 38)
Hình 2.7 Biểu đồ trình tự thêm mới dữ liệu đường - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Hình 2.7 Biểu đồ trình tự thêm mới dữ liệu đường (Trang 39)
Bảng 2.7 Ca sử dụng cập nhật trạng thái - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
Bảng 2.7 Ca sử dụng cập nhật trạng thái (Trang 41)
Hình  2.10 Biểu đồ lớp - Dịch vụ cung cấp thông tin tình trạng giao thông dựa theo vị trí cho thiết bị cầm tay trên nền android
nh 2.10 Biểu đồ lớp (Trang 42)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w