Sơ đồ phân rã chức năng

Một phần của tài liệu Tìm hiểu và xây dựng ứng dụng enterprise cho điện thoại di động bằng J2ME” (Trang 76)

6. GIAO DIỆN ỨNG DỤNG VÀ ĐÁNH GIÁ HIỆU SUẤT

3.1.1 Sơ đồ phân rã chức năng

Hình 2.2.3: Sơ đồ chức năng của ứng dụng

Khi người dùng mở ứng dụng, đầu tiên chương trình sẽ hiển thị màn hình giới thiệu chương trình trong một khoảng thời gian ngắn, sau đó chuyển sang giao diện chức năng chính, người dùng sẽ lựa chọn chức năng và kích hoạt chức năng tương ứng. Các chức năng chính: + Choose a movie + Rate movies + My settings + Manager theater Reservation tickets

Đây là phần chính của chương trình cho phép một khách hàng có thể đặt vé thông qua việc chọn rạp phim, chọn phim,chọn ngày,chọn giờ,chọn số lượng vé, chọn chỗ ngồi và cuối cùng đến đặt vé.

+ Choose theater: chọn rạp phim đã có trong danh sách. + Choose movie: chọn phim có lịch trình chiếu tại rạp. + Choose day: chọn ngày chiếu phim

+ Choose time: chọn giờ xem phim

+ Choose setting preference: chọn khu vực chỗ ngồi + Choose number of ticket: chọn số vé cần đặt + Select seats: chọn vị trí ngồi có trên bản đồ + Buy ticket: đặt vé bằng tài khoản của mình Rate movies

Đánh giá chất lượng của các bộ phim bạn đã xem bằng chức năng rate movies để gửi thông tin này tới các nhà sản xuất phim giúp có đánh giá khách quan đối với các phim chiếu rạp.

+ Rate: đánh giá chất lượng bộ phim (tăng hoặc giảm) + Save: lưu giữ các đánh giá phim của người xem

+ Syn ratings: xác nhận chất lượng các phim và gửi cho server Modify my settings

Điều chỉnh các thông tin của người dung như: + Default:chỉnh sửa các thông tin đã được khởi tạo

+ Account infor: chỉnh sửa các thông tin cá nhân như tên đăng nhập và tài khoản. + Password: chỉnh sửa password

Manager theater

Cho phép quản lý các danh sách rạp phim được cung cấp bởi nhà cung cấp dịch vụ + Download theater: tải thông tin về các rạp chiếu phim được cung cấp bởi nhà dịch vụ.

+ Delete theater: xóa thông tin về rạp phim

3.1.2 Sơ đồ luồng dữ liệu mức ngữ cảnh

Client chỉ gồm một tác nhân kích hoạt chính là Customer.Customer có quyền đưa ra các yêu cầu về đặt vé, chỉnh sửa thông tin tài khoản, đánh giá phim và xem thông tin về các rạp chiếu phim được cung cấp.

Hình 2.2.4: Sơ đồ luồng dữ liệu mức ngữ cảnh

3.1.3 Sơ đồ luồng dữ liệu mức đỉnh

Hình 2.2.5: Sơ đồ luồng dữ liệu mức đỉnh

3.1.4 Sơ đồ luồng dữ liệu mức dưới đỉnh

Hình 2.2.6: Sơ đồ luồng dữ liệu mức dưới đỉnh + Chức năng chỉnh sửa thông tin tài khoản

Hình 2.2.7: Sơ đồ luồng dữ liệu mức dưới đỉnh + Chức năng đánh giá chất lượng các bộ phim

Hình 2.2.8: Sơ đồ luồng dữ liệu mức dưới đỉnh + Chức năng quản lý danh sách các rạp phim

Hình 2.2.9: Sơ đồ luồng dữ liệu mức dưới đỉnh

3.3 Chức năng phía Server

Hình 2.2.10: Sơ đồ phân rã chức năng

+ Populate database: cho phép người quản trị triển khai cơ sở dữ liệu + Repopulatr database: cho phép người quản trị triển khai lại cơ sở dữ liệu + Purchar online: quản lý đặt vé online

3.3.2 Sơ đồ luồng dữ liệu mức ngữ cảnh

