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

nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch

46 617 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 46
Dung lượng 1,04 MB

Nội dung

Ứng dụng “Hướng dẫn du lịch qua mobile theo ngữ cảnh” được viết lên nhằm mục đích hướng dẫn khách tham quan thu được thông tin một cách chính xác nhất về địa điểm mà họ quan tâm.. chỉ là

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Ngành: Mạng và truyền thông máy tính

Cán bộ hướng dẫn: ThS Nguyễn Việt Anh

HÀ NỘI - 2010

Trang 3

Tóm Tắt

Việc hướng dẫn du lịch ngày nay hết sức đa dạng, chúng ta có thể được hướng dẫn thông qua internet, hướng dẫn viên, sách báo…Nhưng tất cả các cách trên đều có một hạn chế đó là tính độc lập, như internet thì chúng ta luôn phải cần một chiếc máy tính kết nối mạng, còn hướng dẫn viên thì ta luôn phải đi theo sát họ…Vì vậy việc hướng dẫn du lịch qua mobile là một giải pháp tốt Ứng dụng “Hướng dẫn du lịch qua mobile theo ngữ cảnh” được viết lên nhằm mục đích hướng dẫn khách tham quan thu được thông tin một cách chính xác nhất về địa điểm mà họ quan tâm Ứng dụng tổ chức dữ liệu dưới dạng cây, tùy vào ngữ cảnh mà người dùng đưa vào sẽ quyết định độ chi tiết của thông tin trả về

Sau hơn 5 tháng nghiên cứu dưới sự hướng dẫn của thầy ThS Nguyễn Việt Anh

và sự giúp đỡ của các bạn trong nhóm khóa luận Bước đầu khóa luận đã thu được những kết quả nhất định

- Áp dụng xử lý dữ liệu theo ngữ cảnh vào bài toán du lịch

- Tìm hiểu về J2ME, Webservice

- Xây dựng thành công chương trình “Hướng dẫn du lịch qua mobile theo ngữ cảnh” Ứng dụng đã đáp ứng được những chức năng cần thiết nhất trong việc hướng dẫn du lịch qua mobile theo ngữ cảnh

Trang 4

MỤC LỤC

Lời nói đầu 1

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

Chương 1 Xử lý dữ liệu theo ngữ cảnh trên mobile 3

1.1 Giới thiệu 3

1.2 Hạn chế của hướng dẫn du lịch thông thường 3

1.3 Hướng dẫn du lịch theo ngữ cảnh 4

1.4 Các chương trình liên quan 4

1.5 Cấu trúc DTG .6

1.6 Xác định ngữ cảnh 7

1.7 Kết luận 8

Chương 2 Ứng dụng “hướng dẫn du lịch qua mobile theo ngữ cảnh” .9

2.1 Ngữ cảnh của chương trình 9

2.2 Mô hình kết nối 10

2.3 Thiết kế cơ sở dữ liệu 11

2.3.1 Các bảng dữ liệu của chương trình 11

2.3.2 Chi tiết các bảng 11

2.4 Mô hình dữ liệu 13

2.5 Cài đặt thuật toán 14

2.5.1 Các khái niệm cơ bản về cây 14

2.5.2 Cài đặt cây 16

2.6 Luồng xử lý dữ liệu của chương trình 20

2.6.1 LoginScreen 20

2.6.2 Welcome 21

2.6.3 List 22

2.6.4 Form 24

2.7 Cài đặt thử nghiệm 25

Chương 3 J2ME 26

3.1 Giới Thiệu 26

3.2 Những phiên bản Java 26

3.3 Tại sao dùng J2ME? 27

3.3.1 Configurations (Cấu hình) 27

3.3.2 Profile 28

3.4 Cấu hình CONFIGURATION và PROFILE được phát triển như thế nào? 29

3.4.1 Máy ảo Java (JVM – Java Virtual Machines) 29

3.4.2 KVM và CLDC liên quan như thế nào? 29

Trang 5

3.5 Tính tương thích giữa những phiên bản Java 30

3.5.1 Ứng dụng J2SE sẽ tiếp tục chạy trên môi trường J2ME? 31

3.5.2 Những ứng dụng J2ME vẫn chạy trên J2SE? 31

3.6 Kết chương 31

Chương 4 Web service 32

4.1 Định nghĩa 32

4.2 Thành phần cơ bản của Web service 32

4.3 Hoạt động của Web service 32

4.3.1 SOAP .33

4.3.2 WSDL (Web Service Definition Language) 33

4.3.3 UDDI(Universal Description, Discovery, and Integration) .33

4.5 Các thành phần chính của Web Service 35

4.5.1 SOAP (Simple Object Access Protocol) 35

4.6 WSDL (Web Service Definition Language) .35

4.6.1 Cấu trúc file WSDL 37

Chương 5 Kết luận 38

5.1 Kết luận 38

5.1.1 Các kết quả đạt được 38

5.1.2 Các vấn đề chưa giải quyết được 38

5.2 Hướng phát triển t ương lai 38

Trang 6

Lời cảm ơn!

