Kiến trúc chương trình

Một phần của tài liệu báo cáo xây dựng hệ thống m-commerce áp dụng công nghệ java (Trang 57)

5. Đánh giá chung: Xuất sắc F, Giỏi F, Khá F, Trung bình F, Yếu F, Điểm /

6.2 Kiến trúc chương trình

Hình 25. Kiến trúc chương trình

Ứng dụng MIDP chạy trên các thiết bị di động. Các MIDlet giao tiếp với các trang JSP thông qua giao thức HTTP với dữ liệu được định dạng XML. JSP sau đó chuyển MIDlet request sang tầng giữa (middleware layer), tầng này quản lý các logic nghiệp vụ và giao tiếp với cơ sở dữ liệu thông qua JDBC. Tầng giữa có thể là một tập các lớp helper trong trình chứa JSP hay là một EJB server tách rời. Bởi vì trong chương trình demo đơn giản

Thiết bị di động Thiết bị di động Thiết bị di động

JavaServer Pages

Trình chứa EJB hoặc

các phương thức JDBC

Cơ sở dữ liệu Cơ sở dữ liệu Cơ sở dữ liệu HTML/XML

Gọi phương thức cục bộ hoặc từ xa

Các giao thức riêng và SQL

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

này, ta sử dụng truyền thông MIElet-JSP, ta sẽ kết hợp quản lý logic nghiệp vụ và các chức năng truy xuất dữ liệu vào ngay trong các trang JSP.

Hình 26. Kiến trúc Client/Server

MIDlet khách sẽ gởi yêu cầu đến trang JSP trên máy chủ, dữ liệu yêu cầu được định dạng XML. Trang JSP trên máy chủ sẽ truy xuất cơ sở dữ liệu, lấy thông tin theo yêu cầu và trả lời về cho MIDlet khách. Dữ liệu gởi giữa máy chủ và MIDlet khách được định dạng XML, với giao thức trao đổi được quy ước sẵn.

Chương trình xem điểm tuyển sinh được quản lý bởi người quản trị. Người quản trị sẽ truy xuất các trang JSP quản trị thông qua trình duyệt Web thông thường với tên và mật khẩu.

MIDlet khách được đóng gói bằng hai tập tin Enroll.jad và Enroll.jar. Các trang JSP trên máy chủ được đóng gói bằng tập tin enrolljsp.war.

Cơ sở dữ liệu được dùng là Microsoft Access 2000 thông qua JDBC.

HTTP Server Enroll JSP pages Application Protocol request request reply reply Enroll MIDlet Web browser

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh 6.2.1 Giao diện người dùng

Hình 27. Sơ đồ chuyển đổi giữa các màn hình

Hình 28. Màn hình giới thiệu Hình 29. Màn hình nhập liệu

Đây là màn hình chính của MIDlet dùng để nhập dữ liệu yêu cầu. Khi người dùng chọn Menu để yêu cầu tương ứng thì màn hình kết quả sẽ trả về. Màn hình giới thiệu Màn hình nhập liệu Xem điểm chuẩn Xem kết quả Xem chỉ tiêu Xem số lượng dự thi

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

Hình 30. Màn hình Menu Hình 31. Màn hình kết quả

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

Hình 33. Trang hiệu chỉnh dữ liệu

Các giao diện khác tương tự như giao diện trên.

6.2.3 Giao thức trao đổi

MIDlet client và trang JSP chủ sẽ giao tiếp với nhau thông qua dữ liệu định dạng XML. Mẫu định dạng gởi từ client đến server được quy ước như sau:

<root>

<request>yeucau</request>

<univ_code>matruong</univ_code> <cand_num>sobaodanh</cand_num> </root>

Với yeucau có giá trị tương ứng như sau:

passmark: Xem điểm chuẩn

mark: Xem kết quả

amount: Xem số lượng dự thi

target: Xem chỉ tiêu

Tương tự như vậy định dạng XML của server trả về Client được quy ước tương ứng như sau:

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

<response>yeucau</response> <display>ketqua</display> </root>

Client và server sử dụng gói DBXMLParser để xử lý tài liệu XML, DBXMLParser sử dụng bộ phân tích kXML để phân tích tài liệu XML phục vụ cho các chức năng của nó.

6.3 EnrollMIDlet

EnrollMIDlet nằm trong thư mục Application/Enroll.

Thư mục bin chứa tập tin đóng gói Enroll.jar và tập tin mô tả Enroll.jad. Thư mục src chứa mã nguồn của chương trình.

