Luận văn Nghiên cứu lập trình ứng dụng cho các thiết bị di động áp dụng cho bài toán campus guide

Phía Client là điện thoại di động có hỗ trợ ứng dụng Java và hỗ trợ mạng. Trong quá trình xây dựng ứng dụng và thử nghiệm, client có thể là trình giả lập thiết bị di động như Sun Java Wireless Toolkit. Server là máy chủ có cầu hình đủ mạnh để chạy các ứng dụng Java.

pdf53 trang | Chia sẻ: lylyngoc | Lượt xem: 2410 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu lập trình ứng dụng cho các thiết bị di động áp dụng cho bài toán campus guide, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
di động Với một thiết bị di động cĩ hỗ trợ Java, người dùng cĩ thể sử dụng chương trình bất kỳ đâu, vào bất kỳ thời gian nào. Tĩnh ngữ cảnh Với ngữ cảnh người dùng, ngữ cảnh mơi trường, lượng thơng tin cung cấp sẽ khác nhau. 4 2.3. Mơ hình đề xuất Mục tiêu của nghiên cứu là phát triển một ứng dụng giúp mọi người cĩ thể dễ dàng truy cập thơng tin, tìm hiểu về Đại học Quốc gia ở bất cứ đâu, bất cứ lúc nào chỉ với một thiết bị di dộng hỗ trợ Java và cĩ khả năng kết nối Internet. Hệ thống sẽ cung cấp thơng tin, hình ảnh, chỉ dẫn phù hợp với ngữ cảnh. Bên cạnh đĩ trong quá trình hoạt động hệ thống sẽ tự động nhận biết sự thay đổi ngữ cảnh để thay đổi nội dung cho phù hợp. Mỗi khi người dùng yêu cầu lấy thơng tin, hệ thống sẽ lấy thơng tin, yêu cầu của người dùng để cập nhật thơng tin ngữ cảnh. Thơng tin ngữ cảnh này sẽ được một luật lựa chọn thơng tin sử dụng. Sau khi chọn lựa được thơng tin, chương trình sẽ thay đổi ngữ cảnh như lịch sử xem thơng tin … 2.3.1. Mơ hình người sử dụng Mỗi người dùng cĩ nhiều thơng tin cá nhân cũng như thơng tin về mơi trường khác nhau, rất nhiều yếu tố ảnh hưởng nhưng ta chỉ chọn những yếu tố chính, quan trọng ảnh hưởng đến ngữ cảnh người dùng. Các tác nhân thể hiện ngữ cảnh của người sử dụng: Người dùng Thơng tin Trường, khoa Hình 2.1. Mơ hình đề xuất xây dựng hệ thống Thơng tin ngữ cảnh Luật lựa chọn thơng tin Nội dung theo ngữ cảnh Hệ thống Thơng tin yêu cầu Xử lý thơng tin 5 Vị trí: là thơng tin thực về vị trí hiện tại của người dùng. Ta cĩ thể biểu diễn nĩ theo kinh độ và vĩ độ. Do vị trí của người dùng thay đổi thường xuyên nên việc xác định vị trí của người dùng là được ưu tiên. Cĩ nhiều cách ta cĩ thể xác định được vị trí hiện tại của người sử dụng như sử dụng cơng nghệ định vị A-GPS, E-OTD hay Cell-ID hoặc TOA… Ngồi ra, location cịn bao gồm cả các thơng tin khơng gian, và vị trí hiện tại của người sử dụng. Thời gian: Thời gian ở đây là thời gian sử dụng chương trình, mỗi người dùng cĩ độ tập trung cũng như lượng thời gian cĩ thể dùng để xem thơng tin khác nhau. Thơng tin người dùng: Mỗi người dùng cĩ thơng tin khác nhau, lượng thơng tin cung cấp cho các đối tượng người dùng khác nhau cũng phải khác nhau phù hợp với độ tuổi, sở thích… Lịch sử xem thơng tin: Mỗi khi xem một thơng tin rồi thì người dùng thường khơng muốn xem tiếp trong lần tiếp theo, do đĩ cần lưu trữ lịch sử xem thơng tin để xử lý trong những lần tiếp theo. 2.3.2. Yếu tố ngữ cảnh "Bối cảnh là bất kỳ thơng tin cĩ thể được sử dụng để đặc trưng cho hồn cảnh của một thực thể. Thực thể là một người, địa điểm, hoặc đối tượng đĩ được coi là cĩ Ví trị Thời gian Lịch sử xem thơng tin Thơng tin người dùng Hình 2.2. Mơ hình người dùng 6 liên quan đến sự tương tác giữa người sử dụng và một ứng dụng, bao gồm cả người dùng và ứng dụng chính họ" - Dey, Abowd & Salber [1]. Paul Dourish đã nĩi rằng cĩ hai gĩc nhìn khác nhau về ngữ cảnh [5]: - Ngữ cảnh như một đại diện o Ngữ cảnh là một hình thức của thơng tin. Nĩ cĩ thể được biết đến (và do đĩ mã hĩa và biểu diễn như các thơng tin khác trong các hệ thống phần mềm). o Ngữ cảnh là cĩ khả năng khoanh định. Chúng ta cĩ thể xác định những gì cĩ giá trị như là bối cảnh của hoạt động mà hỗ trợ ứng dụng. o Ngữ cảnh là ổn định. Mặc dù các yếu tố chính xác của một biểu diễn ngữ cảnh cĩ thể khác nhau tùy theo ứng dụng, chúng khơng thay đổi trong cách thể hiện của một hoạt động hay một sự kiện. Xác định sự liên quan của bất kỳ yếu tố tiềm năng theo ngữ cảnh cĩ thể được thực hiện một lần và cho tất cả. o Ngữ cảnh và các hoạt động được tách riêng. Hoạt động xảy ra “trong” một ngữ cảnh. Ngữ cảnh mơ tả các đặc trưng của mơi trường trong đĩ các hoạt động diễn ra, nhưng đĩ là tách biệt với hoạt động. - Ngữ cảnh như một tương tác o Thay vì xem xét ngữ cảnh để được thơng tin, ngữ cảnh được xem như một thuộc tính quan hệ ở giữa các đối tượng hoặc các hoạt động. Nĩ khơng đơn giản là trường hợp cái mà cái gì đĩ là ngữ cảnh hoặc khơng, mà nĩ cĩ thể hoặc khơng là theo ngữ cảnh liên quan đến một số hoạt động cụ thể. o Thay vì xem như ngữ cảnh cĩ thể được khoanh định và được xác định trước, cách nhìn thay thế chỉ ra rằng phạm vi của các tính năng được định nghĩa động. o Thay vì xem ngữ cảnh là ổn định, bối cảnh được xem rằng là cụ thể cho từng lần hoạt động hoặc hành động. Bối cảnh là một thuộc tính thời điểm, cĩ liên quan đến các cài đặt cụ thể, đặc biệt trường hợp hành động và các phần cụ thể để hành động. o Thay vì đặt bối cảnh và nội dung thành hai thực thể riêng biệt, xem rằng bối cảnh phát sinh từ hoạt động. Bối cảnh khơng chỉ là “ở đĩ”, mà là đang được tạo ra, duy trì và đưa ra trong quá trình hoạt động. Ngữ cảnh chương trình: 7 - Thơng tin người dùng: mỗi người dùng sẽ cĩ thơng tin khác nhau như: tên, kiểu người dùng, lượng thơng tin cần xem… - Vị trí: Vị trí người dùng được xác định dựa trên Location-Based Service hoặc do người dùng chủ động lựa chọn. Khi ở ví trị xác định, thơng tin cung cấp sẽ tương ứng với địa điểm đĩ. - Thời gian xem thơng tin: mức độ chi tiết của thơng tin sẽ dựa vào thời gian người dùng muốn xem, người dùng cĩ nhiều thời gian cĩ thể xem thơng tin với mức độ chi tiết cao hơn. - Lịch sử xem thơng tin: Khi một người đã xem một thơng tin thì khơng cần thiết phải xem lại, do đĩ cần loại bỏ tùy chọn xem thơng tin đĩ ở những lần sau. 2.3.3. Mơ hình nội dung Thơng tin sẽ được phân cấp theo mức độ chi tiết. Để phân cấp theo mức độ chi tiết, ta chọn mơ hình thơng tin hình cây. Mỗi nút sẽ cĩ một lượng thơng tin nhất định. Tùy thuộc vào ngữ cảnh thì sẽ lấy thơng tin ở một nhánh các nút khác nhau. 8 - Đỉnh cây là một nút tương ứng với một phần thơng tin. - Mức thứ 2 tương ứng với từng kiểu người dùng. - Mức thứ 3 tương ứng với từng topic của cho từng kiểu người dùng. - Mức thứ 4, 5, 6 tương ứng với 3 mức thơng tin theo tùy chọn của người dùng. o Mức bốn: Mức thơng tin 1, tĩm tắt từng phần. o Mức năm: Mức thơng tin 2, tiêu đề từng đoạn o Mức sáu: Mức thơng tin 3, nội dung từng đoạn. Hình 2.3. Cây thơng tin lưu trữ về các trường, khoa Đỉnh được gắn với một trường, khoa Chia ra 2 nhánh tương ứng với kiểu người dùng Mức topic: chia ra nhiều topic khác Mức thơng tin 1: Tĩm tắt từng phần. Mức thơng tin 2: Tiêu đề các đoạn Mức thơng tin 3: Nội dung các đoạn 1 2 3 4 5 6 Đỉnh cây nút nút nút nút … nút nút … … nút nút … nút nút … … … … 9 2.3.4. Các cách cài đặt cây thơng tin Thơng tin về Trường, khoa cần tổ chức phân cấp theo mức độ chi tiết của thơng tin. Ngồi ra cần chia thơng tin theo từng đối tượng người dùng. Do dĩ nên tổ chức theo mơ hình cây. Cây cĩ thể cài đặt bởi các cách khác nhau. 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. Cần cĩ một con trỏ ngồi trỏ tới gốc cây root. Giả sử mỗi định cĩ nhiều nhất 4 đỉnh con, ta cĩ mơ hình như sau: Cách cài đặt này thường khơng hiệu quả, tốn bộ nhớ do số lượng nút con của các nút là khác nhau, một nút cĩ thể khơng cĩ tối đa các nút con, do đĩ con trỏ để trống. Phương pháp 2: chỉ ra con cả và em liền kề của mỗi đỉ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ỏ nextBrother trỏ tới em liền kề. root A A  A    A   A    A    A    Hình 2.4. Cài đặt cây bởi mảng con trỏ 10 Hình 2.5. Cài đặt cây sử dụng hai con trỏ. Với cách này, cây trong hình 3.1 được cài đặt bởi CTDL như trong hình 3.2. Dễ dàng thấy rằng, xuất phát từ gốc đi theo con trỏ firstChild hoặc con trỏ nextBrother, 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ỏ nextBrother 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. Cách cài đặt này hiệu quả hơn vì nĩ chỉ sử dụng 2 con trỏ, lượng bộ nhớ dư thừa ít hơn. Vì vậy chương trình sẽ dùng cách này để biểu diễn thơng tin. 2.3.5. Luật lựa chọn thơng tin cung cấp cho từng người dùng Khi chọn một trường, khoa thì sẽ đi theo cây cĩ đỉnh tương ứng với trường, khoa đĩ. Đối với từng kiểu người dùng sẽ đi theo nhánh tương ứng ở mức 2. Ta sẽ cĩ các topic khác nhau ở mức 3. Khi lựa chọn một topic với thời gian tương ứng, thơng tin sẽ được lấy ở nhánh của topic như sau: - Mức thời gian 1: Lấy tất cả thơng tin trong cây ở mức bốn. - Mức thời gian 2: Lấy tất cả thơng tin trong cây ở mức bốn và năm. - Mức thời gian 3: Lấy tất cả thơng tin trong cây ở mức bốn, năm và sáu. A B C D G F E root 11 CHƯƠNG 3. PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH VNU CAMPUS GUIDE 3.1. Phân tích 3.1.1. Phân tích các yêu cầu chức năng 3.1.1.a. Đăng nhập, đăng ký Thơng tin của chương trình cung cấp theo ngữ cảnh. Ngữ cảnh bao gồm cả thơng tin người dùng, do đĩ cần xác thực người dùng để đưa ra lượng thơng tin phù hợp. Vì vậy cần yêu cầu Đăng nhập. Khi đăng nhập cần tài khoản người dùng, do đĩ cần yêu cầu Đăng ký tài khoản đối với người dùng mới. 3.1.1.b. Xem bản đồ Khuơn viên Đại học Quốc gia rộng với nhiều tịa nhà. Cần cĩ bản đồ để người dùng cĩ cái nhìn tổng quan, xác định, tìm kiếm địa điểm thích hợp. Do đĩ chương trình cĩ màn hình chính thể hiện bản đồ với các tương tác cơ bản như: dịch chuyển bản đồ, phĩng to, thu nhỏ… 3.1.1.c. Tìm kiếm địa điểm Với nhiều tịa nhà trong khuơn viên thì khĩ cĩ thể xác định ngay được một địa điểm nào đĩ, vì vậy cần cĩ chức năng tìm kiếm địa điểm sau đĩ hiển thị trên bản đồ. 3.1.1.d. Danh sách trường, khoa Người dùng cĩ nhu cầu tìm hiểu thơng tin cĩ thể trực tiếp chọn Trường, khoa để xem thơng tin. 3.1.1.e. Trợ giúp Người dùng mới của chương trình cĩ thể khơng quen và chưa biết chức năng nên cần cĩ chức năng Trợ giúp cung cấp thơng tin chương trình và hướng dẫn sử dụng. 12 3.1.1.f. Xem chi tiết Khi chọn một địa điểm trên bản đồ, người dùng muốn xem thơng tin, chương trình cần đưa ra thơng tin về địa điểm, tịa nhà cũng như Trường, khoa quản lý địa điểm đĩ. Lượng thơng tin cung cấp phải tùy thuộc vào ngữ cảnh: người dùng, lượng thơng tin… 3.1.2. Đối tượng sử dụng Hệ thống được xây dựng để hỗ trợ cho các nhĩm sau: - Khách tham quan: Những người muốn tham quan tìm hiểu về Đại học Quốc gia. - Sinh viên: Những sinh viên mới chưa biết và tìm hiểu được hết thơng tin về Trường cĩ thể sử dụng chương trình. 3.2. Thiết kế cơ sở dữ liệu 3.2.1. Sơ đồ dữ liệu Cở sở dữ liệu được xây dựng trên hệ quản trị cơ sở dữ liệu mySql. Các thơng tin về trường, khoa được lưu trữ theo hình cây, tương ứng với mỗi người dùng, các mức độ khác nhau thì đưa ra thơng tin khác nhau. Dữ liệu của hệ thống là dữ liệu mã Unicode. Sơ đồ cơ sở dữ liệu: 13 Các bảng cơ sở dữ liệu: user (usrID, passwd, usrType) owner (ownerID, ownerName, topInfoID, logo) location (locID, locName, image, ownerID, description) info (infoID, content, childID, brotherID) log (logID, ownerID, usrID, topicID, level) 3.2.2. Chi tiết thiết kế cơ sở dữ liệu Mơ tả các bảng cơ sở dữ liệu: 1. user: Bảng lưu định danh người dùng và thơng tin. Bảng 3.1. Hồ sơ người dùng Tên field Kiểu dữ liệu Mơ tả usrID varchar(30) Định danh người dùng passwd varchar(30) Mật khẩu usrType int Kiểu người dùng, 1: Sinh viên, 2: Khách tham quan Hình 3.1. Sơ đồ biểu diễn các bảng trong cơ sở dữ liệu : Primary key, Khĩa chính : Foreign key, Khĩa ngồi owner ownerID ownerName topInfoID int varchar(50) varchar(10) user usrID passwd usrType varchar(30) varchar(30) int location locID locName image varchar(20) varchar(50) blob ownerID int description varchar(500) info infoID content childID varchar(10) varchar(500) varchar(10) brotherI varchar(10) log logID ownerID usrID int int varchar(30) topicID varchar(10) level int logo blob 14 2. owner: Bảng lưu các trường đại học và các khoa Bảng 3.2. Thơng tin trường, khoa Tên field Kiểu dữ liệu Mơ tả ownerID int Định danh trường, khoa ownerName varchar(50) Tên trường, khoa topInfoID varchar(10) Nút info ở đỉnh cây lưu trữ thơng tin logo blob Logo của trường 3. location: Bảng lưu trữ thơng tin về các địa điểm Bảng 3.3. Địa điểm, tịa nhà Tên field Kiểu dữ liệu Mơ tả locID varchar(20) Định danh địa điểm locName varchar(50) Tên địa điểm image blob Ảnh của địa điểm ownerID int Định danh của trường, khoa quản lý địa điểm này description varchar(500) Mơ tả địa điểm, thơng tin các phịng (nếu là tịa nhà). 4. info: Bảng lưu trữ thơng tin về các trường, khoa Bảng 3.4. Các bản ghi thơng tin trường, khoa Tên field Kiểu dữ liệu Mơ tả infoID varchar(10) Định danh nút info. content varchar(500) Nội dung của một nút childID varchar(10) Định danh của nút con trưởng brotherID varchar(10) Định danh nút em kề 5. log: Bảng lưu trữ lịch sử người dùng xem các topic của các địa điểm nào. Bảng 3.5. Lịch sử người dùng Tên field Kiểu dữ liệu Mơ tả logID int Định danh lịch sử, tự động thêm vào. ownerID int Định danh trường, khoa usrID varchar(30) Định danh người dùng topicID varchar(10) Định danh nút là đỉnh của 1 cây con chứa thơng tin trong từng topic (các nút trong bảng info). 3.2.3. Mơ tả cây thơng tin Tất cả các thơng tin về Trường, khoa được lưu trong bảng info. Tổ chức cơ sở dữ liệu theo hình cây sẽ phân cấp thơng tin thành nhiều mức, do đĩ tùy người dùng chọn sẽ xem thơng tin theo mức nào. 15 Cây thơng tin lưu trữ theo kiểu con trưởng và em kề. Mỗi bản ghi trong bảng info tương ứng một nút trong cây. Mỗi nút trong cây cĩ thơng tin về con trưởng và em kề. Sơ đồ tổ chức cây như sau: info info infoID content brotherID childID info infoID content brotherID childID … info infoID content brotherID childID info infoID content brotherID childID info infoID content brotherID childID info infoID content brotherID childID … … infoID content brotherID childID Hình 3.2. Mơ hình tổ chức cây thơng tin 16 3.3. Mơ hình kết nối Hình 3.3. Mơ hình kết nối Ứng dụng viết trên điện thoại đĩng vai trị là client giao tiếp với server qua giao thức HTTP. Dựa vào giao thức HTTP các request từ phía client chuyển đến server, server sẽ truy vấn đến cơ sở dữ liệu MySQL và trả lại response tương ứng. 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 của web service 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). Đối với dữ liệu nhị phân như hình ảnh, âm thanh, thì việc truyền trực tiếp qua các gĩi tin HTTP mà khơng phải qua giao thức SOAP sẽ nhanh và thuận tiện hơn. Hình ảnh sẽ được trả lại qua một servlet. 17 3.4. Chức năng của ứng dụng Midlet 3.4.1. Các chức năng của ứng dụng Hình 3.4. Biểu đồ phân rã chức năng Khi người dùng mở ứng dụng, chương trình sẽ hiển thị màn hình chờ trong một khoảng thời gian, sau đĩ sẽ vào màn hình đăng nhập. Sau khi đăng nhập, chương trình sẽ chuyển đến màn hình chính hiển thị bản đồ khuơn viên Đại học Quốc Gia Hà Nội. Các chức năng chính: - Đăng ký: Người dùng mới sử dụng cần cĩ tài khoản để sử dụng chương trình sẽ sử dụng chức năng này đăng ký một tài khoản mới. - Xem chi tiết: Khi người dùng xem bản đồ và chọn một địa điểm. Sau đĩ chọn Xem chi tiết, chương trình sẽ đưa ra tùy chọn xem chi tiết mơ tả địa điểm hoặc xem thơng tin về Trường, khoa quản lý địa điểm đã chọn. - Tìm trường, khoa: Hiển thị danh sách các trường, khoa trong cơ sở dữ liệu, khi người dùng chọn một trường, khoa thì hiển thị các tùy chọn khác để hiển thị thơng tin. 18 - Tìm địa điểm: Hiển thị danh sách các địa điểm trong bản đồ, cĩ một trường nhập dữ liệu. Khi người dùng nhập dữ liệu thì sẽ lọc ra các địa điểm phù hợp. Khi chọn một địa điểm thì sẽ hiển thị địa điểm đĩ trên bản đồ. - Trợ giúp: Hiển thị các thơng tin về chương trình và trợ giúp. 3.4.2. Luồng xử lý chương trình (File ảnh flow.png) 19 H ìn h 3. 5. Sơ đ ồ lu ồ n g ch ư ơ n g tr ìn h 20 3.4.2.a. Các chức năng chính Chương trình gồm 12 Displayable chính: signInForm, signUpForm, mainForm, mainMenu, helpForm, findForm, chooseLocOwner, viewLocDetail, viewOwners, chooseTopic, chooseLevel, viewOwnerDetail. Chi tiết các Displayable như sau: • signInForm là một Displayable thể hiện dưới dạng Form. Đây là màn hình đăng nhập, nĩ cĩ 2 TextField để nhập tài khoản, mật khẩu và 4 command: - cmSignIn: Đăng nhập vào hệ thống, nếu thành cơng chuyển đến mainForm. - cmSignUp: Chuyển đến màn hình đăng ký (signUpForm). - cmViewOnly: Bỏ qua đăng nhập và chuyển đến màn hình chính (mainForm). - cmExit: Kết thúc chương trình. • signUpForm là một Displayable thể hiện dưới dạng Form. Đây là màn hình đăng ký tài khoản, nĩ cĩ 2 TextField để nhập tài khoản, mật khẩu, một ChoiceGroup để chọn kiểu người dùng và 2 command: - cmSignUp: Đăng ký tài khoản mới với tên, mật khẩu và kiểu người dùng đã chọn. - cmBack: Quay lại màn hình đăng nhập. Hình 3.6. Màn hình đăng nhập (signInForm) Hình 3.7. Màn hình đăng ký (signUpForm) • mainForm là một Displayable thể hiện dưới dạng GameCanvas. Nĩ cho phép xử lý sự kiện bàn phím, vẽ ảnh bản đồ chi tiết. Cĩ 2 command: - cmMenu: Chuyển đến mainMenu. - cmExit: Kết thúc chương trình. 21 • mainMenu là một Displayable thể hiện dưới dạng List. Đây là một màn hình thể hiện danh sách chức năng, nĩ bao gồm danh sách 5 phần tử. - Chi tiết: Chức năng “Xem chi tiết” - Danh sách trường, khoa: Chức năng “Tìm trường, khoa” - Đăng nhập lại: Chuyển đến màn hình đăng nhập signInForm. - Tìm địa điểm: Chức năng “Tìm địa điểm” - Trợ giúp: Chức năng “Trợ giúp” Hình 3.8. Màn hình chính (mainForm) Hình 3.9. Màn hình chức năng (mainMenu) • helpForm là một Displayable thể hiện dưới dạng Form. Màn hình này thể hiện thơng tin chương trình và một số trợ giúp, nĩ cĩ 2 command - cmOk: Chuyển về màn hình chính mainForm. - cmBack: Quay lại màn hình chức năng mainMenu. • findForm là một Displayable thể hiện dưới dạng Form. Màn hình này bao gồm một TextField cho phép người dùng nhập để lọc địa điểm, một ChoiceGroup hiển thị các kết quả tìm thấy. Cĩ 2 command: - cmOK: Chuyển về mainForm, dịch chuyển bản đồ tới địa điểm đã chọn. - cmBack: Quay lại màn hình chức năng mainMenu. 22 Hình 3.10. Màn hình trợ giúp (helpForm) Hình 3.11. Tìm kiếm địa điểm (findLocation) • chooseLocOwner là một Displayable thể hiện dưới dạng List. Màn hình này đưa ra 2 lựa chọn tương ứng với hai phần tử: - Xem chi tiết địa điểm: Chuyển đến màn hình xem thơng tin địa điểm viewLocDetail. - Thơng tin trường, khoa: Chuyển đến màn hình lựa chọn topic thơng tin chooseTopic. • viewLocDetail là một Displayable thể hiện dưới dạng Form. Màn hình hiển thị hình ảnh và thơng tin về địa điểm (nếu cĩ). Cĩ 2 command: - cmOk: Chuyển về màn hình chính mainForm. - cmBack: Chuyển về màn hình chức năng mainMenu. Hình 3.12. Màn hình lựa chọn (chooseLocOwner) Hình 3.13. Thơng tin địa điểm (viewLocDetail) 23 • viewOwners là một Displayable thể hiện dưới dạng Form. Màn hình này gồm một ChoiceGroup chứa các trường, khoa. Cĩ 2 command: - cmOk: Chuyển tới màn hình lựa chọn topic thơng tin chooseTopic. - cmBack: Quay lại màn hình chức năng mainMenu. • chooseTopic là một Displayable thể hiện dưới dạng Form. Màn hình gồm một ChoiceGroup chứa các chủ đề tương ứng được cung cấp theo ngữ cảnh. Cĩ 3 command: - cmAll: Chọn tất cả các chủ đề. - cmNone: Bỏ chọn tất cả các chủ đề. - cmOk: Chuyển đến màn hình chooseLevel. Hình 3.14. Chọn trường, khoa (viewOwners) Hình 3.15. Chọn chủ đề (chooseTopic) • chooseLevel là một Displayable thể hiện dưới dạng Form. Màn hình cho phép lựa chọn mức độ chi tiết đối với từng chủ đề đã chọn. Cĩ 2 command: - cmOk: Chuyển đến màn hình viewOwnerDetail. - cmBack: Chuyển về màn hình chooseTopic. • viewOwnerDetail là một Displayable thể hiện dưới dạng Form. Màn hình hiển thị thơng tin chi tiết về trường, khoa ứng với chủ đề và mức độ chi tiết thơng tin đã chọn. Cĩ 2 command: - cmOk: Chuyển đến màn hình mainForm. - cmBack: Chuyển về màn hình chooseLevel. 24 Hình 3.16. Chọn mức độ chi tiết (chooseLevel) Hình 3.17. Xem thơng tin (viewOwnerDetail) 3.4.2.b. Luồng chương trình - Đăng ký Từ màn hình đăng nhập signInForm, người dùng chọn cmSignUp, chương trình chuyển đến màn hình đăng ký signUpForm. Tại signUpForm, người dùng sẽ nhập tên tài khoản, mật khẩu và kiểu người dùng. Sau khi nhập thơng tin và chọn cmSignUp, chương trình thực hiện đăng ký, thơng báo kết quả cho người dùng và quay lại màn hình đăng nhập signInForm. - Xem chi tiết Khi người dùng xem bản đồ và chọn một địa điểm. Sau đĩ chọn “Xem chi tiết”, chương trình sẽ đưa ra 2 tùy chọn: Xem chi tiết địa điểm. Thơng tin về Trường, khoa quản lý địa điểm đã chọn. Khi chọn Xem chi tiết địa điểm chương trình sẽ chuyển đến màn hình viewLocDetail để xem thơng tin về địa điểm. Khi chọn Thơng tin về Trường, khoa chương trình sẽ chuyển đến màn hình chooseTopic để lựa chọn chủ đề xem. Sau khi chọn chủ đề xem, sẽ chuyển đến màn hình chooseLevel để chọn mức độ chi tiết, cuối cùng là chuyển đến màn hình viewOwnerDetail để xem thơng tin về Trường, khoa. - Tìm trường, khoa 25 Từ màn hình menuMain, người dùng chọn “Danh sách trường, khoa”, chương trình chuyển đến màn hình viewOwners hiển thị danh sách các trường, khoa. Sau khi người dùng chọn một trường, khoa và ấn cmOk thì chuyển đến màn hình chooseTopic  chooseLevel  viewOwnerDetail. - Tìm địa điểm Từ màn hình menuMain, người dùng chọn “Tìm địa điểm”, chương trình chuyển đến màn hình findForm, màn hình hiển thị danh sách tối đa 10 địa điểm. Khi người dùng nhập từ khĩa tìm kiếm, chương trình tự động lọc các địa điểm và hiển thị. Sau khi chọn một địa điểm và chọn cmOk chương trình chuyển đến màn hình mainForm và dịch chuyển bản đồ đến vị trí tương ứng. - Trợ giúp Từ màn hình menuMain, người dùng chọn “Trợ giúp”, chương trình chuyển đến màn hình helpForm, màn hình hiển thị thơng tin chương trình và trợ giúp. Khi chọn cmOk chương trinh chuyển về màn hình mainForm. 3.5. Chức năng phía Server Phía server bao gồm 2 phần chính: 3.5.1. Web service Web service cĩ các operator tương tự như các hàm trong lập trình, cho phép ứng dụng sử dụng các operator này một cách dễ dàng mà khơng phải quan tâm đến việc làm thế nào để kết nối … Các operator của Web service phục vụ cho truy vấn từ client qua SOAP. • checkNetwork(): Kiểm tra kết nối mạng và cơ sở dữ liệu. • signUp(String usrID, String passwd, int usrType): Tạo mới tài khoản. • checkLogin(String usrID, String passwd): Kiểm tra việc đăng nhập. • getOwnerID(String locID): Lấy ID của trường, khoa. 26 • getOwnerName(String locID): Lấy tên của trường, khoa. • getLocName(String locID): Lấy tên của địa điểm. • getLocDescription(String locID): Lấy thơng tin mơ tả địa điểm. • getOwnerIDs(): Lấy tất cả ID của các trường, khoa. • getOwnerNames(): Lấy tất cả tên của các trường, khoa. • getTopicIDs(String usrID, String ownerID): Lấy ID của các topic phù hợp. • getTopicNames(String[] topicIDs): Lấy tên của các topic. • getMaxLevel(String usrID, String topicID): Lấy mức độ chi tiết cao nhất đã xem với một topic. • logging(String usrID, String locID, String topicIDs[], String levels[]): Ghi nhớ lịch sử lượng thơng tin đã xem của người dùng. • resetLog( String usrID, String ownerID): Xĩa bản ghi lịch sử lượng thơng tin đã xem với một trường, khoa. • getInfo(String tpIDs[], String tpLvs[], int length): Lấy thơng tin chi tiết về trường, khoa với chủ đề và mức độ chi tiết đã chọn. 3.5.2. Servlet Servlet làm nhiệm vụ xử lý HTTP request, lấy hình ảnh từ cơ sở dữ liệu (dịng byte dữ liệu) và truyền cho client. Client sẽ xử lý dịng byte nhận được và tạo thành ảnh hiển thị cho người dùng. 3.6. Các Module xử lý 3.6.1. Phía client Ứng dụng phía client được chia làm hai gĩi chính và một gĩi bổ sung chứa dữ liệu cần thiết. 3.6.1.a. Gĩi hello Gồm lớp MIDlet ứng dụng chính và các phụ trợ. - MainMidlet.java: Lớp ứng dụng chính của chương trình J2ME, thừa kế từ lớp javax.microedition.midlet.MIDlet. 27 - ImageCanvas.java: Lớp dùng để hiển thị bản đồ, xử lý các sự kiện bàn phím cho việc thay đổi bàn đồ tương ứng, thừa kế từ lớp javax.microedition.lcdui.game.GameCanvas. - SplashScreen.java: Lớp hiển thị màn hình chờ của chương trình trong một khoảng thời gian nhất định, thừa kế từ lớp javax.microedition.lcdui.Canvas. - CampusHttpClient.java: Lớp dùng để kết nối đến server lấy ảnh về trực tiếp qua giao thức Http. 3.6.1.b. Gĩi campusservice Chứa các lớp hỗ trợ cho việc kết nối với server thơng qua cơ chế WSDL. - CampusService.java: Một giao diện mơ tả các hàm cĩ thể dùng của lớp CampusService_Stub, các hàm này tương ứng với các hàm phía server. - CampusService.wsclient: Một tệp tin XML mơ tả về server kết nối. - CampusService.wsdl: Một tệp tin XML để mơ tả các dịch vụ, các thủ tục, thơng điệp cĩ thể truyền từ server về client. - CampusService_Stub.java: Lớp cho phép người dùng kết nối đến server thơng qua các hàm, thủ tục tương ứng trên server WSDL. 3.6.1.c. Gĩi data Hình 3.18. Bản đồ Đại học Quốc gia Hà Nội (tệp tin map.svg) Hình 3.19. Màn hình chờ khởi động (tệp tin splash.jpg) 28 - map.svg: Tệp tin ảnh svg bản đồ khuơn viên Đại học Quốc Gia Hà Nội. - splash.jpg: Tệp tin ảnh màn hình chờ khởi động. - cursor.png: Tệp tin ảnh con trỏ dùng di chuyển chọn địa điểm trên bản đồ. - mark.png: Tệp tin ảnh đánh dấu địa điểm khi con trỏ vào một địa điểm cụ thể. Hình 3.20. Con trỏ (tệp tin cursor.png) Hình 3.21. Đánh dấu địa điểm (tệp mark.png) - location.txt: Tệp tin dữ liệu văn bản chứa thơng tin địa điểm dùng khi xử lý bản đồ. Dữ liệu được lưu theo dạng CSV (comma-separated values). Các trường dữ liệu được phân cách bởi dấu chấm phẩy “;”. Ví dụ: gd2;Giảng đường 2 G3;Giảng đường G3 3.6.2. Phía server 3.6.2.a. GetMysqlConnection.java Là một lớp dùng để tạo kết nối đến cơ sở dữ liệu mySQL. 3.6.2.b. CampusHttpServer.java Là một servlet dùng để truyền hình ảnh cho client thơng qua HTTP. 3.6.2.c. Campus.java Là một Web Service cung cấp các operator cho client gọi các hàm tương ứng để nhận thơng tin thơng qua SOAP. 29 CHƯƠNG 4. CƠNG NGHỆ SỬ DỤNG 4.1. Lĩnh vực ứng dụng khơng dây với cơng nghệ Java 4.1.1. Các phiên bản Java 2 Nền tảng Java 2 được chia thành ba phiên bản, mỗi phiên bản hỗ trợ một dạng phần mềm trên các hệ thống khác nhau. Phiên bản chuẩn, hay J2SE (Java 2 platform, Standard Edition): hỗ trợ các ứng dụng Java, applet, lập trình desktop và các hệ thống lớn hơn – chủ yếu là cho PC - cĩ thể cĩ nối mạng hoặc khơng nối mạng. Phiên bản doanh nghiệp, hay J2EE (Java 2 platform, Enterprise Edition): mở rộng với các API cĩ các “tính năng doanh nghiệp” (enterprise features). J2EE hỗ trợ Web service thơng qua các servlet và JSP, dữ liệu bằng JDBC, và các hệ thống giao tác lớn thơng qua EJB – đây là một vài cơng nghệ chính của J2EE. Phiên bản thu nhỏ, hay J2ME (Java 2 platform, Micro Edition): hỗ trợ các thiết bị “micro” đa dạng, mà J2ME gọi là các “hiện trạng” (profile) nhưng tất cả chúng đều kém khả năng hơn so với máy tính cá nhân. Trong J2ME, sức mạnh CPU, bộ nhớ, lưu trữ và khả năng kết nối đều bị hạn chế, cĩ thể là rất nghiêm ngặt. 4.1.2. Java 2 Enterprise Edition Các MIDlet client khơng yêu cầu phải kết nối đến các server chạy Java. Một MIDlet cĩ thể được viết để tạo HTTP request đến một trang Web đã cĩ từ trước, và nĩ khơng cần quan tâm là trang Web đĩ được hỗ trợ bởi ASP, PHP, hay servlet... Tuy nhiên, trên thực tế, khi tồn bộ hệ thống phân tán được phát triển mới, thì Java nên được dùng ở mọi mức. Phiên bản Java 2 Enterprise Edition, hay J2EE – là một tập các chuẩn để áp dụng cơng nghệ Java cho các hoạt động “loại doanh nghiệp (enterprise-class)”, ví dụ như: - Dịch vụ HTTP (servlet), bao gồm ứng dụng Web và dịch vụ Web. - Lưu trữ và lấy dữ liệu từ cơ sở dữ liệu quan hệ - Xử lý giao tác trực tuyến - Thực hiện đối tượng phân tán (bằng CORBA) - Truyền thơng điệp tin cậy giữa server và các tiến trình 30 - Xử lý tài liệu XML Servlet Java Servlet API cho phép nhà phát triển phần mềm thêm những nội dung động vào Web server sử dụng Java platform. Nĩ phát sinh nội dung thơng thường là HTML, đơi khi cũng cĩ thể là các ngơn ngữ khác như XML. Servlets là bản sao Java của các kỹ thuật trình bày nội dung Web động khác như là PHP, CGI và ASP.NET. 4.1.3. Java 2 Micro Edition J2ME được tổ chức thành các mức, mỗi mức xác định một định nghĩa tăng dần của các thiết bị đích. Cĩ nhiều lựa chọn kiến trúc tồn tại ở mỗi mức, và ràng buộc tùy chọn ở các mức cao hơn. Lập trình viên chỉ cần quan tâm đến hiện trạng (profile), định nghĩa các API. Các đặc tả cho các thiết bị khơng dây là Connected Limited Device Configuration hay CLDC, và Mobile Information Device Profile hay MIDP. Các thiết bị đặc tả với CLDC thường cĩ cấu hình như sau: - Bộ xử lý 16-bit hoặc 32-bit với tốc độ 16MHz hoặc cao hơn. - Ít nhất 160KB bộ nhớ cố định phân bổ cho thư viện CLDC và máy ảo. - Ít nhất 192KB tổng bộ nhớ cho nền Java. - Tiêu thụ điện năng thấp, thường hoạt động bằng pin. - Cĩ khả năng kết nối đến một vài kiểu mạng, thường với một mạng khơng dây, kết nối gián đoạn và giới hạn băng thơng. 4.1.3.a. Các kiểu ứng dụng MIDP Các ứng dụng MIDP được gọi là các MIDlet. Hầu hết các MIDlet đều ở một trong hai dạng sau: • Ứng dụng đơn (standalone application) được nạp hồn tồn vào thiết bị và cĩ thể chạy bất kỳ lúc nào thiết bị mở, khơng yêu cầu tài nguyên bên ngồi. • Ứng dụng nối mạng (networked application) được chia thành ít nhất hai thành phần, một thành phần là client được triển khai trên thiết bị di động. Thành phần này sẽ ít được dùng nếu khơng cĩ kết nối đến ít nhất một server trên hệ thống. Server thường là được đặt trong mơi trường J2EE, và phục vụ bằng Web hoặc các giao thức Internet khác. 31 4.1.3.b. Hạn chế của các thiết bị di động - Hạn chế về bộ xử lý: Các dịng điện thoại cĩ tốc độ xử lý thấp so với tốc độ xử lý của máy tính để bàn. - Hạn chế về bộ nhớ và khả năng lưu trữ: Bộ nhớ ROM và RAM nhìn chung đều cĩ dung lượng nhỏ. - Hạn chế về kích thước màn hình: Màn hình của điện thoại di động thường rất hạn chế về cả độ rộng màn hình và độ phân giải. 4.2. Lập trình Web Service với MIDP 4.2.1. Dịch vụ Web (Web service) 4.2.1.a. Định nghĩa Một dịch vụ web là một mạng lưới giao diện để truy cập các chức năng ứng dụng, xây dựng sử dụng cơng nghệ Internet chuẩn. Điều này được minh họa trong hình 4.1 [2]. Nĩi cách khác, nếu một ứng dụng cĩ thể được truy cập qua mạng bằng cách sử dụng một sự kết hợp của các giao thức như HTTP, XML, SMTP, hoặc Jabber, như vậy nĩ là một dịch vụ web. Các dịch vụ Web khơng cĩ gì mới. Thay vào đĩ, chúng đại diện cho sự phát triển của các nguyên tắc đã hướng dẫn Internet trong nhiều năm. Hình 4.1. Một dịch vụ web cho phép truy cập vào các mã ứng dụng bằng cách sử dụng các cơng nghệ Internet chuẩn. Một dịch vụ Web là một hệ thống phần mềm được nhận dạng bằng một URI (Uniform Resource Identifier), mà các giao diện chung và sự gắn kết của nĩ được định nghĩa và mơ tả bằng XML. Định nghĩa của nĩ cĩ thể được nhận ra bằng các hệ thống phần mềm khác. Các hệ thống này sau đĩ cĩ thể tương tác với dịch vụ Web theo phương cách được mơ tả trong định nghĩa của nĩ, sử dụng các thơng điệp theo XML được chuyển bằng các giao thức Internet [W3C]. 32 4.2.1.b. Các đặc điểm chính của dịch vụ We: - Cĩ thể chuyển đổi các ứng dụng của bạn vào các ứng dụng Web. - Được xuất bản, tìm thấy, và được sử dụng thơng qua Web. - Là những thành phần ứng dụng. - Giao tiếp bằng cách sử dụng giao thức mở. - Được khép kín và tự mơ tả. - Cĩ thể được phát hiện bằng cách sử dụng UDDI. - Cĩ thể được sử dụng bởi các ứng dụng khác. - Các nền tảng cơ bản của dịch vụ Web là XML + HTTP. Dịch vụ Web sử dụng XML để mã hĩa và giải mã dữ liệu, và SOAP để truyền tải nĩ. 4.2.1.c. Tại sao dùng dịch vụ Web Dịch vụ Web được xây dựng để cĩ thể sử dụng bởi bất kỳ trình duyệt trên nền tảng nào cũng cĩ thể truy cập, bằng cách sử dụng dịch vụ Web, các ứng dụng cĩ thể tương tác được với nhau. 4.2.1.d. Các thành phần cơ bản Dịch vụ Web cĩ ba thành phần nền tảng cơ bản: WSDL, UDDI và SOAP Hình 4.2. Kiến trúc dịch vụ Web. 4.2.2. WSDL WSDL là một ngơn ngữ dựa trên XML để mơ tả các dịch vụ Web và làm thế nào để truy cập chúng. Tài liệu WSDL mơ tả một dịch vụ Web. Quy định cụ thể vị trí của dịch vụ và các hoạt động (hoặc các phương thức) các dịch vụ đưa ra. Nĩ chứa tập các 33 định nghĩa để mơ tả một dịch vụ Web. WSDL đặc tả kỹ thuật xác định làm thế nào để mơ tả các dịch vụ web trong một ngữ pháp XML nĩi chung. WSDL mơ tả bốn phần quan trọng của dữ liệu: Giao diện thơng tin mơ tả tất cả các chức năng cơng bố cơng khai. Dữ liệu thơng tin cho tất cả các loại tin nhắn yêu cầu và trả lời tin nhắn. Ràng buộc thơng tin về các giao thức vận chuyển sẽ được sử dụng Thơng tin địa chỉ cho định vị các dịch vụ cụ thể. WSDL đại diện cho một hợp đồng giữa Người yêu cầu dịch vụ và Nhà cung cấp dịch vụ, trong cách cũng giống như một giao diện Java đại diện cho một hợp đồng giữa mã khách hàng và đối tượng Java thực tế. Sự khác biệt quan trọng là WSDL là nền tảng và ngơn ngữ độc lập và được sử dụng chủ yếu (mặc dù khơng độc quyền) để mơ tả các dịch vụ SOAP. Sử dụng WSDL, một khách hàng cĩ thể định vị một dịch vụ web và gọi bất kỳ chức năng của mình cơng bố cơng khai. Với các cơng cụ nhận biết WSDL, bạn cũng cĩ thể tự động hố quá trình này, cho phép các ứng dụng để dễ dàng tích hợp các dịch vụ mới với mã số hướng dẫn sử dụng ít hoặc khơng cĩ. WSDL do đĩ đại diện cho một nền tảng của kiến trúc dịch vụ web, bởi vì nĩ cung cấp một ngơn ngữ chung để mơ tả các dịch vụ và một nền tảng cho tự động tích hợp các dịch vụ [2]. Hinh 4.3. Định nghĩa tài liệu WSDL 1.1 và WSDL 2.0 34 Những yếu tố chính: Bảng 4.1. Những yếu tố chính của tài liệu WSDL WSDL 1.1 WSDL 2.0 Ý nghĩa Service Service Dịch vụ cĩ thể được dùng như một lớp chứa cho một tập hợp các hàm hệ thống đã được đưa ra với các giao thức dựa trên Web. Port Endpoint Định nghĩa địa chỉ hoặc điểm kết nối tới một dịch vụ Web. Nĩ thường được biểu diễn bởi một chuỗi http url đơn giản. Binding Binding Các giao thức truyền thơng được sử dụng bởi các dịch vụ Web. Định nghĩa định dạng thơng điệp và chi tiết giao thức cho mỗi cổng. PortType Interface Là thành phần WSDL quan trọng nhất. Nĩ mơ tả một dịch vụ Web, các hoạt động mà cĩ thể được thực hiện, và những thơng điệp được sử dụng để thực hiện hoạt động. Tương tự một thư viện chức năng (hoặc mơ-đun, hoặc một lớp) trong một ngơn ngữ lập trình truyền thống. Operation Operation Mỗi hoạt động cĩ thể so sánh với một phương thức hoặc một lời gọi hàm trong ngơn ngữ lập trình. Các hành động SOAP được định nghĩa và cách thức thơng điệp được mã hĩa. Message Thơng thường, một thơng điệp tương ứng với một hoạt động. Thơng điệp này chứa các thơng tin cần thiết để thực hiện các hoạt động. Message đã được loại bỏ trong WSDL 2.0, chúng ta cĩ thể trực tiếp tham khảo tới XML Schema để xác định thân của đầu vào, đầu ra và lỗi. Types Types Mục đích là mơ tả dữ liệu. XML Schema được sử dụng. Cấu trúc chính của một tài liệu WSDL 1.1 tương tự như sau: definition of types........ definition of a message.... definition of a port....... definition of a binding.... 35 4.2.3. UDDI UDDI (Universal Description, Discovery and Integration) là một đặc tả kỹ thuật để mơ tả, phát hiện, và tích hợp các dịch vụ web. UDDI do đĩ là một phần quan trọng của giao thức dịch vụ web, cho phép các cơng ty xuất bản và tìm thấy dịch vụ web [3]. Universal Description, Discovery and Integration – “Mơ tả thống nhất, khám phá và hội nhập” là một dịch vụ thư mục nơi mà các doanh nghiệp cĩ thể đăng ký và tìm kiếm các dịch vụ Web. UDDI là một khung khơng phụ thuộc nền để mơ tả các dịch vụ, phát hiện các doanh nghiệp, và tích hợp các dịch vụ kinh doanh bằng cách sử dụng Internet. UDDI là viết tắt của Universal mơ tả, khám phá và hội nhập UDDI là một thư mục lưu trữ thơng tin về các dịch vụ Web UDDI là một thư mục của các giao diện dịch vụ Web mơ tả bởi WSDL UDDI giao tiếp thơng qua SOAP 4.2.4. SOAP SOAP là gì? SOAP là một giao thức đĩng gĩi tiêu chuẩn hĩa cho các tin nhắn được chia sẻ bởi các ứng dụng. Đặc tả định nghĩa khơng gì hơn là một phong bì đơn giản dựa trên XML để biết thơng tin đang được chuyển giao, và một bộ quy tắc chuyển sang ứng dụng và kiểu dữ liệu trên nền cụ thể thành dạng biểu diễn XML [2]. SOAP cho phép các ứng dụng trao đổi thơng tin qua HTTP, là một giao thức để truy cập một dịch vụ Web. SOAP là viết tắt của Simple Object Access Protocol (Giao thức truy cập đối tượng đơn giản). SOAP là một giao thức truyền thơng qua Internet, là một định dạng để gửi thơng điệp, nĩ cho phép giao tiếp giữa các ứng dụng. Thơng điệp XML Thơng điệp XML là nơi mà các ứng dụng trao đổi thơng tin bằng cách sử dụng các tài liệu XML (Hình 2-1). Nĩ cung cấp một cách linh hoạt cho các ứng dụng để giao tiếp, và các hình thức cơ bản của SOAP. Một tin nhắn cĩ thể là bất cứ điều gì. Hình 4.4 Thơng điệp XML 36 Ràng buộc SOAP HTTP: Một phương thức SOAP là một yêu cầu / hồi đáp HTTP cái mà tuân theo luật mã hĩa SOAP. Một yêu cầu SOAP cĩ thể là HTTP POST hoặc HTTP GET. HTTP + XML = SOAP Tại sao dùng SOAP: Ứng dụng ngày nay giao tiếp bằng cách sử dụng “Gọi hàm từ xa” (Remote Procedure Calls - RPC) giữa các đối tượng như DCOM và CORBA, nhưng HTTP khơng được thiết kế cho việc này. RPC đại diện cho một khả năng tương thích và các vấn đề an ninh; tường lửa và máy chủ proxy thường sẽ chặn RPC. Cách tốt hơn để giao tiếp giữa các ứng dụng trên HTTP, bởi vì HTTP được hỗ trợ bởi tất cả các trình duyệt Internet và máy chủ. SOAP được tạo ra để thực hiện việc này. SOAP cung cấp một cách để giao tiếp giữa các ứng dụng chạy trên hệ điều hành khác nhau, với các cơng nghệ và ngơn ngữ lập trình khác nhau. Cú pháp SOAP Một thơng điệp SOAP là một tài liệu XML thơng thường cĩ chứa các yếu tố sau: - Envelope (phong bì) mà xác định các tài liệu XML như là một thơng điệp SOAP - Header (tiêu đề) chứa thơng tin tiêu đề - Body (thân) cĩ chứa các lời gọi và trả lời thơng tin - Fault (lỗi) cĩ chứa các lỗi và thơng tin hiện trạng Một số quy tắc cú pháp quan trọng: - Một thơng điệp SOAP phải được mã hĩa bằng cách sử dụng XML. - Một thơng điệp SOAP phải sử dụng SOAP Envelope namespace. - Một thơng điệp SOAP phải sử dụng SOAP Encoding namespace. - Một thơng điệp SOAP phải khơng cĩ một tham chiếu DTD. - Một thơng điệp SOAP phải khơng chứa chỉ dẫn xử lý XML. 37 Khung của thơng điệp SOAP: <soap:Envelope xmlns:soap="" soap:encodingStyle=""> ... ... ... Ưu điểm: SOAP là đủ linh hoạt để cho phép việc sử dụng các giao thức vận tải khác nhau. Thường sử dụng HTTP như là một giao thức vận tải, nhưng các giao thức khác cũng cĩ thể sử dụng (ví dụ Java Message Service – Dịch vụ tin nhắn Java, Simple Mail Transfer Protocol – Giao thức truyền tải thư tín đơn giản). Kể từ khi mơ hình đường hầm SOAP tốt trong mơ hình nhận / hồi đáp HTTP, nĩ cĩ thể dễ dàng vượt đường hầm qua tường lửa và proxy, mà khơng phải sửa đổi giao thức SOAP, và cĩ thể sử dụng cơ sở hạ tầng hiện cĩ. Nhược điểm: Bởi vì định dạng XML dài dịng, SOAP cĩ thể chậm hơn đáng kể so với các cơng nghệ cạnh tranh phần mềm giữa (middleware) như CORBA (Common Object Request Broker Architecture – Kiến trúc mơi giới yêu cầu đối tượng chung). Khi dựa vào HTTP là một giao thức vận chuyển, một bức tường lửa được thiết kế để chỉ cho phép duyệt Web là bắt buộc phải thực hiện chi tiết hơn (và do đĩ tốn kém hơn) phân tích các gĩi HTTP. Mặc dù SOAP là một tiêu chuẩn mở, khơng phải tất cả các ngơn ngữ cung cấp hỗ trợ thích hợp. Java, Curl, Delphi, PHP, .NET và Flex cung cấp IDE tích hợp hỗ trợ. Một số Perl và Python hỗ trợ tồn tại. 38 4.3. Cơng nghệ bản đồ 4.3.1. Ảnh SVG SVG, viết tắt của Scalable Vector Graphics, là một ứng dụng của XML mà làm cho nĩ cĩ thể đại diện cho thơng tin đồ họa trong một hình thức nhỏ gọn, cầm tay [4]. SVG là một ngơn ngữ đánh dấu (markup language) XML và dùng để miêu tả các hình ảnh đồ họa véc tơ hai chiều, tĩnh và hoạt hình, thường dành cho ứng dụng trên các trang mạng. SVG thuộc tiêu chuẩn mở và được quản lí bởi tổ chức World Wide Web Consortium, một tổ chức quản lý nhiều chuẩn khác như HTML, XHTML... Các tập tin cĩ đuơi ".svg" được mặc định hiểu là tập tin SVG. SVG cĩ thể phĩng to thu nhỏ mọi kích cỡ mà khơng giảm chất lượng hình ảnh. Vì thế, nĩ được dùng nhiều trong các bản đồ, sơ đồ. Ví dụ dưới đây là nội dung tệp SVG và hình ảnh hiển thị. <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ""> <svg width="100" height="100" version="1.1" xmlns=""> <circle cx="50" cy="50" r="25" stroke="black" stroke-width="2" fill="red"/> 4.3.1.a. Các thuộc tính của ảnh SVG - SVG là một ngơn ngữ để mơ tả đồ họa 2D và các ứng dụng đồ họa trong XML. Các đối tượng trong ảnh SVG tường là các đối tượng hình học. Ảnh sẽ lưu các tọa độ, kích thước hình học. - SVG được sử dụng để định nghĩa đối tượng đồ họa dựa trên vecto cho ứng dụng Web. - SVG định nghĩa các đối tượng đồ họa theo định dạng XML. - Các đối tượng đồ họa SVG khơng bị giảm chất lượng khi phĩng to hoặc thay đổi kích thước. - Mỗi thành phần và thuộc tính trong tệp SVG cĩ thể thay đổi. - SVG là một khuyến nghị của W3C. - SVG được tích hợp với các tiêu chuẩn W3C khác như DOM và XSL. 39 4.3.1.b. Các chức năng và đặc trưng Mơ tả SVG 1.1 định nghĩa 14 chức năng và đặc trưng quan trọng - Đường dẫn (Paths) - Các hình vẽ cơ bản (Basic Shapes) - Văn bản (Text) - Tơ vẽ (Painting) - Màu sắc (Color) - Đường trượt màu và mẫu (Gradients and Patterns) - Cắt xén, mặt nạ và tổ hợp (Clipping, Masking and Compositing) - Hiệu ứng lọc (Filter Effects) - Tính tương tác (Interactivity) - Liên kết (Linking) - Kịch bản (Scripting) - Hoạt hình (Animation) - Phơng chữ (Fonts) - Siêu dữ liệu (Metadata) 4.3.1.c. Ưu điểm Vì là định dạng đồ họa vectơ, lợi điểm của SVG là khả năng hiển thị tốt ở mọi kích cỡ và độ phân giải. Với một kích thước tương tự, một tập tin SVG cĩ thể chứa nhiều thơng tin hơn là một tập tin định dạng nhị phân khác (GIF, PNG, ...). SVG là một chuẩn mở, nĩ cho phép việc tùy biến theo mục đích sử dụng một cách dễ dàng. Các hình ảnh SVG cĩ thể được dễ dàng sửa chữa và phát triển sau này, khác với đồ họa mảng thường là sản phẩm cuối cùng của các xử lý ảnh, khơng chứa mã nguồn các lớp ảnh. Các tập tin SVG ở dạng văn bản, việc chỉnh sửa cĩ thể thực hiện bằng các trình soạn thảo đơn giản nhất. Kích thước các tệp SVG nhỏ, phù hợp với ứng dụng Web và ứng dụng trên các thiết bị di động. 40 4.3.1.d. Nhược điểm SVG là ngơn ngữ khơng được thiết kế để sửa chữa trực tiếp trên mã nguồn. Để tạo ra các hình ảnh SVG nĩi chung, cần dùng các cơng cụ hỗ trợ. Dù SVG cĩ thể là một lựa chọn cho hình ảnh của các trang mạng trong tương lai khơng xa, nĩ vẫn cịn khá mới mẻ và cần sự hỗ trợ từ các trình duyệt mạng. Hiện nay Mozilla Firefox đã hỗ trợ tương đối đầy đủ cho SVG, tuy nhiên Internet Explorer và một số trình duyệt khác cần cĩ plug-in đặt riêng lẻ. 4.3.2. SVG tiny Mỗi thiết bị di động cĩ đặc điểm khác nhau về tốc độ CPU, kích thước bộ nhớ, và hỗ trợ màu sắc. Để giải quyết cho các dịng thiết bị khác nhau, hai cấu hình được xác định. Cấu hình cấp thấp đầu tiên, SVG Tiny (SVGT) thích hợp cho thiết bị di động rất hạn chế như điện thoại di động, trong khi cấu hình thứ hai, SVG Basic (SVGB) là nhắm mục tiêu cho các thiết bị di động cấp cao hơn như PDA. Sự khác biệt chính giữa SVG Tiny 1.1 và SVG Basic 1.1 là khơng cĩ kịch bản và tạo kiểu trong SVG Tiny 1.1, và do đĩ bất kỳ yêu cầu đều thực hiện với một Document Object Model (DOM). Điều này đã tiết kiệm một số lượng đáng kể bộ nhớ khi chạy chương trình. 4.3.3. Xử lý các đối tượng trong ảnh SVG Một số lớp và giao diện cần thiết cho việc xử lý ảnh SVG trong java được cung cấp trong gĩi javax.microedition.m2g, org.w3c.dom, org.w3c.dom.svg, org.w3c.dom.events. Các gĩi này đảm bảo cho việc xử lý các thành phần, sự kiện, vẽ đồ họa… của ảnh SVG. 41 CHƯƠNG 5. CÀI ĐẶT VÀ THỬ NGHIỆM 5.1. Yêu cầu Phần cứng: Phía Client là điện thoại di động cĩ hỗ trợ ứng dụng Java và hỗ trợ mạng. Trong quá trình xây dựng ứng dụng và thử nghiệm, client cĩ thể là trình giả lập thiết bị di động như Sun Java Wireless Toolkit. Server là máy chủ cĩ cầu hình đủ mạnh để chạy các ứng dụng Java. Phần mềm: Máy chủ dịch vụ cĩ thể cài trên bất kỳ hệ điều hành gì do Java hỗ trợ đa nền. Cụ thể hệ thống này được xây dựng trên máy tính cài hệ điều hành Windows XP Professional. Tuy nhiên vẫn cĩ thể triển khai trên máy chủ hệ điều hành Linux hay Macintosh... Các phần mềm cần thiết: Máy ảo Java JDK 1.6 Sun Java Wireless toolkit 2.5.2 for CLDC Server: Sun GlassFish Enterprise Server v3 Database: mySQL server 5.1 IDE lập trình: Netbeans (đã bao gồm thư viện MySQL JDBC Driver). 5.2. Cài đặt Phía thiết bị di dộng, chỉ cần copy file ứng dụng vào là cĩ thể chạy được. File ứng dụng bao gồm 2 file: CampusGuide.jad và CampusGuide.jar. Phía server, khi triển khai thực tế, chỉ cần upload CampusServer.war lên server hỗ trợ J2EE. 5.3. Thử nghiệm chương trình - Với người dùng khác nhau Chương trình thử nghiệm với người dùng A (khách tham quan) và B (sinh viên). Khi cùng lựa chọn xem thơng tin về Đại học Quốc gia, chương trình sẽ đưa ra lựa chọn chủ đề khác nhau, do đĩ thơng tin cũng khác nhau. 42 Hình 5.1. Lựa chọn chủ đề xem với người dùng sinh viên Hình 5.2. Lựa chọn chủ đề xem với người dùng khách tham quan - Với lượng thơng tin khác nhau Cùng với chủ đề Giới thiệu chung về Đại học Quốc gia với người dùng khách tham quan. Lượng thơng tin khác nhau khi người dùng chọn lựa mức độ chi tiết khác nhau. Bảng 5.1. Nội dung cung cấp cho người dùng tùy vào mức độ chi tiết Mức Lượng thơng tin Số dịng (line) Số từ (word) 1 9 134 2 23 353 3 46 729 - Với lịch sử xem thơng tin Mỗi lần người dùng xem thơng tin, chương trình sẽ ghi vào lịch sử xem thơng tin. Dựa vào lịch sử xem thơng tin, chương trình sẽ đưa ra các lựa chọn thích hợp cho những lần xem tiếp theo. Khi người dùng xem một mức thơng tin của một chủ đề thì các mức nhỏ hơn sẽ khơng xuất hiện trong lần chọn tiếp theo. 43 Hình 5.3. Lần lựa chọn mức chi tiết đầu tiên Hình 5.4. Lần lựa chọn mức chi tiết lần tiếp theo Khi người dùng đã xem thơng tin với mức chi tiết cao nhất của một chủ đề (xem hết chủ đề) thì lần xem tiếp theo, chủ đề đĩ sẽ khơng xuất hiện ở màn hình lựa chon. Hình 5.5. Chọn chủ đề lần đầu tiên Hình 5.6. Chọn chủ đề sau khi đã xem hết thơng tin chủ đề Giới thiệu chung Khi đã xem hết các thơng tin của một Trường, khoa, chương trình sẽ đưa ra lựa chọn cho phép người dùng xĩa lịch sử xem thơng tin của Trường, khoa đĩ. Nếu đồng ý, chương trình sẽ xĩa lịch sử và chuyển đến màn hình lựa chọn chủ đề. 44 Hình 5.7. Lựa chọn xĩa lịch sử Hình 5.8. Nếu đồng ý xĩa lịch sử, chuyển đến màn hình chọn chủ đề 45 CHƯƠNG 6. KẾT LUẬN 6.1. Kết quả đạt được Tìm hiểu ngơn ngữ lập trình trên nền di dộng J2ME. Cơng nghệ J2EE, Servlet. Tìm hiểu Web service. Tìm hiểu về cơng nghệ bản đồ, cách tạo và xử lý. Tìm hiểu vể “Xử lý dữ liệu theo ngữ cảnh”. Xây dựng ứng dụng “Hướng dẫn, cung cấp thơng tin khuơn viên Đại học Quốc Gia VNU Campus Guide”, bước đầu xử lý sự chi tiết của thơng tin theo độ sâu là 3 mức. Ngữ cảnh của chương trình là kiểu người dùng, mức độ chi tiết thơng tin, lịch sử xem thơng tin. Hạn chế: Chưa cĩ cơ chế định vị, xác định vị trí người dùng tự động. Chương trình mới chỉ giới hạn ở khuơn viên Đại học Quốc gia Hà Nội 144 Xuân Thủy, các tịa nhà trong khuơn viên cũng chưa đầy đủ. Lượng thơng tin cung cấp chưa đầy đủ. 6.2. Hướng phát triển Bổ sung thêm Dịch vụ hướng vị trí (Location Based Service), vị trí người dùng cĩ thể xác định bằng GPS. Qua đĩ hiển thị vị trí người dùng trên bản đồ một cách tự động. Làm chi tiết hơn bản đồ. Tìm hiểu và đưa vào thơng tin chi tiết hơn. Phát triển mở rộng chương trình sang các khu vực khác của Đại học Quốc gia Hà Nội cũng như các Trường lớn trong khu vực. 46 TÀI LIỆU THAM KHẢO [1] Anind K. Dey, Gregory D. Abowd. Towards a Better Understanding of Context and Context-Awareness. Georgia Institute of Technology, 1999, tr 3-4. [2] Doug Tidwell, James Snell, Pavel Kulchenko. Programming Web Services with SOAP. 1st Edition, O'Reilly, 2001, tr 6, 15. [3] Ethan Cerami. Web Services Essentials. 1st Edition, O'Reilly, 2002, tr 103, 135. [4] J. David Eisenberg. SVG Essentials. 1st Edition, O'Reilly, 2002, tr 12 [4.3]. [5] Paul Dourish. What we talk about when we talk about context. Volume 8 , Issue 1, 2004, tr 20-23.

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN- NGHIÊN CỨU LẬP TRÌNH ỨNG DỤNG CHO CÁC THIẾT BỊ DI ĐỘNG ÁP DỤNG CHO BÀI TOÁN CAMPUS GUIDE.pdf