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

Một phần của tài liệu 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 pdf (Trang 26)

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

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

Hình 2.11: Luồng xử lý của chương trình

Chương trình gồm 5 Displayable chính: loginScreen, welcome, help, list, form. Các Displayable này sẽ có nhiệm vụ hiển thị trực quan thơng tin trên màn hình điện thoại, giúp cho việc giao tiếp giữa người dùng và máy dễ dàng hơn.

2.6.1. LoginScreen

Là một gói có sẵn trong thư viện của J2ME, có chức năng đưa ra một màn hình login trực quan cho người dùng, các thành phần của loginScreen là Username Filed, Password Field và Login Button

21

Hình 2.12: Màn hình đăng nhập 2.6.2. Welcome

Đây là một Displayable mà thể hiện của nó là dưới dạng form.Form này có

nhiệm vụ hiển thị thơng tin người dùng như là họ tên, tuổi và giới tính và thơng tin về thời gian ghé thăm gần nhất. Form này có các item ChoiceGroup giúp người dùng thao tác với chương trình đưa ra các request như là kích cỡ Font, và thời gian ghé thăm của người dùng.

22

Hình 2.13: Màn hình Welcome Các command trong welcome:

Remove Log command: Xóa hết tất cả file log, file mà lưu dấu vết đường đi của các lần ghé thăm của người dùng.

OK command: Đưa người dùng đến màn hình List.

Giúp Đỡ command: Đưa người dùng đến màn hình giúp đỡ Help

Hình 2.14: Các command của màn hình Welcome

23

Displayable dưới dạng list, màn hình hiển thị danh sách những địa danh có trong cơ sở sở dữ liệu, từ đây người dùng có thể sử dụng các command để thao tác với chương trình như là xem thơng tin tham khảo về địa danh đó hay là dùng command “đi tiếp>>” để khám phá xem địa danh đó cịn có các danh mục con.

Hình 2.15: Màn hình danh sách các địa danh Các command trong List

Thông tin command: Đây là command đưa người dùng đến màn hình hiển thị thơng tin về địa danh mà ta đã chọn ở màn hình list.

Đi tiếp>> command: Bản chất dữ liệu ở đây là dưới dạng cây thông tin, một địa danh sẽ coi như là một cây, nó sẽ chi làm các địa danh con. Tùy vào địa danh thì cây thơng tin biểu diễn sẽ là nhiều nhánh con hay ít. Command này sẽ trỏ chính về màn hình list, nhưng với dữ liệu hiển thị khác, vấn đề này ta sẽ nói rõ hơn trong phần sau.

24

Hình 2.16: Màn hình command của màn hình list 2.6.4. Form

Displayable dưới dạng form có nhiệm vụ hiển thị thông tin dưới dạng text và hình ảnh.

Hình 2.17: Màn hình hiện thị thơng tin địa điểm Các command trong form

25

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

 Phần cứng:

Điện thoại hỗ trợ kết nối GPRS, JSR172 hỗ trợ gửi nhận các gói tin SOAP.

Server: hỗ trợ kết nối web, cơ sở dữ liệu đặt trực tiếp tại server hay database server riêng.

 Phần mềm:

Máy ảo Java.

J2ME Wireless toolkit 2.5.2 for CLDC Server: GlassFish v3 domain (adsbygoogle = window.adsbygoogle || []).push({});

26

Chương 3. J2ME

3.1. Giới Thiệu

Tất cả đều bắt đầu từ phiên bản chuẩn của Java (J2SE) với câu châm ngôn nổi tiếng “Write once, run anywhere”. Ý tưởng này của Java là phát triển một ngôn ngữ cho phép bạn viết mã chỉ một lần, sau đó có thể chạy trên bất kỳ nền tảng nào hỗ trợ máy ảo Java (JVM) mà không cần phải viết lại mã mới.

Hai năm sau khi giới thiệu Java, một phiên bản mới của Java đã ra đời với tên gọi là Java 2 Enterprise Edition cung cấp sự hỗ trợ cho quy mô hệ thống ứng dụng lớn, những ứng dụng phục vụ cho các xí nghiệp. Và thêm vào gần đây duy nhất trong gia đình họ Java là phiên bản nhỏ gọn (micro), hướng đến lập trình trên những thiết bị thông tin gia dụng từ Internet – cho đến các máy TV, máy chụp ảnh, điện thoại di động, PocketPC…

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

Chúng ta bắt đầu với một tóm lượt lướt nhanh qua những nền tảng Java có sẵn hiện thời:

 Phiên bản chuẩn (J2SE): Thiết kế chạy trên desktop và những máy tính kiểu trạm làm việc.

 Phiên bản xí nghiệp (Enterprise Edition) (J2EE): Đưa thêm vào những hỗ trợ dành cho Servlets, JSP và XML. Phiên bản này được nhắm vào những ứng dụng trên nền Web server.

 Phiên bản nhỏ gọn (Micro Edition hay J2ME): Thiết kế cho những thiết bị có bộ nhớ có hạn, cả về sức mạnh màn hình và tốc độ xử lý kém.