Hình 2.2.11: Sơ đồ luồng dữ liệu mức ngữ cảnh

Hình 2.2.12: Sơ đồ luồng dữ liệu mức đỉnh

3.3.4 Sơ đồ luồng dữ liệu mức dưới đỉnh

+ Populate database

Hình 2.2.13: Sơ đồ luồng dữ liệu mức dưới đỉnh + Repopulate database

Hình 2.2.14: Sơ đồ luồng dữ liệu mức dưới đỉnh + Manager purchar online

Hình 2.2.15: Sơ đồ luồng dữ liệu mức dưới đỉnh

4.THIẾT KẾ CƠ SỞ DỮ LIỆU 4.1 Chi tiết cơ sở dữ liệu

4.1.1 Table ACCOUNTBEAN

Chứa thông tin liên quan đến tài khoản của người đặt vé.

giá trị

PASSWORD Mật mã VARCHAR <= 256

ký tự USERNAME <pk> Tên tài

khoản

VARCHAR (Not null)

<= 256 ký tự

ZIPCODE Mã rạp phim VARCHAR <= 256

ký tự

LASTNAME Họ VARCHAR <= 256

ký tự

FIRSTNAME Tên VARCHAR <= 256

ký tự

EMAIL Mail VARCHAR <= 256

ký tự CREDITCARDNUMBER Số thẻ VARCHAR <= 256

ký tự CREDITCARDHOLDERNAME Chủ nhân thẻ VARCHAR <= 256

ký tự CREDITCARDEXPIRATIONDATE Thời hạn thẻ VARCHAR <= 256

ký tự CREDITCARDTYPE Kiểu thẻ VARCHAR <= 256

ký tự SYNCCONDUITBEAN_GENERATEDPK<fk> Xác nhận

client BIGINT <= 8 ký tự 4.1.2 Table MOVIEBEAN

Chứa thông tin về các bộ phim.

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo

giá trị ID <pk> Định danh phim VARCHAR

(Not null)

<= 256 ký tự

TITLE Tên phim VARCHAR <= 256 ký

tự

SUMMARY Giới thiệu VARCHAR <= 256 ký

tự

RATING Xếp hạng phim VARCHAR <= 256 ký

tự

POSTERURL Poster phim VARCHAR <= 256 ký tự

MOVIERATINGBEAN_GENERATEDP K <fk>

Tham chiếu sang

bảng đánh giá BIGINT <= 8 ký tự MOVIESHOWBEAN_TIME<fk> Thời gian chiếu

phim TIMESTAMP = 8 ký tự MOVIESHOWBEAN_THEATERID<fk> Rạp chiếu phim VARCHAR <= 256 ký

tự MOVIESHOWBEAN_MOVIEID<fk>

Tham chiếu sang bảng thời gian chiếu

VARCHAR <= 256 ký tự

4.1.3 Table MOVIERATINGBEAN

Chứa các thông tin về đánh giá chất lượng bộ phim

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo giá trị

ID Số thứ tự người

dùng đánh giá VARCHAR <= 256 ký tự STARTNUMBER Đánh giá chất

lượng ban đầu INTERGER < = 4 ký tự LASTVIEWDATE Lần xem phim gần

đây nhất TIMESTAMP = 8 ký tự GENERATEDPKFIELD <pk> Sinh khóa tự động

với bảng

BIGINT

(Not null) <= 8 ký tự ACCOUNTBEAN_USERNAME<fk> Thông tin người

đánh giá VARCHAR <= 256 ký tự 4.1.4 Table MOVIESCHEDULEBEAN

Chứa các thông tin về lịch trình chiếu các bộ phim

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo

giá trị SEATING Trạng thái các chỗ ngồi BOLB Kiểu tự định nghĩa SHOWTIMEPATTERNS Bản đồ chỗ ngồi trong buổi chiếu phim BOLB Kiểu tự định nghĩa THEATERID Tên rạp phim VARCHAR <= 256 ký tự

MOVIEID<pk> Tên phim

chiếu VARCHAR (Not null) <= 256 ký tự THEATERSCHEDULEBEAN_GENERATEDPK<fk> Tham chiếu sang bảng lịch chiếu BIGINT <= 8 ký tự MOVIEBEAN_ID<fk> Lấy thông