Sau hơn năm tháng tìm hiểu và thực hiện, luận văn “Nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch” đã cơ bản hoàn thành Để đạt được kết quả này, em đã nỗ lực hết sức và đồng thời cũng nhận được rất nhiều sự quan tâm, giúp đỡ, ủng hộ của thầy cô, bạn bè và gia đình

Điều đầu tiên, em xin gửi lời cảm ơn chân thành đến bộ môn Mạng và Truyền thông máy tính, Khoa Công nghệ thông tin, Trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội và các thầy cô đặc biệt là ThS Nguyễn Việt Anh đã tận tình giúp đỡ, hướng dẫn em hoàn thành luận văn

Mình rất cảm ơn các bạn bè trong khoa, đặc biệt là nhóm làm cùng khóa luận và cộng đồng Java Việt Nam đã luôn bên cạnh, giúp đỡ và đóng góp ý kiến trong suốt quá trình làm luận văn

Và con xin chân thành cảm ơn đến gia đình đã luôn động viên và tạo điều kiện thuận lợi nhất để con học tập và hoàn thành luận văn

Luận văn đã hoàn thành và có được kết quả nhất định, tuy nhiện vẫn không thể tránh khỏi những sai sót Rất mong sự cảm thông và đóng góp ý kiến nhiệt tình từ thầy

cô và các bạn

Hà Nội, tháng 5 năm 2010

Lê Xuân Chính

Trang 7

Lời nói đầu

Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu những năm 1990, và theo thời gian số lượng nhà cung cấp dịch vụ và số lượng thuê bao tăng lên hàng ngày Giờ đây chiếc điện thoại di động không chỉ đơn thuần là gọi, nhắn tin và nghe mà nó còn là một thiết bị giải trí đa phương tiện, tra cứu thông tin rất tiện lợi Việc xây dựng các ứng dụng trên điện thoại đi động là một lĩnh vực mới, hứa hẹn nhiều thú vị và là một

xu thế tất yếu hiện nay Các dịch vụ giá trị gia tăng trên điện thoại di động có thể nói là một mảnh đất màu mỡ cho các doanh nghiệp cung cấp dịch vụ di động

Ngày nay có hai hướng phát triển ứng dụng trên thiết bị di động chính là sử dụng ngôn ngữ C++ trên nền hệ điều hành Symbian và J2ME Các ứng dụng viết trên nền Symbian có ưu thế truy cập trực tiếp các tài nguyên của điện thoại di động cũng như

hỗ trợ hệ thống tập tin, thư mục…Nhưng việc phát triển trên nền Symbian tương đối phức tạp và dung lượng ứng dụng khá lớn Có thể nói J2ME là một đối thủ của Symbian API, J2ME có ưu điểm là nhỏ gọn, tiện dụng, hỗ trợ hầu hết các dòng điện thoại hiện nay, kể cả điện thoại sử dụng hệ điều hành Symbian J2ME không chỉ là ngôn ngữ dùng để viết cho các ứng dụng di động, mà nó còn có thể lập trình cho các thiết bị gia dụng, thẻ tín dụng điện tử, và các ứng dụng thông minh khác

Rất khó để so sánh các dòng ngôn ngữ lập trình Vì mỗi ngôn ngữ đều có thế mạnh riêng của nó Dựa trên tiêu trí tính phổ biến và thích hợp với điều kiện hiện thời, tôi đã chọn J2ME là ngôn ngữ để xây dựng ứng dụng Với sự phát triển mạnh của mạng di động và ngày nay vấn đề về phần cứng đã được cải thiện một cách đáng kể về tốc độ xử lý và dung lượng bộ nhớ Sự kiện đáng chú ý gần đây Việt Nam đã có một

số đơn vị cung cấp dịch vụ 3G 3G, hay 3-G, (viết tắt của third-generation technology)

là công nghệ truyền thông thế hệ thứ ba, cho phép truyền cả dữ liệu thoại và dữ liệu

ngoài thoại (tải dữ liệu, gửi email, tin nhắn nhanh, hình ảnh ) Với những thế mạnh vượt trội đó, 3G sẽ hứa hẹn là một mảnh đất cho các lập trình viên thỏa mãn đam mê lập trình trên các thiết bị di động Và tiến tới hầu như tất cả các ứng dụng trên desktop

sẽ có mặt trên mobile

Dựa trên nền tảng ngôn ngữ J2ME, tôi đã xây dựng ứng dụng “hướng dẫn du lịch qua mobile theo ngữ cảnh” Với một chiếc máy tính việc tra cứu thông tin du lịch là việc cực kì đơn giản, chỉ bằng một cú click để truy cập http://google.com sau vài giây thì bạn sẽ nhận được hàng triệu kết quả để tham khảo Ngày nay chiếc điện thoại di động với những tính năng mạnh mẽ đi cùng, các chức năng dần tiến tới như desktop

Trang 8

chỉ là vấn đề thời gian, ứng dụng “hướng dẫn du lịch qua mobile theo ngữ cảnh” được viết nên nhằm trợ giúp các khách du lịch trong việc tìm kiếm và tra cứu thông tin địa