Ghi chú: Tháng mười hai 1998, Sun giới thiệu tên mới “Java 2” thay thế cho phiên bản Java 1.2. Tên mới này được dùng để quy ước cho tất cả các phiên bản của Java: Phiên bản chuẩn (J2SE) và phiên bản nhỏ gọn (J2ME). Hinh 1.1 cho thấy các phiên bản Java.

27

Hình 3.1 3.3. Tại sao dùng J2ME?

J2ME được nhắm vào những thiết bị khách hàng (consumer device) với sức mạnh xử lý và tài nguyên có hạn.

Có rất nhiều thiết bị dạng này như là điện thoại di động, máy quay phim , chụp hình. Những thiết bị này khơng có tùy chọn để tải xuống và cài đặt từ xa như PC. Phần mềm điều khiển được cài sẵn trong quá trình sản xuất và bị áp đặt bởi nhà sản xuất. Với sự ra đời của J2ME, những thiết bị này khơng cịn tĩnh như xưa nữa, chúng hồn tồn có thể được người dùng tự lập trình để thêm vào những tính năng mới. Khơng giống như bộ duyệt browser của PC cần tải xuống Java applets, để thực thi ứng dụng Java, J2ME cài trên thiết bị đã sẵn có tùy chọn để duyệt, tải xuống và cài đặt cũng như thực thi những ứng dụng Java.

Một nền tảng Java dùng chung cho mọi loại thiết bị là khơng thích hợp. Để hiểu rõ hơn J2ME phù hợp như thế nào khi áp dụng cho một phạm vi rộng các thiết bị nhúng ngày nay, chúng ta cần hiểu qua hai khái niệm mới, đó là khái niệm cấu hình (config) và thông tin mô tả (profile).

3.3.1. Configurations (Cấu hình)

Để hỗ trợ phạm vi rộng lớn các sản phẩm phù hợp với nền J2ME, Sun đưa ra khái niệm cấu hình (Configuration).

Một cấu hình định nghĩa một nền tảng Java dùng chung cho một số lớn các thiết bị cùng loại. Cấu hình gần như tương đương với hệ máy ảo Java (JVM). Cấu hình định

28

nghĩa những đặc tính ngơn ngữ Java và những thư viện Java lõi của JVM dành cho cấu hình đặc biệt đó. Những đặc tính dành cho một cấu hình áp dụng chủ yếu cho bộ nhớ, độ phân giải màn hình, giao thức kết nối mạng,và sức mạnh xử lý sẵn có trên thiết bị. Các trả lời của Sun về J2ME (FAQ) như sau: “Công nghệ J2ME thiết kế dựa trên hai tâm điểm chính – dựa trên thiết bị mà bạn đang giữ trong tay và thiết bị mà bạn có thể cắm nó vào sử dụng chung với nguồn điện hay thiết bị khác”. Nhữ ng đặc trưng tiêu biểu sau đây của các thiết bị rơi vào định nghĩa cấu hình Configuration gồm có:

3.3.1.1. Cấu hình dành cho thiết bị được kết nối (CDC – Connected Device Configuration).

512 kilobytes (tối thiểu) bộ nhớ để chạy Java.

256 kilobytes (tối thiểu) dành cho phân bổ bộ nhớ thực thi chương trình. Kết nối mạng, băng thơng (bandwidth) rộng và thường trực.

3.3.1.2. Cấu hình thiết bị được nối có giới hạn (CLDC – Connected, Limited Device Configuration).

128 kilobytes (tối thiểu) bộ nhớ để chạy Java.

32 kilobytes (tối thiểu) dành cho phân bổ bộ nhớ thực thi chương trình. Hạn chế về giao diện người dùng.

Nguồn năng lượng thấp, chẳng hạn như là nguồn pin.

Kết nối mạng thường là không dây (wireless) với băng thông và khả năng truy cập internet thấp.

3.3.2. Profile (adsbygoogle = window.adsbygoogle || []).push({});

Định nghĩa về Configuration cho các thiết bị như trên là tương đối phù hợp cho hầu hết mọi thiết bị. Ví dụ các thiết bị di động, PDA đều có thể xếp vào phân loại CLDC. Tuy nhiên, giữa điện thoại di động và PDA vã có thiết bị với nhiều khả năng xử lý hơn cái kia. Chẳng hạn, kích thước màn hình đi động thường nhỏ hơn PDA. Nhằm mô tả những khả năng khác biêt này và cũng để cung cấp nhiều tính linh hoạt hơn khi công nghệ thay đổi, Sun giới thiệu khái niệm Profile dành cho nền J2ME. Một Profile là định nghĩa mở rộng thêm cho một phân loại cấu hình Configuration. Profile cung cấp những thư viện cho phép người phát triển dùng để viết những ứng dụng chạy trên một kiểu thiết bị đặc biệt.