tin về phim VARCHAR

<= 256 ký tự 4.1.5 Table MOVIESHOWBEAN

Chứa thông tin về buổi chiếu phim

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo

giá trị TIME<pk> Thời gian trình

chiếu

TIMESTAMP (Not null)

= 8 ký tự

THEATERID Tên rạp VARCHAR <=256

ký tự

MOVIEID Tên phim VARCHAR <=256

ký tự

SEATING Vị trí chỗ ngồi BOLB Kiểu tự

định nghĩa MOVIESCHEDULEBEAN_THEATERID<fk> Tên rạp phim VARCHAR <=256

ký tự MOVIESCHEDULEBEAN_MOVIEID<fk> Tên phim VARCHAR <=256

ký tự RESERVATIONBEAN_GENERATEDPK<fk > Tham chiêú sang bảng đặt chỗ VARCHAR <=256 ký tự

4.1.6 Table RESERSATIONBEAN

Chứa các thông tin liên quan đến việc đặt chỗ

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo giá trị

SEATS Chỗ đã đặt BOLB Kiểu tự định

nghĩa GENERATEDPKFIELD<pk> Tự động sinh khóa

cho bảng

BIGINT

(Not null) <= 8 ký tự ACCOUNTBEAN_USERNAME<fk> Tài khoản người

đặt VARCHAR <=16 ký tự 4.1.7 Table SYNCLIENTBEAN

Chứa các thông tin mà client gửi tới và đồng bộ chúng

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo

giá trị ID Số thự tự khách hàng đánh giá INTERGER <= 4 ký tự LASTSYNCHRONIZATIONTIME Lần đồng bộ gần đây nhất TIMESTAMP = 8 ký tự GENERATEDPKFIELD<pk> Sinh khóa tự

động BIGINT (Not null) <= 8 ký tự SYNCCONDUITBEAN_GENERATEDP<fk> Xác định client thông qua tham chiếu

BIGINT <= 8 ký tự

4.1.8 Table SYNCONDUITBEAN

Chứa thông tin về client phục vụ cho việc đồng bộ

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo giá trị NEXTCLIENTID Client tiếp theo INTERGER <= 4 ký tự GENERATEDPKFIELD<pk> Tự động sinh khóa BIGINT

(Not null) <= 8 ký tự 4.1.9 Table SYNMETADATABEAN

Chứa các thông tin liên quan đến việc đồng bộ đánh giá phim

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo

giá trị

ID Số thự tự

đồng bộ VARCHAR

<= 256 ký tự

CREATIONTIME Thời gian

đồng bộ BIGINT

< = 8 ký tự LASTMODIFICATIONTIME Lần thay đổi

gần đây nhất BIGINT

< = 8 ký tự

DELETED Xóa đánh giá SMALLINT <= 2 ký

tự GENERATEDPKFIELD<pk> Tự động sinh khóa BIGINT (Not null) < = 8 ký tự MOVIERATINGBEAN_GENERATEDP<fk> Lấy thông tin

đánh giá bộ

BIGINT < = 8 ký tự

phim

SYNCCONDUITBEAN_GENERATEDPK<fk> Lấy thông tin

client BIGINT

< = 8 ký tự 4.1.10 Table THEATERBEAN

Chứa các thông tin liên quan đến các rạp phim

Tên field Ý nghĩa Kiểu dữ liệu

Cách tạo giá trị

ADDRESS Địa chỉ VARCHAR <= 256

ký tự

NAME Tên rạp VARCHAR <= 256

ký tự ID<pk> Định danh rạp VARCHAR <= 256 ký tự ZIPCODE Mã rạp VARCHAR <= 256 ký tự THEATERSCHEDULEBEAN_GENERATEDPK<fk> Lấy thông tin lịch chiếu phim trong rạp BIGINT <= 8 ký tự 4.1.11 Table THEATERSCHEDULEBEAN Chứa các thông tin liên quan đến lịch chiếu phim

Tên field Ý nghĩa Kiểu dữ liệu Cách tạo giá trị EXPIRATIONDATE Có hiệu lực đến ngày TIMESTAMP = 8 ký tự GENERATEDPKFIELD<pk> Tự động sinh khóa BIGINT