Thư mục classes chứa các tập tin .class đã biên dịch.

Trong tập tin mô tả Enroll.jad có một tham số mô tả tự định nghĩa là server-URL

chứa địa chỉ đến server chạy các trang JSP. MIDlet sẽ truy xuất tham số này để lấy địa chỉ URL đến server.

6.3.1 EnrollMIDlet.java

Đây là lớp MIDlet chính của ứng dụng

Lớp này có nhiệm vụ lấy tham số server-URL từ tập tin Enroll.jad để gán cho địa chỉ đến server.

Hiển thị màn hình giới thiệu.

Sau đó tạo ra hai đối tượng EnrollScreen là màn hình hiển thị chính của ứng dụng,

HttpPoster để gởi request và nhận response trên HTTP.

Các nhiệm vụ về sau do đối tượng EnrollScreen và HttpPoster đảm nhiệm.

6.3.2 EnrollScreen.java

EnrollScreen là lớp hiển thị chính của MIDlet.

Lớp này có nhiệm vụ hiển thị giao diện nhập liệu, cho phép người dùng nhập mã trường và số báo danh của mình, đưa ra menu cho phép người dùng chọn kết quả cần xem. Khi có yêu cầu, EnrollScreen sẽ sử dụng gói DBXMLParser để phát sinh yêu cầu theo định dạng XML, sau đó dùng đối tượng HttpPoster gởi yêu cầu đến Server. Khi gởi yêu cầu EnrollScreen truyền cho HttpPoster tham chiếu đến đối tượng

HttpPosterListener (sẽ đề cập sau).

Sau khi gởi yêu cầu, EnrollScreen hiện thông báo “Xin cho…”, EnrollScreen

chờ nhận hồi đáp trả về. Nếu nhận được hồi đáp sẽ hiển thị trên màn hình, nếu có lỗi thì sẽ hiện thông báo lỗi.

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh 6.3.3 HttpPoster.java

Đối tượng HttpPoster, nhận tham số địa chỉ URL của server trong hàm tạo.

HttpPoster là một tuyến đoạn (thread) luôn chạy, nhận yêu cầu gởi dữ liệu, gởi dữ liệu, và chờ nhận hồi đáp. Khi có hồi đáp, HttpPoster sẽ dùng tham chiếu đến

HttpPosterListener gọi phương thức receiveHttpResponse() để xử lý hồi đáp nhận về.

6.3.4 HttpPosterListener.java

Đây đơn giản chỉ là một interface định nghĩa hai phương thức mà các lớp con phải thực hiện.

6.3.5 Các gói thư viện hỗ trợ

Ứng dụng sử dụng hai gói thư viện hỗ trợ là support.* và org.kxml.*.

Gói support cung cấp lớp DBXMLParser có các phương thức phân tích tài liệu XML, phát sinh tài liệu XML.

Gói org.kxml.* là bộ phân tích kXML dành cho MIDP. Gói này có đầy đủ các phương thức để phân tích tài liệu XML, ở đây ta chỉ sử dụng một số phương thức của nó trong lớp DBXMLParser.

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

Hình 37. UML của lớp giao diện HttpPosterListener

Hình 38. UML của lớp DBXMLParser

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh 6.4.1 enrolljsp.jsp

Đây là trang JSP gốc, có nhiệm vụ tiếp nhận yêu cầu từ MIDlet client, khi nhận được request, enrolljsp.jsp sẽ dùng gói support.DBXMLParser để phân tích dữ liệu nhận được dưới dạng XML. Sau khi phân tích yêu cầu, trang JSP sẽ kết nối JDBC đến cơ sở dữ liệu để lấy dữ liệu theo yêu cầu. Sau khi lấy được dữ liệu, hoặc không tìm thấy, trang JSP sẽ trả về dữ liệu theo khuôn dạng XML (dữ liệu text không được bọc trong thẻ <%%> của trang JSP sẽ mặc định trả về trong response).

6.4.2 Các trang quản trị

Các trang quản trị nằm trong thư mục /admin. Các trang quản trị sử dụng giao diện trình Web thông thường, yêuâp5. Khi đã đăng nhập, người quản trị có thể quản lý toàn bộ ứng dụng.

Hình 39. Sơ đồ các trang quản trị

Các trang quản trị:

index.jsp: Trang chủ quản trị

login.jsp: Trang đăng nhập