lý, điểm đặc biệt ở chương trình là tính mềm dẻo về dữ liệu trả về, không có gì buồn chán hơn khi ta đọc đi đọc lại một lượng thông tin cố định, mà không có sự thay đổi theo thời gian Ứng dụng của tôi đã giải quyết được vấn đề này, tùy vào thông tin truy vấn của người dùng mà dữ liệu trả về sẽ khác nhau, có thể nói đây là sự thông minh của chương trình Với sự phát triển về tốc độ của mạng di động, dung lượng của dữ liệu không còn là vấn đề quan trọng nữa, vì vậy nội dung của ứng dụng sẽ thêm phong phú và đa dạng

Chương trình bước đầu đã hoàn thành, dữ liệu lúc này đơn giản chỉ là chữ và hình ảnh, nhưng cũng đủ để truyền tải hết thông tin tới người dùng Nhận thấy 3G đã

có mặt tại Việt Nam, vì vậy hướng phát triển tương lai của chương trình là tích hợp thêm video, cụ thể ở đây là ứng dụng sử dụng công nghệ Video Streaming, hiện còn rất mới, đây là hướng đi hứa hẹn nhiều thành công

Tuy đã đầu tư khá nhiều thời gian và công sức vào luận văn, nhưng không thể tránh khỏi những sai sót, tôi rất mong nhận được những đóng góp và phản hồi từ thầy

cô và các bạn! Xin chân thành cảm ơn!

Lê Xuân Chính

Trang 9

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

- Tìm hiểu ngôn ngữ lập trình J2ME

- Tìm hiểu Web service

- Tìm hiểu vể “xử lý dữ liệu theo ngữ cảnh”

- Xây dựng ứng dụng demo “Hướng dẫn du lịch qua mobile theo ngữ cảnh”

Chương 1 Xử lý dữ liệu theo ngữ cảnh trên mobile

1.1 Giới thiệu

Những khách du lịch bụi thường phải dựa vào bản đồ hoặc dựa vào những biển hiệu trên đường đi để tự khám phá một thành phố lạ lẫm Họ cần có một người hướng dẫn viên giúp họ tới những nơi mà họ muốn, cho họ thông tin về bất cứ những gì mà

họ tìm thấy thậm chí là đảm bảo đưa họ trở về đúng giờ Đây là mục tiêu chính của Dynamic Tour Guide - Hướng dẫn viên du lịch di động(DTG) DTG là một thiết bị di động cho phép cá nhân hóa những thông tin về tour du lịch Nó chọn những địa điểm thu hút khách du lịch, lên lịch cho một tour thăm quan cá nhân, cung cấp những thông tin về đường đi trong suốt quá trình du lịch và những thông tin về môi trường Những thông tin phản hồi thông minh này dựa trên tất cả những phân tích về bối cảnh hiện tại

để hỗ trợ cho khách du lịch bất cứ lúc nào

1.2 Hạn chế của hướng dẫn du lịch thông thường

Khách du lịch luôn cần có những thông tin chi tiết về địa điểm mình tham quan

ví dụ như: bảo tàng có những giờ mở cửa khác nhau hoặc có thể có những giờ mở cửa thêm Ví dụ vào những dịp cuối tuần, mùa hè thì những cửa hàng luôn kín chỗ, còn vào khoảng tháng 11 thì luôn đóng cửa Nếu không nắm bắt được những thông tin này, khách du lịch sẽ không có được những chuẩn bị cần thiết, vì vậy chỉ còn cách đi theo những biển hiệu, chỉ dẫn trên bản đồ hay đường đi Những hướng dẫn viên du lịch thường chỉ hướng dẫn cho cả đoàn khách, họ đi theo những tour đã định sẵn và chỉ tham quan những điểm chính, trong khi có những địa điểm thú vị lại không được tham quan, mặc dù chỉ cách những điểm chính rất gần

Lý tưởng nhất là có một thiết bị giống như hướng dẫn viên du lịch, luôn thường trực, am hiểu những địa danh và hiểu được sở thích cá nhân của khách du lịch, quản lý được về thời gian, biết được tình hình hiện tại, đưa ra một tour du lịch cá nhân, và có thể cất gọn trong túi áo Đây là mục tiêu của DTG Mục đích ở đây là lập ra một tour

Trang 10

du lịch, giống như một chuyên viên hướng dẫn viên du lịch sẽ làm khi sau khi biết được những thông tin về khách du lịch Điều này hoàn toàn có thể thực hiện được bằng việc áp dụng công nghệ mới là kết hợp sự nhận thức về ngữ nghĩa và ngữ cảnh của máy tính

1.3 Hướng dẫn du lịch theo ngữ cảnh

Một khách du lịch luôn muốn khám phá ngay địa điểm họ sắp tới Họ có một hồ

sơ về sở thích, điểm xuất phát và kết thúc và một khoảng thời gian cho tour du lịch Những thông tin này cần được nạp vào hệ thống Ngữ cảnh ở đây là tất cả những thông tin hiện thời về một địa điểm nhất định, một khoảng thời gian nhất định Thách thức đặt ra là phải đưa ra một tour tối ưu dựa trên những thông tin cá nhân và ngữ cảnh Trong suốt quá trình tham quan, khách du lịch có thể được hướng dẫn để đi tới tổ hợp các tòa nhà, địa điểm cần đến(Tour Building Block – TBB)