(Not null) <= 8 ký tự

Hình 2.2.16: Quan hệ giữa các bảng cơ sở dữ liệu 4.2.1 MOVIEBEAN_ MOVIESCHEDULEBEAN

MOVIESCHEDULEBEAN.MOVIEID = MOVIEBEAN.ID Lấy các phim bên bảng phim qua bảng lịch phim

4.2.2 MOVIEBEAN_MOVIESHOWBEAN

MOVIEBEAN.MOVIESHOWTIME_TIME =MOVIESHOWBEAN.TIME Xác định thời gian chiếu phim từ bảng chiếu phim cùng với các thông tin khác trong bảng đó.

MOVIECHEDULEBEAN.THEATERSCHEDULEBEAN_GENERATEDPK = THEATERCHEDULEBEAN. GENERATEDPKFIELD

Cập nhật lịch chiếu phim của rạp phim cho lịch chiếu mỗi bộ phim vì mỗi bộ phim được chiếu tại một rạp cụ thể, một bộ phim có thể chiếu ở nhiều rạp cùng hoặc khác thời điểm.

4.2.4 THEATERCHEDULEBEAN_THEATERBEAN

THEATERCHEDULEBEAN. GENERATEDPKFIELD = THEATERBEAN. THEATERSCHEDULEBEAN_GENERATEDPK

Lấy thông tin lịch chiếu phim cho mỗi rạp phim.

4.2.5 MOVIESCHEDULEBEAN_MOVIESHOWBEAN

MOVIESHOWBEAN. MOVIESCHEDULEBEAN_THEATERID = MOVIESCHEDULEBEAN. THEATERID

Lấy thông tin về rạp phim từ lịch chiếu phim

MOVIESHOWBEAN. MOVIESCHEDULEBEAN_MOVIEID = MOVIESCHEDULEBEAN. MOVIEID

Lấy thông tinvề bộ phim được trình chiếu trong lịch. 4.2.7 RESERVATIONBEAN_ACCOUNTBEAN

ACCOUNTBEAN.USERNAME = RESERVATIONBEAN. ACCOUNTBEAN_USERNAME

Có tài khoản và đăng nhập mới được đặt chỗ. 4.2.8 ACCOUNTBEAN_MOVIERATIONBEAN ACCOUNTBEAN.USERNAME =

MOVIERATIONBEAN.ACCOUNTBEAN_USERNAME

Có tài khoản và đăng nhập mới được đánh giá chất lượng của bộ phim. 4.2.9 ACCOUNTBEAN_SYNCONDUITBEAN

ACCOUNTBEAN. SYNCCONDUITBEAN_GENERATEDPK = SYNCONDUITBEAN. GENERATEDPKFIELD

Xác nhận tài khoản trên client để trao đổi thông tin phục vụ việc đồng bộ cơ sở dữ liệu gửi về server sau này.

4.2.10 MOVIEBEAN_MOVIERATINGBEAN

MOVIEBEAN. MOVIERATINGBEAN_GENERATEDPK = MOVIERATINGBEAN. GENERATEDPK

Xác định đánh giá chất lượng bộ phim.

4.2.11 MOVIERATINGBEAN_SYNMETADATABEAN

MOVIERATINGBEAN. GENERATEDPKFIELD = SYNMETADATABEAN. MOVIERATINGBEAN _ GENERATEDPKFIELD

Đồng bộ hóa những đánh giá phim

4.2.12 SYNMETADATABEAN_SYNCONDUITBEAN

SYNCONDUITBEAN.GENERATEDPKFIELD = SYNMETADATABEAN. SYNCONDUITBEAN_ GENERATEDPKFIELD

Thu thập các thông tin mà client gửi tới.

4.2.13 SYNCONDUITBEAN_SYNCLIENTBEAN

SYNCLIENTBEAN. GENERATEDPKFIELD = SYNCONDUITBEAN. SYNCLIENTBEAN_ GENERATEDPKFIELD

Xác nhận thông tin từ client nào

5.MÔ HÌNH

5.1 Mô hình vật lý chi tiết

Hình 2.2.17: Mô hình vật lý