fail.htm: Trang đăng nhập thất bại

logout.jsp: Trang đăng xuất

university.jsp: Trang chủ quản trị trường đại học

univ_search: Trang tìm kiếm trường

univ_insert: Trang thêm trường

univ_edit: Trang hiệu chỉnh dữ liệu trường

candidate.jsp: Trang chủ quản trị thí sinh

Trang đăng nhập Trang quản trị thí sinh Trang quản trị trường ĐH Trang tìm kiếm Trang bổ sung thêm Trang hiệu chỉnh và xóa Trang chủ Trang tìm kiếm Trang bổ sung thêm Trang hiệu chỉnh và xóa Đăng xuất Fail.htm Thành công Thất bại

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

cand_search: Trang tìm kiếm thí sinh

cand_insert: Trang thêm thí sinh

cand_edit: Trang hiệu chỉnh dữ liệu thí sinh

6.5 Cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống là cơ sở dữ liệu Access dbEnroll.mdb trong thư mục

Application/Database, với các bảng như sau:

Table admin: Chứa username và password của người quản trị

<id>: Autonumber (khóa chính)

<name>: Text (tên của người quản trị)

<pass>: Text (password của người quản trị)

Table University: Chức dữ liệu về các trường đại học

<univ_code>: Text (mã trường đại học – khóa chính)

<univ_name>: Text (tên trường đại học)

<subj1>, <subj2>, <subj3>: Text (tên môn thi 1, 2, 3)

<passmark>: Number (điểm chuẩn)

<amount>: Number (số lượng dự thi)

<target>: Number (chỉ tiêu tuyển sinh)

Table candidate: Chứa dữ liệu về các thí sinh

<cand_num>: Text (số báo danh – khóa chính)

<univ_code>: Text (mã trường dự thi)

<cand_name>: Text (tên thí sinh)

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

6.6 Chạy ứng dụng với Tomcat và J2ME Wireless Toolkit

6.6.1 Yêu cầu

• Máy tính phải cài đặt j2sdk 1.4 trở lên. Địa chỉ download: http://java.sun.com

• Cài đặt Tomcat để chạy Web Server. Địa chỉ download: http://jakarta.apache.org • Cài đặt J2ME Wireless Toolkit 2.0 để chạy trình mô phỏng. Địa chỉ download:

http://java.sun.com

6.6.2 Tạo ODBC

Trước hết phải tạo kết nối ODBC có tên là “Enroll” đến cơ sở dữ liệu Access

dbEnroll.mdb trong thư mục Application\Database

6.6.3 Chạy Web Server

• Chép gói enrolljsp.war trong thư mục Application\enrolljsp vào thư mục webapps trong thư mục cài đặt Web server Apache Tomcat.

Ví dụ: D:\JBuilder9\thirdparty\jakarta-tomcat-4.0.6-LE- jdk14\webapps.

• Chạy Tomcat bằng tập tin startup.bat trong thư mục bin của Tomcat. Tomcat sẽ tự động chạy các ứng dụng trong thư mục webapps.

Hình 41. Màn hình khi chạy Tomcat

• Chạy thử địa chỉ: http://localhost:8080, nếu chạy được trang chủ của Tomcat là thành công.

• Chạy trang quản trị truyển sinh bằng địa chỉ: http://localhost:8080/enrolljsp/admin.

• Nếu muốn tắt Tomcat, chạy tập tin shutdown.bat trong thư mục bin của Tomcat

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh 6.6.4 Chạy J2ME Wireless Toolkit

• Chép thư mục Application\Enroll vào thư mục apps của thư mục cài đặt J2ME Wireless Toolkit.

Ví dụ: D:\WTK20\apps

• Chạy trình mô phỏng Ktoolbar trong Start\Programs\J2ME Wireless Toolkit 2.0\Ktoolbar

• Nhấn “Open Project…”. Chọn Project “Enroll”, nhấn “Open Project”.

Hình 42. Màn hình KToolbar

• Nhấn “Run” để chạy ứng dụng với trình mô phỏng. Trình mô phỏng sẽ mô phỏng một điện thoại di động chạy ứng dụng xem điểm tuyển sinh.

6.6.5 Chạy ứng dụng với các trình mô phỏng khác

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

Hình 43. Ứng dụng chạy trên trình mô phỏng Nokia 7210 SDK

Hình 44. Ứng dụng chạy trên trình mô phỏng Siemens MC60