Khi khách du lịch bắt đầu chuyến du lịch, DTG có thể đo được tốc độ di chuyển

và cập nhật những thông tin này để có thể tính toán, sắp xếp lại tour du lịch Ngay khi khách du lịch tới một TBB, DTG có thể đưa ra thông tin giới thiệu phù hợp với hoàn cảnh hiện tại Một số khách du lịch có thể quyết định khám phá TBB bằng cách nhiều cách, ví dụ như đi bộ, hoặc xem lướt qua… Trong trường hợp này, những t hông tin thêm phù hợp cũng sẽ được cung cấp Ngay khi khách du lịch rời khỏi TBB, DTG sẽ ngừng cung cấp thông tin về TBB này và nạp lại quá trình điều hướng, có thể sang TBB tiếp theo Trong trường hợp du khách dừng chân lại lâu hơn dự kiến ban đầu thì thời gian còn lại phải được tính toán lại

Trên đường tới TBB tiếp theo, du khách có thể sẽ bị phân tán bởi một điểm tham quan khác hoặc đơn giản là 1 cửa hàng Lúc này DTG sẽ tạm dừng những gợi ý điều hướng và cung cấp những thông tin về bối cảnh hiện tại nếu có thể Trong trường hợp này, DTG sẽ phải chờ cho tới khi du khách rời khỏi điểm hiện tại và tính toán lại thời gian

1.4 Các chương trình liên quan

Tour Guides từ lâu đã trở thành 1 chủ đề rất quan trọng trong hoạt động nghiên cứu Cũng có nhiều chương trình được viết lên nhằm mục đích hướng dẫn theo ngữ cảnh, các chương trình đều có đặc điểm riêng của nó nhưng đều có những hạn chế nhất định, chỉ phục vụ cho những yêu cầu đặc biệt Những dự án quan trọng sau đây cũng

xử lý những vấn đề tương tự DTG

Trang 11

 Guide: Là một hướng dẫn viên du lịch di động - sử dụng hệ thống định vị theo từng ô thay vì GPS Khách du lịch có thể chọn địa điểm tham quan theo phân loại trong chuyến du lịch Đường đi đã được tính trước Thứ tự tham quan có thể được thay đổi phụ thuộc vào thời gian Sở thích cá nhân hay thông tin về ngữ cảnh được cung cấp sẵn

 DTG sẽ lên lịch một tour dựa theo hồ sơ cá nhân của khách du lịch Khái niệm

về hướng dẫn du lịch theo ngữ cảnh cũng được đề cập nhưng DTG xử lý vấn đề này tốt hơn

 Cyberguide: Là 1 trong những hướng dẫn viên du lịch đầu tiên Nó làm việc với

sự trợ giúp của GPS và tia hồng ngoại để nhận biết những thông tin ngữ cảnh như vị trí của người dùng và sự điều hướng Tour không được định trước, nhưng người dùng vẫn có thể nhận thông tin về bất cứ thứ gì, bất cứ địa điểm nào mà họ nhìn thấy Yêu cầu về 1 đường dẫn tới những địa điểm ưa thích cũng có thể được đáp ứng Bên cạnh đó, nó cũng cho phép tạo nhật ký về toàn bộ tour Khác biệt chính là sự tính toán trước về toàn bộ tour du lịch dựa trên những sở thích của khách du lịch trong hệ thống DTG

 Dự án Crumpet: Cho phép 1 thiết bị di động tìm ra một địa điểm nhất định, thể hiện nó trên bản đồ và tính toán 1 đường tới địa điểm đó Địa điểm tham quan được tìm thấy trên bản đồ và người dùng phải quyết định xem có đủ thời gian hay có nên tham quan không

 Phần mềm phát triển bởi eNarro: Cung cấp những tour định sẵn, giới thiệu những địa điểm nổi tiếng ở những thành phố lớn trên thế giới Khách du lịch cần có 1 chiếc PDA và 1 thiết bị đặc biệt dành cho những tour đặc biệt Họ cũng cần có 1 phần mềm điều hướng, hướng dẫn họ đến 1 địa điểm khác Những thông tin hướng dẫn sau đó sẽ được truyền tải tới người dùng nhờ vào thiết bị nghe nhìn đặc biệt

 Người dùng chỉ có thể chọn những tour được định sẵn – phù hợp với mục đích quảng bá

Những tour du lịch đã được định sẵn không phải là mục tiêu của DTG, cái mà nó hướng đến là tạo ra một tour du lịch mang tính cá nhân hóa trong thời gian thực Bên cạnh đó, nó cũng chú trọng đến những bối cảnh thực tại như thời gian đóng/mở cửa

Trang 12

bằng cách luôn cập nhật thông tin qua web service Những thách thức mà DTG cần giải quyết là:

Thu thập những thông tin về sở thích cá nhân của khách du lịch để tạo 1

hồ sơ hoàn chỉnh

Xếp hạng của TBBs(danh sách các địa điểm mà ta sẽ thăm) bằng cách kết hợp ngữ nghĩa