29

Ví dụ, Profile dành cho thiết bị thông tin di động MIDP (Mobile Information Device Profile) định nghĩa tập những hàm API cho phép xử lý những thành phần giao diện người dùng nhập liệu trên thiết bị điện thoại di động, cách xử lý sự kiện, nơi chứa dữ liệu, giao thức kết nối mạng, đối tượng định giờ, quản lý những hạn chế về kíc h thước màn ảnh và bộ nhớ đặc thù của thiết bị di động.

3.4. Cấu hình CONFIG URATION và PROF ILE được phát triển như thế nào?

Sun định nghĩa: cấu hình Configuration và Profile được định nghĩa theo chuẩn công nghiệp mở bởi những nhóm cơng ty và cộng đồng phát triển ứng dụng Java. Bằng cách này ngành cơng nghiệp có thể quyết định những thành phần nào cần thiết để cung cấp một giải pháp hiệu quả hướng đến lĩnh vực công nghiệp của họ.

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

Như bạn đã biết, cơ chế thực thi đằng sau bất kỳ ứng dụng Java nào (applet, servlet…) là JVM. Khi bạn biên dịch mã nguồn Java thành một lớp (file .class) và đặt chúng trong một file lưu trữ .JAR của Java, máy ảo JVM sẽ biên dịch file .class thành mã thực thi điều khiển bởi JVM. Các mã trong file .class gọi là mã byte code. JVM cũng chịu trách nhiệm cung cấp cơ chế an tồn, cấp phát và giải phóng bộ nhớ cũng như quản lý những tiến trình, tiểu trình (thread) thực hiện bên trong. Nó chính là yếu tố làm lên chương trình Java. Đối với cấu hình dạng CLDC, Sun cài đặt một phiên bản thu nhỏ hơn dành cho JVM gọi là K Virtual Machine gọi tắt là KVM. Máy ảo KVM được thiết kế để điều khiển và chạy trên những thiết bị có nguồn tài nguyên hạn chế. Rõ ràng là KVM khơng hồn tồn giống với JVM “truyền thống” của Java, máy ảo KVM:

Thực thể chỉ yêu cầu 40 đến 80 kilobyte cho bộ nhớ thực thi. Chỉ có thể cấp phát 20 đến 40 kilobyte bộ nhớ động.

Chỉ có thể chạy trên những bộ sử lys16 bít tốc độ 25 MHz. Cài đặt của KVM tuân theo những nguyên tắc đặc tả của CLDC.

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

Theo tài liệu của Sun: “CLDC là đặc tả cho một lớp máy ảo có thể chạy trên các thiết bị dùng CLDC hỗ trợ profile”. Thực tế, CLDC mang những yêu cầu thỏa mãn những tính chất của một máy ảo. KVM là một bản cài đặt thỏa mãn những yêu cầu CLDC.

30

Kiến trúc chung:

Bắt đầu với hệ điều hành chủ (OS) làm cơ sở tiếp theo là máy ảo (VM). VM sẽ thuộc 2 dạng:

Đối với những hệ thống tuân theo đặc tả CDC thì đây sẽ là một máy ảo Java “truyền thống” có nghĩa là như Java 2 phiên bản chuẩn (Java 2 Standard Edition).

Đối với những hệ thống tuân theo chuẩn mô tả CLDC, đây sẽ là loại máy ảo KVM theo yêu cầu bởi CLDC.

Các thư viện lõi CLDC và CDC là phần tiếp theo trong lớp ứng dụng. Profile nằm ở lớp cao nhất và được thiết kế để cung cấp các công cụ đặc thù cho chủng loại thiết bị.

Hình 3.2 3.5. Tính tương thích giữa những phiên bản Java

Trong phần đầu chúng ta đã nghe nói đến châm ngơn của java “Write once, run anywhere”. Và cũng đã biết qua khái niệm Configuration và Profile, KVM. Liệu châm ngơn trên cịn đúng cho tất cả máy ảo Java? Câu trả lời là còn tùy thuộc vào một số điều kiệm đi cùng.

31

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

J2ME là một phiên bản thu nhỏ về cơ bản từ phiên bản J2SE. Rất nhiều thành phần đã được loại bỏ để giữ cho nền tảng J2ME nhỏ và hiệu quả. Một ví dụ điển hình là thư viện AWT (Abstract Window ToolKit) đã thay đổi để có khả năng hoạt động trên nhiều thiết bị - do nhiều thiết bị di động khơng có những khả năng để cung cấp những thành phần giao diện người dùng tiên tiến như cửa sổ gối chồng lên nhau hay những thực đơn dạng thả xuống.