Chương 6. Xây dựng chương trình Demo SV: Lê Ngọc Quốc Khánh

Hình 45. Ứng dụng chạy trên trình mô phỏng Motorola T720i

Chương 7. Tổng kết và nhận xét SV: Lê Ngọc Quốc Khánh

CHƯƠNG 7 TỔNG KẾT VAØ NHẬN XÉT

Đề tài đã đề cập khái quát về thương mại di động và các công nghệ hỗ trợ có liên quan. Đặc biệt tập trung vào công nghệ J2ME. Đề tài cũng đã xây dựng một ứng dụng Demo minh họa các kỹ thuật cơ bản khi phát triển ứng dụng với J2ME.

Thương mại di động là thương mại được xây dựng trên nền tảng mạng vô tuyến với các công nghệ truyền thông hỗ trợ ngày càng tiên tiến. Công nghệ trao đổi thông tin đóng vai trò quan trọng khi phát triển ứng dụng và dịch vụ di động. Java với phiên bản J2ME dùng để phát triển các ứng dụng chuyên biệt cho các thiết bị di động.

Java đã sớm thâm nhập lĩnh vực thiết bị di động và sẽ là công nghệ chủ chốt trong thương mại di động.

Báo cáo thực tập SV: Lê Ngọc Quốc Khánh THUẬT NGỮ VIẾT TẮT 1G 1st (First) Generation 2G 2nd (Second) Generation 3G 3rd (Third) Generation 4G 4th (Fourth) Generation

API Application Program Interface

CDC Connected Device Configuration

CLDC Connected Limited Device Configuration

DTD Document Type Definition

EDGE Enhanced Data GSM Environment

GPRS General Packet Radio Service

GPS Global Positioning System

GSM Global System for Mobile Communications

HDML Handheld Device Markup Language

HDTP Handheld Transport Protocol

HTML HyperText Markup Language

HTTP Hypertext Transfer Protocol

IDE Intergrated Development Environment

IR InfraRed

ISP Internet Service Provider

ITTP Intelligent Terminal Transfer Protocol

J2EE Java 2 platform Enterprise Edition

J2ME Java 2 platform Micro Edition

J2SE Java 2 platform Standard Edition

JAD Java Application Descriptor

JAR Java Archive file

JCP Java Community Process

JNI Java Native Interface

JSP JavaServer Page

JSR Java Specification Request

JVM Java Virtual Machine

Báo cáo thực tập SV: Lê Ngọc Quốc Khánh MIDP Mobile Information Device Profile

OTA Over The Air

PNG Portable Network Graphics

SMP Smart Messaging Protocol

SMS Short Message Service

SSL Secure Sockets Layer

UMTS Universal Mobile Technology System

WAP Wireless Application Protocol

WBXML WAP Binary XML

WML Wireless Markup Language

WTLS Wireless Transport Layer Security

Báo cáo thực tập SV: Lê Ngọc Quốc Khánh TAØI LIỆU THAM KHẢO

[1] Ee-Peng Lim và Keng Siau, “Advances in Mobile Commerce Technologies”, Idea Group Publishing, 2003

[2] “Sony Ericsson Java MIDP Development Online Training Course”, Sony Erricson Developer World, 2002

http://www.sonyericsson.com/spg.jsp?template=frameset_dev_zone

[3] Qusay H.Mahmoud, “WAP for Java developers”, Java World, 2000

http://www.javaworld.com/javaworld/jw-06-2000/jw-0602-wap.html

[4] Tim Fielden và Ana Orubeondo, “J2ME and WAP: Together forever?”, Java World, 2000

http://www.javaworld.com/javaworld/jw-12-2000/jw-1201-iw-j2me.html

[5] Dreamtech Software Team, “Wireless Programming with J2METM: Cracking the CodeTM”, Hungry Minds Inc, 2002

[6] Forum Nokia, “Brief Introduction to Networked MIDlets”, Forum Nokia, 2002

http://www.forum.nokia.com

[7] Michael J. Yuan và Ju Long, “Build database-powerd mobile applications on the Java platform”, Java World, 2002

http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-midp.html

[8] Nguyễn Phương Lan và Hoàng Đức Hải, “Lập trình ứng dụng Web với JSP/Servlet”, Nhà xuất bản Giáo Dục, 2001

Một phần của tài liệu báo cáo xây dựng hệ thống m-commerce áp dụng công nghệ java (Trang 57)

Tải bản đầy đủ (PDF)

(76 trang)