Đưa ra 1 tour du lịch trong thời gian sớm nhất có thể

Nhận biết ngữ cảnh, môi trường

Giám sát tour và điều hướng tour phù hợp

Trang 13

Hình 1.1: Phát hiện đựa trên ngữ cảnh, môi trường

Sau khi đã chọn được một điểm du lịch, thì phần mềm định vị sẽ mô phỏng các tour du lịch trên bản đồ, và hướng dẫn khách du lịch qua các tín hiệu âm thanh DTG

sẽ luôn theo dõi hành trình của các tour du lịch bằng cách thay đổi theo ngữ cảnh Ví

dụ như du khách thay đổi tốc độ di chuyển, đến một mức nào đó thì sẽ kích hoạt một tính toán nào đó để đảm bảo đến được điểm mong muốn trong thời gian đã được định sẵn

3 Hỗ trợ khám phá: Ngữ cảnh dịch vụ là miêu tả các dịch vụ có sẵn

Hệ thống nhận thức ngữ cảnh có khả năng thích ứng được với các chức năng vì

nó có khả năng lọc ra các thông tin theo ngữ cảnh Đây được gọi là trí thông minh thích ứng với môi trường xung quanh Ngữ cảnh cá nhân được ánh xạ đến ngữ cảnh dịch vụ với từng địa điểm một DTG sẽ làm việc bằng cách phát hiện các vị trí gần vị

Trang 14

trí hiện tại và yêu cầu các thông tin sẵn có, và đánh giá chúng theo sở thích cá nhân và tạo ra một tour du lịch trong một khoản thời gian giới hạn DTG sẽ phụ thuộc vào các ngữ cảnh sau đây:

Khoảng thời gian sẵn có, các tour du lịch sẽ khác nhau về độ dài

Vị trí hiện tại, điểm bắt đầu và điểm cuối là khác nhau

Thời gian hiện tại(ngày hoặc mùa) Ví dụ như thời gian đóng mở cửa của các nhà hàng hoặc triển lãm

Sở thích cá nhân Các điểm thăm quan lựa chọn sẽ được thay đổi cho phù hợp Ngoài ra các DTG sẽ luô n giám sát các tour du lịch, bất kỳ sự thay đổi về tốc dộ di chuyển thì DTG sẽ điều chỉnh thích hợp để du khách đến được nơi đúng giờ

Tốc dộ di chuyển và thời gian cho một tour sẽ đưa ra các chú ý về vấn đề thời gian

Hướng đi của du khách tại vị trí hiện tại có thể được thể hiện bằng các hình ảnh trực quan trên màn hình điện thoại, và các thông tin phù hợp về

vị trí đó

1.7 Kết luận

DTG sử dụng công nghệ tiên tiến để tạo ra các tour du lịch theo ngữ cảnh Độc lập với vị trí và thời gian, xác định thông tin cần thiết bằng cách xác định và truy vấn đến các web service có sẵn Nó hỗ trợ khách du lịch bằng cách đưa ra các dướng dẫn chuyển hướng và cung cấp thông tin đúng lúc, đúng chỗ Bất kỳ ảnh hưởng nào, hay quyết định tự phát của khách du lịch sẽ được phản hồi về server

Trang 15

Chương 2 Ứng dụng “hướng dẫn du lịch qua

mobile theo ngữ cảnh”

Mấy năm gần đây việc phát triển các ứng dụng trên điện thoại di động đã trở lên phổ biến Sự gia tăng về dung lượng bộ nhớ và tốc độ xử lý trên điện thoại đi động cho phép ta phát triển các ứng dụng mà trước kia tưởng chừng như chỉ có thể phát triển trên desktop Và sự ra đời của các ngôn ngữ lập trình cho điện thoại càng làm việc phát triển ứng dụng trên di động thêm dễ dàng và thú vị

Hướng dẫn du lịch qua sách báo, hướng dẫn viên, hay internet đã quá quen thuộc với mọi người Mỗi phương thức đều có ưu khuyết điểm riêng nhưng tựu chung lại chúng đều thiếu tính độc lập cao, ví dụ muốn tìm hiểu du lịch qua internet thì ta phải cần một chiếc máy tính để bàn khá là cồng kềnh, hướng dẫn viên thì ta phải luôn đi theo họ Vì vậy phát triển ứng dụng hướng dẫn du lịch trên mobile là hết sức hợp lý

và thích hợp trong thời điểm này, ứng dụng có thể khai thác triệt để các tính năng của điện thoại di động như là tính độc lập, tức là người sử dụng luôn có thể mang theo máy

di động bên mình, về thông tin hiển thị trên mobile về cơ bản chính là thông tin hiển thị trên máy tính để bàn Ứng dụng mà chỉ dùng để hiển thị thông tin trên di động thay

vì hiển thị trên desktop thì về cơ bản không có gì là đáng chú ý lắm Điểm mấu chốt ở đây là sự thông minh của ứng dụng, tức là từ truy vấn của người sử dụng thì thông tin trả về là khác nhau qua mỗi lần truy vấn, và tùy thuộc vào đối tượng truy vấn mà thông tin trả về cũng khác nhau