J2EE:

+ Các entity bean và facade bean được cất giữ trong smartticket-ejb.jar + Các servlet nằm trong smartticket-war.jar

J2ME:

+Các thành phần trên mobile : synchronization agent, remote model proxy,

local model, model facade, ui controler, ui classes nằm trong smartticket-client.jar. +Ngoài ra còn có các .jsp trên giao diện web browser

5.2 Các module xử lý

5.2.1 Phía client

a. Tổng quát

Hệ thống gồm 4 gói java lớn là:

- Gói: com.sun.j2me.blueprints.smartticket.client

+Trong gói này chứa lớp quan trọng nhất là SmartTicketMIDlet.java chứa than chính của chương trình.

+ Các gói com.sun.j2me.blueprints.smartticket.client.model, com.sun.j2me.blueprints.smartticket.client.ui,

com.sun.j2me.blueprints.smartticket.client.utils chứa các hàm giao diện và các hàm xử lý của client j2me

- Gói: com.sun.j2me.blueprints.smartticket.shared:đây là gói chứa các hàm chia sẻ chung giữa client và server

- Gói icons: chứa các file ảnh - Gói l10n chứa file ngôn ngữ

Hình 2.2.18: Các gói trong smartticket-client.jar b.Mô hình UML toàn hệ thống

Hình 2.2.21: Client-web-ejb

5.2.2 Phía server

Hình 2.2.22: Server-ejb b.SmartTicket-war.war

Hình 2.2.24: Server-web

6. CÀI ĐẶT

6.1 Cấu hình phần cứng

o 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, client có thể là trình giả lập do nhà sản xuất cung cấp

o Server là máy chủ có cầu hình đủ mạnh để chạy các ứng dụng Java, tối thiểu như: Intel Pentium III 733 MHz, 128 MB RAM.

6.2 Cấu hình phần mềm

Máy chủ dịch vụ có thể cài 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 Edition. Tuy nhiên vẫn có thể triển khai trên máy chủ hệ điều hành Linux hay Macintosh... Máy chủ dịch vụ cài đặt các phần mềm sau:

o Java 2 SDK 1.4 trở lên

o Derby Apache và driver của nó cho Java

Máy chủ quản trị cơ sở dữ liệu phải cài hệ quản trị cơ sở dữ liệu Derby Apache . Để xây dựng ứng dụng cần phải có một số phần mềm sau:

o J2ME Wireless Toolkit . o Các phần mềm tùy chọn:

o IDE để viết chương trình Java

o Sun Java Wireless Toolkit giả lập điện thoại

o Proguard,Retroguard để tinh giảm ứng dụng J2ME

6.3 Ngôn ngữ môi trường

Ngôn ngữ xây dựng là Java trên môi trường Window.

7. GIAO DIỆN ỨNG DỤNG VÀ ĐÁNH GIÁ HIỆU SUẤT

7.1 Giao diện của chương trình

Ứng dụng chạy trên bộ J2ME Wireless Toolkit của Sun Microsystems, đây là bộ công cụ để biên dịch, tiền kiểm tra, đóng gói và giả lập các thiết bị di động theo thiết kế tổng quát như: điện thoại di động, thiết bị QWERTY. Sau đây là một số giao diện khi chạy trên trình giả lập thiết bị của J2ME Wireless Toolkit.

7.1.1 Giao diện bên server

Hình 2.2.25: Populate database bên server

7.1.2 Giao diện bên client

Hình 2.2.26: Giao diện chính của chương trình + Quản lý thông tin cá nhân

Hình 2.2.27: Chức năng chỉnh sửa thông tin cá nhân + Đặt vé

Hình 2.2.28:Chức năng đặt vé + Đánh giá chất lượng phim

Hình 2.2.29: Chức năng đánh giá chất lượng phim + Quản lý danh sách rạp phim

2.2.30: Chức năng xem danh sách các rạp phim

7.2 Hiệu suất của ứng dụng

7.2.1 Bộ nhớ

Hình 2.2.31: Đồ thị sử dụng bộ nhớ của ứng dụng