Nếu bạn viết ứng dụng trên nền J2SE nhưng chỉ sử dụng những lớp có sẵn trong J2ME Configuration thì ứng dụng của bạn có thể chạy trên cả hai nền tảng.

Nên nhớ, những ứng dụng như vậy sẽ bị ràng buộc với khả năng sử dụng giao diện người dùng thấp, theo như môi trường J2ME. J2SE sử dụng một tập API khác hoàn toàn J2ME để điều khiển giao diện màn hình.

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

Cùng một quy tắc như trên, nếu bạn hạn chế mã bạn chỉ sử dụng những lớp thư viện chung trên cả hai nền tảng, câu trả lời là vẫn chạy được. Tuy nhiên, phần lớn phần mềm bạn viết cho một thiết bị chạy J2ME sẽ yêu cầu giao diện và cách điều khiển sự kiện đặc thù. Như vậy, bạn sẽ gặp rất nhiều hạn chế khi muốn viết kiểu chương trình thích hợp cho cả hai nền tảng.

3.6. Kết chương

Sun tạo ra Java 2 phiên bản Micro cho phép phát triển những ứng dụng Java cho thiết bị có sức mạnh xử lý thấp và dung lượng bộ nhớ nhỏ hơn so với các ứng dụng trên nền tảng desktop truyền thống. Những sản phầm sử dụng J2ME có thể bao gồm những thiết bị như mobile, PDAs, pager, máy chơi games, những hệ thống định vị, dẫn đường…

J2ME được chia thành hai phạm trù rộng mà chúng ta đã biết và được gọi là Configuration. CDC là một tập hợp API dùng cho những thiết bị hạn chế về sức mạnh xử lý, màn hình và bộ nhớ như mobile, PDAs, Pocket PC…

Cấu hình Configuration gần gũi với máy ảo Java. Với loại CDC, máy ảo Java hoàn toàn tương thích với Java 2 phiên bản chuẩn. Configuration KVM là máy ảo dùng phát triển cho CLDC thay vì JVM. (adsbygoogle = window.adsbygoogle || []).push({});

Trên cùng của lớp Configuration là Profile của thiết bị. Ở đây bạn sẽ tìm thấy các tập API dùng cho thiết kế giao diện người dùng, hỗ trợ nối mạng và lưu trữ.

32

Chương 4. Web service

4.1. Định nghĩa

Một Web service được định nghĩa là một tập các phương thức có thể được định vị thông qua địa chỉ URL, các phương thức này được công bố trên hệ thống mạng và được dùng như những khối cơ bản để xây dựng một ứng dụng phân tán. Nói một cách đơn giản hơn, web service là tập hợp các phương thức có thể được các ứng dụng khác triệu gọi từ xa (RPC- Remote Procedure Call) để hình thành nên một hệ ứng dụng phân tán.

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

Các thành phần cơ bản nhất của web service bao gồm HTTP, XML và SOAP (Simple Object Access Protocol). Việc phát triển những kỹ thuật này được điều hành bởi tổ chức W3C (World Wide Web Consortium). Chúng ta sẽ đề cập đến những kỹ thuật này ở những phần sau.

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

Hình 4.1: Hoạt động của Web Service

Một ứng dụng web service thường gồm 2 phần: client và server.

Client và server sẽ giao tiếp với nhau theo giao thức HTTP: Ứng dụng client gửi những lời gọi hàm đến server thơng qua các gói tin HTTP request và kết quả thực thi hàm sẽ được server hồi đáp thông qua các gói tin HTTP response.

33

4.3.1. SOAP

Các thơng điệp sẽ được định dạng theo chuẩn giao thức SOAP (Simple Object Access Protocol). Đây thực chất cũng chỉ là một ngôn ngữ được định nghĩa bên trên ngơn ngữ XML có sẵn.

4.3.2. WSDL (Web Service Definition Language)

Đây là file XML chứa các định nghĩa về các hàm trong Web service tương ứng. Các nhà phát triển ứng dụng sẽ phải dựa vào nội dung file này để biết Web service hỗ trợ những hàm này và nhận những tham số tương ứng, kết quả trả về như thế nào.

Nếu chúng ta phát triển Web service trong mơi trường J2ME thì khơng nhất thiết phải hiểu rõ cấu trúc về file WSDL, vì trong bộ cơng cụ Wireless Toolkit của Sun đã cung cấp sẵn công cụ Stub Generator. Chức năng của bộ công cụ này là đọc file WSDL và phát sinh thành những lớp java tương ứng cho nhà phát triển ứng dụng.

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

Đây là công cụ giúp cho những nhà phát triển Web Service cơng bố những thơng tin về web service của mình cho cộng đồng các nhà phát triển ứng dụng. Người dùng

Một phần của tài liệu 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 pdf (Trang 26)