Một ứng dụng điện thoại thông minh, đặc biệt là ứng dụng hướng dẫn du lịch trên điện thoại thì có thể coi như là một người bạn đồng hành và hướng dẫn viên du lịch nhiệt tình, cần là có Xuất phát từ ý tưởng đó, ứng dụng “hướng dẫn du lịch qua mobile theo ngữ cảnh” đã ra đời, với mục đích tra cứu thông tin du lịch mọi chỗ mọi lúc

2.1 Ngữ cảnh của chương trình

Đây là ứng dụng hướng dẫn du lịch qua mobile theo ngữ cảnh Vì vậy sự thông minh của chương trình phụ thuộc rất nhiều vào lượng ngữ cảnh mà người dùng đưa vào Ngữ cảnh càng nhiều thì thông tin sẽ được trả về theo nhiều lớp, điều này sẽ giúp khách du lịch có được một hướng dẫn thích hợp nhất Như ở chương một thì “ngữ

Trang 16

cảnh là tất cả những thông tin hiện thời về một địa điểm nhất định, một khoảng thời gian nhất định”, các ngữ cảnh mà tôi đưa vào chương trình là:

 Thời gian: Một ngữ cảnh hết sức quan trọng, nó là ngữ cảnh chính của chương trình Đi du lịch thì vấn đề là hết sức quan trọng và thời gian cũng là một ngữ cảnh luôn thay đổi, vì vậy việc thích ứng với sự thay đổi về thời gian để đưa ra một tour du lịch thích ứng là cần thiết

 Font: Đối tượng du lịch là rất da dạng trẻ, già… Ngoài chất lượng của thông tin hướng dẫn thì vấn đề hiển thị cũng rất quan trọng, góp phần quan trọng vào sự thân thiện của chương trình với người dùng Không có gì khó chịu hơn là khi ta mắt kém mà nhìn vào màn hình với những dòng chữ nhỏ, hay màn hình hiển thị tương đối nhỏ mà chữ thì to choáng hết màn hình

 Profile: Đây là thông tin về người sử dụng, được lưu trong cơ sở dữ liệu trên server Để sử dụng chương trình thì người dùng phải đăng nhập vào hệ thống, trong đó những thông tin được lưu trữ như là tên, tuổi, giới tính…Những yếu tố này cũng là một thành phần ngữ cảnh của chương trình

2.2 Mô hình kết nối

Trang 17

Hình 2.1: Mô hình kết nối

• Ứng dụng viết trên điện thoại di động sử dụng ngôn ngữ J2ME

• Web server sử dụng JSP

• Cơ sở dữ liệu sử dụng MySQL

Ứng dụng viết trên điện thoại đóng vai trò là 1 client giao tiếp với server thông gia GPRS được cài đặt trên điện thoại thông qua giao thức HTTP Dựa vào các request/response từ phía client thì server sẽ truy vấn đến cơ sở dữ liệu MySQL thông qua các store procedures

Khi người dùng chạy ứng dụng trên, và tiến hành đăng nhập vào chương trình, khi người dùng có một thao tác bất kỳ trên ứng dụng và gửi 1 request đến server dưới dạng gói tin, gói tin sẽ được gửi dưới dạng sóng GPRS đến trạm điện thoại, tại đây sẽ

có thiết bị chuyển các gói tin dạng sóng GPRS sang dạng tín hiệu truyền trong đường truyền hữu tuyến Internet Lúc này nhà cung cấp dịch vụ di động đóng vai trò như là một gateway, làm trung gian liên lạc cho thiết bị di động và webserver

Gói tin được được máy di động gửi đến webserver là những gói tin HTTP request, và thiết bị di động sẽ nhận được các HTTP response từ webserver Các gói tin HTTP request và HTTP response này sẽ chứa bên trong các thông điệp SOAP request

và SOAP response tương ứng Các thông điệp SOAP sẽ chứa các operation dùng để xử

lý kết nối đến cơ sở dữ liệu tạo thành mô hình truy cập hàm từ xa RPC(Remote Procedure Call) Các gói tin HTTP response sẽ đến nhà cung cấp mạng di động, chuyển thành tín hiệu GPRS và về đến client

Yêu cầu duy nhất trên điện thoại di động để giao tiếp được với server là diện thoại phải hỗ trợ GPRS và có thư viện JSR 172 Thư viện JSR 172 có chức năng tạo ra các thông điệp SOAP và phân tích nội dung các thông điệp này Nếu không có thư viện này thì điện thoại không thể giao tiếp được với server

2.3 Thiết kế cơ sở dữ liệu

2.3.1 Các bảng dữ liệu của chương trình

user_name(id, password, name, age, sex)

info(infoID, label, image, content, brotherID, childID)

log(id, date, route, font, time, level)

2.3.2 Chi tiết các bảng

Trang 18

User_name: Bảng chứa thông tin về người dùng

id varchar Mã đăng nhập chương trình của người

dùng

Khóa chính

password varchar Mật khẩu dùng để đăng nhập chương

trình name varchar Họ tên đầy đủ của người dùng

0=Nữ)