Ta thấy tổng bộ nhớ dành cho chương trình là 2097152 bytes, nhưng chỉ dùng ở mức ổn định132872 bytes, lúc cao nhất là 537232 bytes.Tức là tối đa chỉ chạy hết ¼ bộ nhớ dành cho nó vì vậy chương trình có tinh ứng dụng cao.

Hình 2.2.32:Danh sách các giao thức chiếm bộ nhớ mạng

Theo danh sách trên thì ngoài giao thức http là giao thức chính, không còn bất cứ giao thức nào khác làm tổn hao hay làm chậm quá trình trao đổi trên mạng vì vậy khả năng truy cập mạng sẽ giảm bót rất nhiều thời gian.

7.2.3 Kết luận

Ứng dụng đã được hoàn thành dưới dạng demo,nhưng hạn chế mà ứng dụng chưa làm được là chưa xây dựng một giao diện thân thiện với người quản trị cho phép nhập cơ sở dữ liệu tại các máy chủ, nhưng là một chương trình enterprise nó cho thấy được “tâm điểm” và cũng là thế mạnh của chương trình này đó là các EJB cùng các công nghệ khác của J2EE như là jsp, xml, webservice, JNDI…

Là người xây dựng hệ thống tôi đã có những trải nghiệm thiết thực với công nghệ J2EE và J2ME cũng như tích lũy cho mình kiến thức quan trọng về công nghệ này để có thể phục vụ công việc trong tương lai.

PHẦN 3: PHỤ LỤC

PHỤ LỤC 1: HƯỚNG DẪN CÀI ĐẶT

- Download và cài đặt bộ J2DK (jdk-java 2 software development kit ) 6 update 17 tại: (Bản mới nhất ở thời điểm làm đồ án thực tập) để biên dịch tâp tin mã nguồn:

http://java.sun.com/javase/downloads/index.jsp

- Download và cài đặt bộ công cụ phát triển java (j2se-Java 2 Standard Edition) (Bản mới nhất ở thời điểm làm đồ án thực tập):

http://java.sun.com/javase/downloads/index.jsp

- Download và cài đặt mô phỏng mobile J2ME Wireless Toolkit 2.5.2 (Bản mới nhất ở thời điểm làm đồ án thực tập) tại:

http://java.sun.com/products/sjwtoolkit/download.html

- Download Netbean 6.7.1 hỗ trợ gói cho mobile tại:

- Download GlassFish để thiết lập Application server:

https://glassfish.dev.java.net/public/downloadsindex.html#top

- Sau khi cài đặt ta thiết lập các biến môi trường như sau:

Hình 3.1.1: Java_home Hình 3.1.2: J2mewtk_home

Hình 3.1.3: J2ee_home Hình 3.1.4:Ant_home

PHỤ LỤC 2: THUẬT NGỮ VÀ VIẾT TẮT

API Application Program Interface

ASCII American Standard Code for Information Interchange

ASP Active Server Page

CBS Cell Broadcast Short Message Service

CDC Connected Device Configuration

CDMA Code Division Multiple Access

CGI Common Gateway Interface

CLDC Connected Limited Device Configuration

CORBA Common Object Request Broker Architecture

CPU Central Processing Unit

DOM Document Object Model

DTD Document Type Definition

EDGE Enhanced Data GSM Environment

EJB Enterprise Java Beans

GPRS General Packet Radio Service

GPS Global Positioning System

GSM Global System for Mobile Communications

GUI Graphical User Interface

HTML Hyper-Text Markup Language

HTTP Hyper-Text Transfer Protocol

IDE Integrated Development Environment

IIS Internet Information Service

IR Infra Red

ISDN Integrated Services Digital Network

J2EE Java 2 Platform, Enterprise Edition

J2ME Java 2 Platform, Micro Edition

J2SE Java 2 Platform, Standard Edition

JAD Java Application Descriptor

JAR Java Application Archive

JAXP Java API for XML Processing

JAXR Java API for XML Registries

JAX-RPC Java API for XML-based RPC

JCP Java Community Process

JDBC Java Database Connectivity

JNI JavaNative Interface Support

JSP Java Server Pages

Một phần của tài liệu Tìm hiểu và xây dựng ứng dụng enterprise cho điện thoại di động bằng J2ME” (Trang 76)

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

(107 trang)
w