Hình 2.2: Bảng user_name

Info: Bảng chứa thông tin về tất cả các địa điểm, địa danh có trong cơ sở dữ liệu

label varchar Tiêu đề của địa danh, địa điểm đó

image blog Ảnh đại diện của địa danh, địa điểm

đó content mediumtext Nội dung thông tin của địa danh, địa

điểm đó brotherID varchar Mã thông tin về địa điểm cùng mức Khóa ngoài childID varchar Mã thông tin về địa điểm con Khóa ngoài

Hình 2.3: Bảng info

Log: bảng chứa profile của người dùng

id varchar Mã đăng nhập chương trình của người

dùng

Khóa chính

date varchar Ngày tháng của lần đăng nhập gần

nhất route varchar Dấu vết lộ trình tham quan người

dùng font varchar Font chữ của người dùng lựa chọn

time int Thời gian mà người dùng có thể thăm

Trang 19

2.4 Mô hình dữ liệu

Hình 2.5: Mô hình dữ liệu

Các operator của Web service truy vấn đến cơ sở dữ liệu:

checkLogin(String id, String password): kiểm tra việc đăng nhập

getAgeOfUser(String id): lấy về tuổi của người dùng

getNameOfUser(String id): lấy về họ tên của người dùng

getSexOfUser(String id): lấy về giới tính của người dùng 0=Nữ, 1=Nam getDateVisited(String id): trả về ngày tháng thăm quan

updateDateVisited(String sdate, String id): cập nhập ngày tháng thăm quan của người dùng

getFont(String id): trả về font chữ mà người dùng lựa chọn

updateFont(String id, String font): cập nhập lại font chữ mà người dùng vừa mới lựa chọn

Trang 20

removeLog(String id): xóa tất cả những lộ trình mà chương trình lưu trong cơ sở dữ liệu

getLabel(String infoID): trả về một mảng chứa label của từng địa điểm getContent(String infoID): lấy ra thông tin về một địa điểm

getInfoID(String infoID): l ấy ID của một thông tin

getChildID(String infoID): lấy ID của một địa điểm con

getFather(String infoID): trả về ID của địa điểm cha

getSize(String infoID): trả về số lượng các địa danh ở một mức thông tin nào đó

2.5 Cài đặt thuật toán

2.5.1 Các khái niệm cơ bản về cây

Chúng ta có thể xác định khái niệm cây bằng hai cách: đệ quy và không đệ quy Trước hết chúng ta đưa ra định nghĩa cây thông qua các khái niệm trong đồ thị định hướng Một ví dụ điển hình về cây là tập hợp các thành viên trong một dòng họ với quan hệ cha-con Trừ ông tổ của dòng họ này, mỗi một người trong dòng họ là con của một người cha nào đó trong dòng họ Biểu diễn dòng họ dưới dạng định hướng: quan

hệ cha-con được biểu diễn bởi các cung của đồ thị, nếu A là cha của B, thì trong đồ thi

có cung đi từ đỉnh A tới đỉnh B Xem xét các đặc điểm của đồ thị định hướng này, chúng ta có định nghĩa cây như sau:

Cây là một đồ thị định hướng thỏa mãn các tính chất sau:

Có một đỉnh đặc biệt gọi là gốc cây

Mỗi đỉnh C bất kỳ không phải là gốc, tồn tại duy nhất một đỉnh P có cung đi từ P đến C Đỉnh P được gọi là cha của đỉnh C, và C là con của

P

Có đường đi duy nhất từ gốc tới mỗi đỉnh của cây

Trang 21

Hình 2.6

Một số thuật ngữ hay dùng liên quan đến cây

Mở rộng của quan hệ cha-con Là quan hệ tổ tiên-con cháu Trong cây nếu có đường đi từ đỉnh A đến đỉnh B thì A được gọi là tổ tiên của B, hay B là con cháu của A Chẳng hạn, gốc cây là tổ tiên của các đỉnh còn lại trong cây

Các đỉnh cùng cha được xem là anh em Chẳng hạn trong cây ở hình… các đỉnh B, C, D là anh em

Các đỉnh không có con được gọi là lá Trong hình 2.6, các đỉnh lá là E, F,

C, G Một đỉnh không phải là lá thì được gọi là đỉnh trong

Một đỉnh bất kỳ A cùng với tất cả các con cháu của nó lập thành một cây gốc là A Cây này được gọi là cây con của cây đã cho Nếu đỉnh A là con của gốc, thì cây con gốc A được gọi là cây con của gốc

Độ cao của cây là số đỉnh nằm trên đường đi dài nhất từ gốc tới mộ t lá Chẳng hạn, cây trong hình 2.6 có độ cao là 3 Dễ dàng thấy rằng, độ cao của cây là độ cao lớn nhất của cây con của gốc cộng thêm 1

Độ sâu của đỉnh là độ dài đường đi từ gốc tới đỉnh đó Chẳng hạn, trong hình 2.6, đỉnh G có độ sâu là 2

Cây là một cấu trúc dữ liệu phân cấp: các đỉnh của cây được phân thành các mức Mức của mỗi đỉnh được xác định đệ quy như sau:

 Gốc ở mức 1

 Mức của một đỉnh = mức của đỉnh cha +1

Như vậy, các đỉnh trong cùng một mức là đỉnh con của một đỉnh nào đó ở mức trên Độ cao của cây chính là mức lớn nhất của cây Ví dụ, cây trong hình 2.6 được

Trang 22

phân thành 3 mức: mức 1 chỉ gồm có gốc, mức 2 gồm các đỉnh A, B, C, D, mức 3 gồm các đỉnh E, F, G

2.5.2 Cài đặt cây

Cây có thể cài đặt bởi các CTDL khác nhau Chúng ta có thể sử dụng mảng để cài đặt cây Song cách này không thuận tiện, ít được sử dụng Sau đây, chúng ta trình bày hai phương pháp cài đặt cây thông dụng nhất

Phương pháp 1 (chỉ ra danh sách các đỉnh con của mỗi đỉnh) Với mỗi đỉnh của

cây, ta sử dụng một con trỏ trỏ tới một đỉnh con của nó Và như vậy, mỗi đỉnh của cây được biểu diễn bởi một cấu trúc gồm hai thành phần: một biến data lưu dữ liệu chứa trong đỉnh đó và một mảng child các con trỏ trỏ tới các đỉnh con Giả sử, mỗi đỉnh chỉ

có nhiều nhất K đỉnh con, khi đó ta có thể mô tả mỗi đỉnh bởi cấu trúc sau:

Node <Item>* root;

Hình 2.7: Cài đặt cây bởi mảng con trỏ

A

root

Trang 23

Phương pháp 2 (chỉ ra con cả và em liền kề của mỗi đỉnh) Trong một cây, số

đỉnh con của các đỉnh có thể rất khác nhau Trong trường hợp đó, nếu sử dụng mảng con trỏ, sẽ lãng phí bộ nhớ Thay vì sử dụng mảng con trỏ, ta chỉ sử dụng hai con trỏ: con trỏ firstChild trỏ tới đỉnh con cả và con trỏ nextSibling trỏ tới em liền kề Mỗi đỉnh của cây được biểu diễn bởi cấu trúc sau:

template <class Item>

Dễ dàng thấy rằng, xuất phát từ gốc đi theo con trỏ firstChild hoặc con trỏ nextSibling,

ta có thể truy cập tới đỉnh bất kỳ trong cây Ta có nhận xét rằng, các con trỏ nextSibling liên kết các đỉnh tạo thành một danh sách liên kết biểu diễn danh sách các đỉnh con của mỗi đỉnh

Hình 2.8: Cài đặt cây sử dụng hai con trỏ

Cần chú ý rằng, trong một số trường hợp, để thuận tiện cho các xử lý, ta có thể đưa thêm vào cấu trúc Node một con trỏ parent trỏ tới đỉnh cha

Ngày đăng: 12/03/2014, 11:50

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Phát hiện đựa trên ngữ cảnh, môi trường - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 1.1 Phát hiện đựa trên ngữ cảnh, môi trường (Trang 13)
Hình 2.3: Bảng info  Log: bảng chứa profile của người dùng. - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.3 Bảng info Log: bảng chứa profile của người dùng (Trang 18)
Hình 2.4: Bảng log - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.4 Bảng log (Trang 18)
Hình 2.2: Bảng user_name  Info: Bảng chứa thông tin về tất cả các địa điểm, địa danh có trong cơ sở dữ liệu - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.2 Bảng user_name Info: Bảng chứa thông tin về tất cả các địa điểm, địa danh có trong cơ sở dữ liệu (Trang 18)
Hình 2.5: Mô hình dữ liệu - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.5 Mô hình dữ liệu (Trang 19)
Hình 2.7: Cài đặt cây bởi mảng con trỏ. - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.7 Cài đặt cây bởi mảng con trỏ (Trang 22)
Hình 2.8: Cài đặt cây sử dụng hai con trỏ. - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.8 Cài đặt cây sử dụng hai con trỏ (Trang 23)
Hình 2.9:  Ví dụ về một nhánh trong cây dữ liệu - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.9 Ví dụ về một nhánh trong cây dữ liệu (Trang 24)
Hình 2.10: Cấu trúc một node - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.10 Cấu trúc một node (Trang 25)
Hình 2.11: Luồng xử lý của chương trình - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.11 Luồng xử lý của chương trình (Trang 26)
Hình 2.12: Màn hình đăng nhập - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.12 Màn hình đăng nhập (Trang 27)
Hình 2.13: Màn hình Welcome - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.13 Màn hình Welcome (Trang 28)
Hình 2.14: Các command của màn hình Welcome - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.14 Các command của màn hình Welcome (Trang 28)
Hình 2.15: Màn hình danh sách các địa danh - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.15 Màn hình danh sách các địa danh (Trang 29)
Hình 2.17: Màn hình hiện thị thông tin địa điểm  Các command trong form - nghiên cứu lập trình cho các thiết bị di động áp dụng cho bài toán hướng dẫn du lịch
Hình 2.17 Màn hình hiện thị thông tin địa điểm Các command trong form (Trang 30)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w