Trong luận văn của mình, chúng em chọn nghiên cứu và viết chương trình ứng dụng trên các thiết bị di động có hỗ trợ J2ME sử dụng hệ quản trị cơ sở dữ liệu Firebird, mặt khác chúng em cũn
Trang 1Lời Cảm Ơn
Trước hết chúng em xin chân thành cảm ơn Quý thầy cô trong khoa Công Nghệ Thông Tin trường Cao Đẳng Nguyễn Tất Thành đã tận tình giúp đỡ, dạy dỗ cho chúng em nhiều kiến thức bổ ích trong suốt thời gian học ở trường cũng như
đã tạo điều kiện cho chúng em được làm khóa luận này
Đặc biệt chúng em xin gởi lời cảm ơn đến thầy Nguyễn Duy Thái đã tận tình giúp đỡ chúng em trong suốt thời gian làm khóa luận Thầy đã trang bị cho chúng
em kỹ năng làm việc và những kinh nghiệm quý báu sau những lần gặp khó khăn Luận văn của chúng em sẽ khó hoàn thành nếu không có sự giúp đỡ của thầy Chúng con cũng cảm ơn cha mẹ và gia đình luôn ủng hộ, tạo điều kiện tốt nhất cho chúng con trong việc làm luận văn này
Xin cảm ơn các bạn sinh viên CNTT khóa 2005 đã giúp đỡ, đóng góp cho chúng tôi nhiều ý kiến quý báu
Luận văn được hoàn thành với một kết quả nhất định Dù đã rất nổ lực, cố gắng nhưng chắc chắn sẽ không tránh khỏi sai sót Chúng em rất mong được sự cảm thông và sự góp ý của Quý thầy cô và các bạn
TP Hồ Chí Minh, tháng 8 năm 2008 Nhóm sinh viên thực hiện
Trang 2Lời Nói Đầu
Ngày nay, đối với nhiều người sống ở thành thị thì những thiết bị di động như: điện thoại đi động, máy tính xách tay, máy nhắn tin… không còn gì xa lạ Các thiết
bị di động này không chỉ đơn thuần phục những chức năng thuần túy mà nó còn là một phương tiện giải trí, tra cứu thông tin, mua bán thông qua mạng rất tiện lợi Do
đó việc xây dựng các ứng dụng trên các thiết bị này là một yêu cầu tất yếu trong xu thế hiện nay
Hai hướng phát triển trên thiết bị di động phổ biến hiện nay là ngôn ngữ C++ trên nền hệ điều hành Symbian và J2ME Các ứng dụng được viết trên nền Symbian
có các ưu thế truy cập các tài nguyên của điện thoại cũng như hỗ trợ hệ thống tập tin, thư mục… rất tiện lợi Tuy nhiên hệ điều hành Symbian lại có kích thước khá lớn nên chỉ có thể chạy trên những thiết bị di động tương đối cao cấp Hơn nữa việc xây dựng ứng dụng dùng Symbian API cũng khá phức tạp
Đối lập với Symbian API là công nghệ J2ME với kích thước nhỏ gọn, tiện dụng, được hỗ trợ bởi hầu hết các thiết bị di động Chúng ta có thể nói đối tượng của ngôn ngữ J2ME là rộng hơn rất nhiều so với C++ trên nền Symbian
J2ME là một ngôn ngữ nhỏ, gọn nhưng rất chặt chẽ và dể nắm bắt Nó là ngôn ngữ được các tổ chức mã nguồn mở ủng hộ mạnh mẽ và phát triển nhanh chóng Thật khó so sánh giữa các dòng ngôn ngữ lập trình với nhau vì mỗi loại đều có
ưu và khuyết điểm riêng Trong luận văn của mình, chúng em chọn nghiên cứu và viết chương trình ứng dụng trên các thiết bị di động có hỗ trợ J2ME sử dụng hệ quản trị cơ sở dữ liệu Firebird, mặt khác chúng em cũng muốn thử sức ở một lĩnh vực khá mới mẽ là tiếp cận với phần mềm mã nguồn mở
Ứng dụng mà chúng em chọn thực hiện trong khóa luận này là:“Chương
trình quản lý việc mua bán sách trên thiết bị di động” Đối với những người dân
trí thức đặc biệt là những bạn sinh viên thì việc mua sách là chuyện rất bình thường
Trang 3và dễ dàng Hiện nay hệ thống nhà sách được phân bố rộng khắp Tuy nhiên khi đã bước vào cuộc sống công nghệ thì một câu hỏi đặt ra tại sao chúng ta không tận dụng tối đa sức mạnh của công nghệ Chẳng hạn việc mua sách thay vì phải mất công ra nhà sách chọn sách chúng ta có thể ở nhà mà vẫn chọn được sách và mua được cuốn sách đúng như mong muốn Chỉ cần ở nhà chúng ta có một thiết bị di động hỗ trợ Internet Việc chuyển các ứng dụng thương mại từ môi trường web sang môi trường các thiết bị di động nhỏ gọn sẽ khiến sự tiện dụng tăng cao, số người sử dụng dịch vụ trực tuyến chắc chắn sẽ tăng nhanh vì đối với nhiều người các thiết bị di động rất tiện lợi và dễ sử dụng hơn rất nhiều so với chiếc máy tính
“phức tạp và khó hiểu”
Khi nói đến lập trình cho các thiết bị di động, chúng ta đều hình dung được hai trở ngại lớn Thứ nhất, đó là năng lực của bộ vi xử lý trên điện thoại rất yếu và thứ hai, đó là dung lượng của bộ nhớ rất nhỏ Điều này gây trở ngại không nhỏ đến việc
tổ chức dữ liệu cho phần mềm, bởi lẽ một cửa hiệu bán sách thì có rất nhiều loại sách và các đầu sách Chúng ta không thể nào tải hết lên thiết bị di động được Ngoài ra, các hạn chế của các thiết bị di động cũng buộc người lập trình phải chọn giải thuật thật hiệu quả và phải luôn tính toán nhằm tối ưu hóa chương trình Mặt khác, đối với người lập trình, sự hạn chế của thư viện hàm trong ngôn ngữ Java được hỗ trợ cho các thiết bị di động là một vấn đề không dễ giải quyết Những hạn chế đã nêu thật sự là một thách thức lớn mà đề tài bắt buộc phải vượt qua
Vì một số điều kiện đặc biệt của các thiết bị di động, nên hiện nay ứng dụng này chỉ chạy trên chương trình giả lập Tuy nhiên, chúng em hy vọng trong tương lai gần ứng dụng này sẽ được ứng dụng trên thiết bị di động cụ thể và có thể ứng dụng vào thực tiễn
Với việc xây dựng thành công ứng dụng này chúng tôi hy vọng trong một tương lai không xa nó sẽ được phát triển thành các ứng dụng cho việc mua bán trong các hệ thống siêu thị, đặt vé máy tàu hỏa, đặt vé máy bay… qua các thiết bị di
Trang 4động nhỏ gọn những thiết bị này sẽ trở thành một công cụ giao dịch không thể thiếu trong thời đại mới, thời đại của thương mại điện tử toàn cầu
Trang 5MỤC LỤC
Lời nói đầu 1
Chương 1: Tổng quan về lập trình trên thiết bị di động 4
1.1 Đôi nét về thị trường thiết bị di động ở Việt Nam 4
1.2 Lập trình trên thiết bị động sử dụng j2me .4
1.3 Một số công cụ hổ trợ j2me .6
Chương 2: Khái quát về j2me, j2ee, MVC, JSP, Servlet và hệ quản trị CSDL FireBird 9
2.1 Giới thiệu j2me .9
2.1.1 Khái niệm j2me 9
2.1.2 Kiến trúc j2me .9
2.2 Giới thiệu j2ee 12
2.2.1 Khái niệm j2ee .12
2.2.2 Kiến trúc j2ee 13
2.3 Cơ chế giao tiếp j2me và j2ee 14
2.4 Giới thiệu mô hình MVC 14
2.5 Giới thiệu về JSP .15
2.5.1 Khái niệm 15
2.5.2 Mô hình hoạt động của JSP .15
2.6 Giới thiệu về Servlet .16
2.6.1 Khái niệm 16
2.6.2 Đặc điểm của Servlet .16
2.7 Giới thiệu hệ quản trị CSDL FireBird .16
2.7.1 Khái niệm 16
2.7.2 Lý do dùng hệ quản trị CSDL Firebird 16
Chương 3: Phân tích thiết kế ứng dụng 18
3.1 Khảo sát hiện trạng .18
3.2 Quy trình nghiệp vụ mua bán sách .18
3.2.1 Trên server 18
3.2.2 Trên Client di động .19
3.3 Phân tích và xác định yêu cầu 19
3.3.1 Danh sách các yêu cầu nghiệp vụ .19
3.3.2 Các yêu cầu phi chức năng .21
3.4 Thiết kế ứng dụng 22
3.4.1 Sơ đồ Use Case tổng thể 22
3.4.2 Sơ đồ Use Case cho từng actor 23
3.4.3 Đặc tả một số Use Case tiêu biểu 25
3.4.4 Thiết kế cơ sở dữ liệu 35
Chương 4: Thử nghiệm, cài đặt và hướng dẫn sử dụng 50
4.1 Cài đặt chương trình (webserver) 50
4.2 Hướng dẫn sử dụng webserver .52
4.3 Hướng dẫn sử dụng J2ME .61
Trang 6Chương 5: Tổng kết, đánh giá, hướng phát triển 71
5.1 Một số kết quả đạt được 71
5.2 Một số hạn chế 71
5.3 Đánh giá kết quả 72
5.3.1 Chương trình chạy trên Server 72
5.3.1 Chương trình chạy trên Client 72
5.4 Hướng phát triển 73
Danh mục tài liệu tham khảo 75
Phụ lục 76
Hướng dẫn cài đặt J2ME Wireless Toolkit 2.5 76
Trang 7Nhận xét của giáo viên hướng dẫn
TpHCM, ngày……tháng……năm…… Giáo viên hướng dẫn
[Ký và ghi rõ họ tên]
Trang 8Các chữ cái, thuật ngữ được sử dụng
API Application Program Interface
CDC Connected Device Configuation
CLDC Connected Limited Device Configuation
GCF General Connection Framework
J2EE Java 2 Enterpise Edition
J2ME Java 2 Micro Edition
J2SE Java 2 Standard Edition
JDK Java Development Process
JSR Java Specification Requests
KVM Máy ảo Java cho môi trường CLDC
PDA Personal Digital Assistant
MIDlet Tên gọi chung cho các ứng dụng J2ME
MIDP Mobile Information Device Profile
Profile Các tập thư viện cấp cao định nghĩa nền Configuation RMS RecordStore Management System
Symbian Hệ điều hành cho điện thoại di động của hãng Symbian XML Extensible Markup Language
Trang 9TÓM TẮT KHÓA LUẬN
Nội dung khóa luận chia làm 5 chương:
- Chương 1: Tổng quan về lập trình trên thiết bị di động Chương này nêu
những tình hình sử dụng các thiết bị di động ở Việt Nam, hoạt động phát triển phần mềm cho các thiết bị này Giới thiệu một số các phần mềm công
cụ hỗ trợ ứng dụng phát triển phần mềm trên thiết bị di động bằng ngôn ngữ Java
- Chương 2: Khái quát về J2ME, J2EE, MVC và hệ quản trị CSDL
Firebird Chương này trình bày các khái niệm, kiến trúc, chức năng của
J2ME, J2EE và hệ quản trị CSDL Firebird
- Chương 3: Phân tích thiết kế ứng dụng Phân tích các yêu cầu nghiệp vụ Đặc tả chi tiết ứng dụng ở mức phân tích, thiết kế
thiệu về trình giả lập được khóa luận chọn thử nghiệm Hướng dẫn cài đặt
và cách sử dụng các chức năng của chương trình
những mặt đã làm được, những mặt chưa làm được Đề ra những giải pháp
và phương hướng để tiếp tục phát triển chương trình ngày càng hoàn thiện hơn và phát triển thành nhiều chương trình ứng dụng khác nữa
- Danh mục các tài liệu tham khảo: Đây là các tài liệu đã được tham khảo
khi làm luận văn này
- Phụ lục: Mục này hướng dẫn cài đặt các phần mềm liên quan để chạy
demo chương trình
Trang 10
Chương 1: Tng 1: Tng 1: Tổng Quan Vng Quan Vng Quan Về L L Lập Trìp Trìp Trình Trên Thinh Trên Thinh Trên Thiết Bt Bt Bị Di ð Di ð Di ðộngngng
Chương 1:
Tổng Quan Về Lập Trình Trên Thiết Bị Di Động
1.1 Tổng quan về thị trường thiết bị di động ở Việt Nam
Số lượng thiết bị di động ngày càng tăng ở Việt Nam, nhiều người đã coi những thiết bị này như một vật không thể thiếu trong cuộc sống hằng ngày Cùng với sự gia tăng số lượng người dùng thì các ứng dụng dành cho thiết bị di động cũng tăng theo tương ứng Hàng loạt các ứng dụng cho thiết bị di động đã trình làng
và rất được chào đón Đây có thể được coi là một cuộc cách mạng trong lĩnh vực di động, nó biến những thiết bị di động nhỏ bé của bạn thành một chiếc máy tính thu nhỏ, với những thiết bị này bạn có thể đọc báo, tiểu thuyết, tra cứu thông tin…
Có thể nói thị trường di động Việt Nam là một thị trường rất hấp dẫn đối với
các nhà sản xuất phần mềm
1.2 Lập trình trên thiết bị di động sử dụng J2ME
1.2.1 Quá trình phát triển ứng dụng J2ME
Thông thường việc phát triển ứng dụng J2ME được tiến hành qua các giai đoạn sau:
- Viết mã nguồn Java
- Biên dịch
- Tùy chọn (Obfuscate) Obfuscate sẽ loại bỏ các thông tin không cần thiết trong class, chẳng hạn như tên của các biến cục bộ Các lớp, phương thức, interface,… cũng được đổi tên để làm cho chúng ngắn gọn hơn Một gói đã được obfuscate sẽ bảo vệ các tập tin class khỏi việc dịch ngược
và reverse engineering Ngoài việc bảo vệ mã nguồn, obfuscate còn giảm kích thước của các tập tin class, làm cho kích thước của tập tin
Trang 11Chương 1: Tng 1: Tng 1: Tổng Quan Vng Quan Vng Quan Về L L Lập Trìp Trìp Trình Trên Thinh Trên Thinh Trên Thiết Bt Bt Bị Di ð Di ð Di ðộngngng
JAR cũng giảm đi Việc giảm kích thước rất có ý nghĩa bởi vì các thiết bị MIDP thường có bộ nhớ giới hạn
- Tiền kiểm tra (Pre-verify):
Bộ kiểm tra trong J2SE tốn ít nhất là 50KB, không kể việc tiêu tốn vùng nhớ heap và thời gian xử lý Để giảm việc tiêu tốn này cho J2ME, việc kiểm tra tập tin class sẽ được chia thành hai giai đoạn Quá trình tiền kiểm tra trước khi triển khai sẽ thêm các tập tin class các tham số phụ để tăng tốc quá trình kiểm tra lúc thực thi Thiết bị sẽ thực hiện quá trình kiểm tra sơ lược bằng cách sử dụng các tham số phụ được phát sinh trong quá trình kiểm tra
- Tạo tập tin JAR
- Tạo tập tin JAD
- Thực thi trên trình giả lập thích hợp
- Triển khai trên thiết bị di động
1.2.2 Các J2ME IDE
Môi trường phát triển tích hợp (IDE) cải thiện năng suất của lập trình viên bằng cách cung cấp một tập hợp các công cụ lập trình tích hợp thông qua giao diện đồ họa (GUI), hỗ trợ công cụ soạn thảo, quản lý project, biên dịch và gở rối (debugger)
Thành viên mới nhất trong gia đình Java là J2ME Khi nhiều chuyên gia
dự đoán vế sự phát triển lớn mạnh của thị trường phát triển các ứng dụng J2ME, các nhà phát triển IDE đã đưa ra các bản mở rộng cho các sản phẩm IDE của họ để hỗ trợ thêm J2ME Ngoài ra, các nhà cung cấp chuyên nghiệp khác cũng đã phát triển các IDE dành riêng cho J2ME
1.2.2.1 Một IDE cho J2ME cần phái cung cấp các tiện ích sau
- Quản lý project: Quản lý tập tin nguồn và các thông số MIDlet
- Trình soạn thảo: Soạn thảo mã nguồn và các tài nguyên
Trang 12Chương 1: Tng 1: Tng 1: Tổng Quan Vng Quan Vng Quan Về L L Lập Trìp Trìp Trình Trên Thinh Trên Thinh Trên Thiết Bt Bt Bị Di ð Di ð Di ðộngngng
- Build: Biên dịch, obfcuscate và pre-verify mã nguồn
- Đóng gói (package): Đóng gói các MIDlet thành phần JAR và JAD
- Giả lập (emulation): Thực thi các MIDlet với một trình giả lập
- Gỡ rối (debugger)
1.3 Một số công cụ hỗ trợ J2ME
1.3.1 J2ME Wireless Toolkit (WTK)
J2ME Wireless Toolkit (WTK) là một bộ công cụ phát triển J2ME cho các lập trình viên trên môi trường giả lập, là công cụ cần thiết để phát triển
các tính năng soạn thảo và gỡ rối vốn được xem là bắt buộc phải có trong một IDE Tuy nhiên, Ktoolbar, được cung cấp trong bộ WTK là một môi trường phát triển tối thiểu cung cấp một GUI dành cho việc biên dịch, đóng gói và thực thi các ứng dụng MIDP
Mỗi project có một thư mục dành riêng trong thư mục apps Thư mục apps nằm bên trong thư mục chính của WTK Các thư viện cần thiết cho project có thể được chép thủ công vào thư mục bên trong thư mục project Nếu một thư viện cần cho tất cả project, nó có thể được chép vào thư mục apps/lib
Khi Ktoolbar project được tạo ra, cấu trúc thư mục project sẽ được thiết lập Ngoài ra các tập tin JAD và manifest cũng được phát sinh dựa vào các thông số của MIDlet suite đã được xác định Tuy nhiên, không có tập tin nguồn nào được phát sinh cho MIDlet Lập trình viên phải viết các tập tin nguồn này từ đầu Ktoobar không hỗ trợ nạp nhiều project trong một GUI Trình soạn thảo WTK không cung cấp một trình soạn thảo tích hợp nào Thay vào đó, lập trình viên phải sử dụng một trình soạn thảo của hãng thứ
ba
Trang 13Chương 1: Tng 1: Tng 1: Tổng Quan Vng Quan Vng Quan Về L L Lập Trìp Trìp Trình Trên Thinh Trên Thinh Trên Thiết Bt Bt Bị Di ð Di ð Di ðộngngng
Ktoolbar cũng cung cấp hỗ trợ cho việc biên dịch và đóng gói dự án Gói được tạo ra sẽ chứa tập tin JAR và JAD của MIDlet suite WTK được tích hợp công cụ obfuscator là RetroGuard Công cụ này không được cung cấp kèm với WTK mà có thể download miễn phí từ website
www.retrologic.com Để cài đặt, chúng ta chỉ cần chép tập tin retroguard.jar vào thư mục bin của thư mục cài đặt WTK
Tóm lại: WTK là một môi trường cơ bản cho việc phát triển các ứng dụng trên thiết bị di động Tuy nhiên, do thiếu một trình soạn thảo và chức năng gỡ rối, rõ ràng công cụ này không thể nào cạnh tranh được với các công cụ thương mại khác Tuy nhiên với những ai mới bắt đầu tìm hiểu J2ME thì đây vẫn là một công cụ có ích Bằng việc tạo lập sẵn một cấu trúc thư mục, nó cho phép lập trình viên có thể xây dựng ngay ứng dụng mà không cần quan tâm về việc tổ chức các tập tin, tài nguyên trong dự án Khi một lập trình viên đã trở nên thành thạo với việc phát triển ứng dụng J2ME thì có thể chuyển sang sử dụng một công cụ khác
1.3.2 Borland Jbuilder 2006:
Môi trường làm việc của Jbuilder cho J2ME hoàn toàn giống như môi trường phát triển các ứng dụng Java bình thường nhưng có thêm các tabs và options trong các hộp thoại để hỗ trợ J2ME và hai winzard mới: MIDP MIDlet wizard và MIDP Displayable wizard Trong phiên bản Jbuilder Professionnal và Enterprise, trình duyệt Archive Builder có thể tạo ra một MIDlet suite với các tập tin manifest và JAD tương ứng Jbuilder 2006 cũng cần cài đặt WTK 2.1 được sử dụng như một môi trường giả lập Ngoài ra Jbuilder còn cung cấp các hướng dẫn cho việc tích hợp thêm các J2ME JDK khác, chẳng hạn như Nokia Developer Suite for J2ME và Siemens Mobility Toolkit (SMTK)
Trang 14Chương 1: Tng 1: Tng 1: Tổng Quan Vng Quan Vng Quan Về L L Lập Trìp Trìp Trình Trên Thinh Trên Thinh Trên Thiết Bt Bt Bị Di ð Di ð Di ðộngngng
Ngoài các tính năng chính của Jbuilder, khi lập trình cho J2ME chúng ta được thêm các tính năng sau:
- Chuyển đổi JDK
- Các MIDP wizards
- Bộ thiết kế trực quan (visual designer) cho các thành phần giao diện MIDP
- Công cụ gỡ rối MIDlet
- Đóng gói file JAD và JAR
- Nạp dữ liệu thông qua OTA (Over The Air Provisioning) Tóm lại: Chức năng thiết kế giao diện của Jbuilder là một công cụ hữu ích trong việc tạo lập giao diện MIDP Tuy nhiên, chức năng này lại không hỗ trợ đầy đủ các thành phần giao diện hiện có và trong nhiều trường hợp mã nguồn phát sinh cần được chỉnh sửa thêm mới hoạt động đúng theo ý muốn
Trang 15H 2.01 Kiến trúc tổng quát của J2ME
2.1.2.1 CLDC – Connected Limited Device Configuation
Mục đích của tầng này là cung cấp một tập tối thiểu các thư viện cho phép một ứng dụng Java chạy trên thiết bị di động Nó cung cấp cơ sở cho tầng hiện
trạng, tầng này sẽ chứa nhiều API chuyên biệt hơn
Trang 162.1.2.2 CDC – Connected Device Configuation
Được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bị thuộc CLDC nhưng vẫn còn yếu hơn các hệ thống máy để bàn sử dụng J2SE Các thiết bị thuộc loại này bao gồm các hộp điều khiển TV, điện thoại Internet, các thiết bị giải trí, định hướng… Các thiết bị này có giao diện phong phú, bộ nhớ nhiều hơn (thông thường là trên 2Mb) và có bộ xử lý mạnh hơn, băng
thông lớn và sử dụng giao thức TCP/IP
2.1.2.3 Máy ảo Java (KVM)
Vai trò của máy ảo Java hay KVM là dịch mã bytecode được sinh ra từ chương trình Java đã biên dịch sang ngôn ngữ máy Chính KVM sẽ chuẩn hóa output của các chương trình Java cho các thiết bị di động khác nhau có thể có
bộ vi xử lý và tập lệnh khác nhau Không có KVM, các chương trình Java phải được biên dịch thành tập lệnh cho mỗi thiết bị di động Như vậy lập trình viên phải xây dựng nhiều đích cho mỗi loại thiết bị di động.Do các thiết bị di động dùng CLDC thường có tài nguyên hạn chế nên Sun đã đề ra máy ảo Java KVM phục vụ riêng cho các thiết bị này Máy ảo KVM thực chất là một bộ phận con của các máy ảo trên môi trường J2SE và J2EE nên cũng có nhiều hạn chế
Trang 17“phá hủy” Tuy nhiên trong J2ME chúng ta không có phương thức finalize
- Erro Handling: Trong J2ME chúng ta vẫn được hỗ trợ các công cụ về bẫy lỗi (chủ yếu thông qua try và catch) Tuy nhiên khả năng vễ xử lý
lỗi của J2ME cũng hạn chế hơn J2SE và J2EE
- Không hổ trợ việc sử dụng code của các ngôn ngữ khác
- Không hỗ trợ Reflection: Trong J2SE và J2EE, chúng ta có thể dùng các lớp Reflection để tìm hiểu thông số môi trường máy ảo Java đang thực
thi
- Không hỗ trợ ThreadGroup: Mỗi thread được quản lý riêng biệt, không còn lớp ThreadGroup Nếu muốn điều khiển một lúc nhiều threads
chúng ta có thể dùng mảng hoặc Vector
2.1.2.4 MIDP – Mobile Information Device Profile
Đây là Profile được định nghĩa dành riêng cho các thiết bị di động và là thành phần chính trong J2ME MIDP cung cấp các chức năng cơ bản cho hầu hết các thiết bị di động phổ biến nhất là các máy điện thoại di động và các máy PDA Tuy nhiên MIDP cũng có nhiều hạn chế lớn cũng chỉ vì được thiết kế cho các máy di động có cấu hình rất thấp
Trang 18J2EE cung cấp cách tiếp cận dựa trên linh kiện (component: là một thành phần hay một đơn vị phần mềm độc lập) để thiết kế, phát triển, tích hợp và triển khai ứng dụng J2EE đưa ra mô hình ứng dụng phân tán đa tầng với các linh kiện có khả năng tái sử dụng, mô hình bảo mật thống nhất, điều khiển giao dịch (transaction) linh động, hỗ trợ dịch vụ web (web service) thông qua việc sử dụng chuẩn XML để tích hợp và trao đổi dữ liệu Nói chung một phần mềm dựa trên J2EE là một ứng dụng phân tán đa tầng bao gồm những linh kiện tích hợp với nhau theo đặc tả của J2EE, linh kiện là: Web service, EJB hay gói java classes… Nếu là nhà sản xuất phần mềm, với J2EE, bạn có thể nhanh chóng phát triển một phần mềm thương mại bằng cách xây dựng & tích hợp những linh kiện độc lập và đa hệ, bạn có thể phân rã trách nhiệm xây dựng các linh kiện cho các nhóm lập trình viên độc lập Nếu là người tiêu thụ với vai trò lập trình viên, với J2EE, bạn không cần phải mua trọn gói một thư viện phần mềm lớn cho vài nhu cầu nhỏ, thay vào đó, bạn sẽ mua từng linh kiện J2EE vừa đủ nhu cầu, điều này tiết kiệm chi phí và tạo tính chủ động cho người tiêu thụ J2EE phù hợp cho những ứng dụng quy mô lớn với giá thành thấp
Trang 19Chỉ đảm nhận phần biểu diễn thông tin đến server và thu thập dữ liệu của
người dùng Nó không biết hoặc không quan tâm đến cách mà thông tin được phát sinh, mặc dù nó biết một số điều về “hình dạng (shape)” của thông tin
2.2.2.2 J2EE Machine
Tầng này đảm nhận chức năng biên dịch hay thay đổi dữ liệu, các luật phải được áp dụng cho dữ liệu khi nó thay đổi Tầng này cung cấp cho tầng Client Machine trước nó, và cũng là phương tiện cho việc lưu trữ và nhận dữ liệu của tầng sau nó
2.2.2.3 Database Server Machine
Tầng này đảm nhiệm quản lý lưu trữ và lấy dữ liệu ứng dụng Tầng này có
thể bao gồm mã chương trình cộng với hệ quản trị cơ sở dữ liệu quan hệ
Trang 20Chương ng ng 2: Khái Quát J2ME, j22: Khái Quát J2ME, j22: Khái Quát J2ME, j2EE, MVCEE, MVCEE, MVC, JSP, S, JSP, S, JSP, Servlet và H và H và Hệ Quản Trị
CSDL Firebird
2.3 Cơ chế giao tiếp giữa J2ME và J2EE
HTTP là một giao thức liên lạc giữa Clien/Server lý tưởng cho các ứng dụng java
di động Đối với mỗi đặc tả, thiết bị tương thích MIDP phải hỗ trợ HTTP Các giao thức khác như TCP hay UDP là tùy chọn Bởi vì không phải tất cả các thiết bị MIDP đều hỗ trợ tuyền thông socket hay datagram, do đó triển khai HTTP trên thiết bị di động cho phép tối ưu hóa khả năng chuyển đổi giữa các thiết bị từ các nhà sản xuất khác nhau
Một lợi điểm khác của giao thức HTTP được hưởng truy xuất không lỗi thông qua tường lửa Bởi vì server và client di động hầu như được tách biệt bằng firewall, HTTP không cần phải cấu hình thêm Mặc dù vậy ta cũng nên quan tâm đến các rủi ro bảo mật có thể có khi mở kết nối HTTP ra thế giới bên ngoài Java cung cấp API lập trình mạng, hỗ trợ giao thức HTTP Ta dễ dàng tạo ra các request GET, POST và HEAD trong ứng dụng Java
2.4 Giới thiệu Mô hình MVC
H 2.03 Mô hình MVC tổng quát
Trang 21Model-• View: Người dùng tương tác với ứng dụng thông qua components View View có trách nhiệm lấy request và gửi yêu cầu đến controller, nhận kết quả
từ controller hiển thị cho người dùng.HTML, JSPs, các thư viện Tag và các File nguồn là các thành phần của components View
• Controller: Là trung gian giữa Model và View, Controller có trách nhiệm nhận yêu cầu từ View sau khi nhận yêu cầu controller sẽ thực thi Business logic thích hợp từ Model, sau đó điều khiển components View xuất dữ liệu cho User.ActionSevlet, Action, ActionForm và Struts-config.XML là các thành phần của Controller
• Model: Đảm nhận nhiệm vụ cung cấp dữ liệu từ cơ sở dữ liệu và lưu thông tin vào CSDL, tất cả các Business đều được thực thi ở Model.Truy xuất dữ
liệu,sự hợp lệ của dữ liệu và data saving logic là các thành phần của Model
2.5 Giới thiệu về JSP (Java Server Pages)
Trang 22Chương ng ng 2: Khái Quát J2ME, j22: Khái Quát J2ME, j22: Khái Quát J2ME, j2EE, MVCEE, MVCEE, MVC, JSP, S, JSP, S, JSP, Servlet và H và H và Hệ Quản Trị
CSDL Firebird
2.5.2 Sơ đồ hoạt động của JSP
H 2.04 Mô hình hoạt động của JSP
2.6 Giới thiệu về Servlet
2.6.1 Khái niệm
Servlet dùng để mở rộng các chức năng của Java-enable server Dùng để thay thế cho CGI Script Servlet chạy trong Java Virtural Machine Không bắt buộc Web browser phải hỗ trợ Java
H 2.05 Sơ đồ hoạt động của Servlet
2.6.2 Đặc điểm Servlet
- Có thể làm việc trên nhiều web servers
- Là công nghệ đầu tiên của Java để tạo ra web Application
Trang 23Chương ng ng 2: Khái Quát J2ME, j22: Khái Quát J2ME, j22: Khái Quát J2ME, j2EE, MVCEE, MVCEE, MVC, JSP, S, JSP, S, JSP, Servlet và H và H và Hệ Quản Trị
CSDL Firebird
- Không nằm trong core Java API mà nằm trong hai package javax.servlet và
java.servlet.http của Java Servlet Development Kit (JSDK)
2.7 Giới thiệu về hệ quản trị CSDL Firebird
2.7.1 Khái niệm
Là một hệ quản trị CSDL do cộng đồng mã nguồn mở phát triển Cung cấp môi trường và công cụ để lưu trữ và truy xuất dữ liệu từ cơ sở dữ liệu một cách hiệu quả
Lưu giữ thông tin về người dùng của hệ quản trị cơ sở dữ liệu và những tác vụ
mà người dùng này có thể tương tác với dữ liệu được lưu trữ
Trang 24Với việc xây dựng thành công ứng dụng này chúng em hy vọng trên thị trường sẽ xuất hiện một loại hình dịch vụ mới cho thiết bị di động Nó sẽ làm cho
cuộc sống của chúng ta ngày càng phong phú hơn
3.2 Qui trình nghiệp vụ của việc mua bán sách
3.2.1 Trên Server
• Cập nhật sách: Khi cần cập nhật sách thì nhân viên có thể đăng nhập vào hệ thống với vai trò là nhân viên cập nhật và cập nhật sách trong database
• Chuyển giao sách đã được đặt mua:
- Nhân viên sẽ đăng nhập vào hệ thống với vai trò là nhân viên lập hóa đơn
và xem các hóa đơn đã được tạo ra, in các hóa đơn cần thiết và chuyển giao cho bộ phận soạn hóa đơn
- Bộ phận soạn hóa đơn sẽ soạn đầy đủ các đầu sách có trong hóa đơn và chuyển ñến cho bộ phận chuyển giao sách
- Bộ phận chuyển giao sách sẽ tiến hành chuyển giao sách cho khách hàng
và thu tiền
- Nếu khách hàng không nhận hoặc chỉ nhận một phần thì sách sẽ được mang về và cập nhật trở lại vào database
Trang 25• Thống kê: Khi cần thiết nhân viên thống kê sẽ thống kê sách tồn kho, sách đã bán, sách cần bổ sung theo yêu cầu
• Phân quyền: Admin sẽ phân quyền, tạo nhóm người dùng khi cần thiết
3.2.2 Trên Client di động
- Vào trang web xem các đầu sách mà trang web đang có
- Chọn sách cần mua và sách đó sẽ được cho vào giỏ hàng
- Nếu người dùng tiếp tục chọn những sách khác thì những sách đó cũng lần lượt được đưa vào giỏ hàng
- Nếu người dùng đổi ý, muốn thay đổi sách đã chọn thì có thể cập nhật lại giỏ hàng của mình
- Người dùng chọn lệnh Thanh Toán và màn hình tiếp nhận thông tin khách hàng xuất hiện, khách hàng tiến hành nhập các thông tin cần thiết
- Khi không hiểu về cách thức thanh toán và chuyển giao sách khách hàng có thể xem hướng dẫn trên trang web
- Khi cần tìm loại sách hoặc sách khách hàng có thể tra cứu trên trang web
3.3 Phân tích và xác định yêu cầu
Dựa trên các yêu cầu về mua bán sách qua thiết bị di động chúng tôi đưa ra các yêu cầu sau:
3.3.1 Danh sách các yêu cầu nghiệp vụ
Server
Nhân viên cập nhật
Nhân viên lập hóa đơn
đơn bán hàng trên server
Trang 26kết quả bán hàng ngày đến ngày, theo khách hàng
Nhân viên thống kê
6 Đọc thông tin hướng dẫn
Trang 273.3.2 Các yêu cầu phi chức năng
• Chương trình chạy trên Client:
- Chương trình phải chạy được trên tất cả các thiết bị di động có
hỗ trợ Internet
- Tốc độ duyệt, tìm kiếm trên thiết bị ở mức chấp nhận được
- Kích thước không quá lớn
- Giao diện dễ sử dụng
• Chương trình chạy trên Server:
- Tốc độ nhanh, bảo mật tốt
- Giao diện dễ sử dụng
Trang 28Statistic book
Show new book list
Show hot book list
Show kind of book list
Chose new book Update chosen book
Enter new kind of book
Update existing kind of book
Update existing author
Enter new author
Enter new publisher
Update existing publisher
Enter new book
Update existing book
Update existing order
Enter new order
Enter new usergroup Update user group
Enter new user
Update user
<<extend>>
Update existing employee
Enter new employee Updating Officer
Order Officer
Admin
Statistic income
Statistic bought book
Statistic book relegation System login
H 3.06 Sơ đồ Use Case tổng thể
Trang 29Update existing order
Enter new publisher
Update existing book Enter new kind of book
System login
Update existing publisher
Enter new author
Enter new book
3.4.2 Sơ đồ Use case cho từng Actor
3.4.2.1 Order Officer (Nhân viên lập hóa đơn)
H 3.07 Sơ đồ Use Case – nhân viên lập hóa đơn
3.4.2.2 Update Officer (Nhân viên cập nhật)
H 3.08 Sơ đồ Use Case – nhân viên cập nhật
Trang 30Update existing user
Enter new usergroup Update existing usergroup
H 3.09 Sơ đồ Use Case – nhân viên quản trị
3.4.2.4 Statistic Officer (Nhân viên thống kê)
H 3.10 Sơ đồ Use Case – nhân viên thống kê
Trang 313.4.2.5 Customer (Khách hàng)
H 3.11 Sơ đồ Use Case – khách hàng
3.4.3 Đặc tả một số Use case tiêu biểu
3.4.3.1 Enter new book
- Hệ thống hiển thị trang Index
- Actor chọn nột dung thực hiện là thêm sách mới
- Hệ thống mở trang thêm sách, các thông tin cần thiết được đưa vào các combobox
- Actor nhập thông tin và chọn lưu
- Hệ thống kiểm tra thông tin đã được nhập
- Hệ thống sẽ tự động phát sinh mã số cho sách mới này
Trang 32- Hệ thống thực hiện thêm thông tin sách vào CSDL
- Hệ thống thông báo thêm thành công hay không thành công
• Điều kiện ban đầu
Actor phải đăng nhập vào hệ thống với vai trò là nhân viên cập nhật hoặc nhà quản trị
• Điều kiện sau khi hoàn thành
Sau khi thêm loại sách mới hệ thống phải thông báo thành công
hay không thành công
• Điểm mở rộng
Không có 3.4.3.2 Update existing book
3.4.3.2.1 Mô tả:
Use case này mô tả chức năng hệ thống hỗ trợ nhân viên cập nhật
trong việc cập nhật thông tin sách (xóa, sửa)
3.4.3.2.2 Dòng sự kiện
• Dòng sự kiện chính
Use case này bắt đầu khi actor chọn liên kết đến trang cập nhật
(sửa, xóa) sách trên trang index
- Hệ thống hiển thị trang cập nhật
- Actor thực hiện tra cứu đến sách cần cập nhật
- Nếu actor chọn sửa hệ thống hiển thị trang Sửa sách, nếu chọn Xóa hệ thống sẽ xóa sách đã chọn
- Kết thúc Use Case
Trang 33- Actor sửa lại những chổ chưa đúng
- Nhân viên cập nhật nhấn nút Sửa
- Hệ thống hỏi lại có chắc chắn thay đổi thông tin sách không?
- Actor sách chọn Yes
- Hệ thống thực hiện sửa thông tin sách này trong CSDL
- Hệ thống thông báo sửa thành công hay không thành công
- Hệ thống thực hiện xóa sách này khỏi CSDL
- Hệ thống thông báo xóa thành công hay không thành công
- Kết thúc use case
• Yêu cầu đặc biệt
Không có
• Điều kiện ban đầu
Actor phải đăng nhập vào hệ thống với vai trò là nhân viên cập nhật hoặc nhà quản trị
• Điều kiện sau khi hoàn thành
Không có
• Điểm mở rộng
Trang 34Không có 3.4.3.3 Statictis book (Thống kê sách)
3.4.3.3.1 Mô tả
Use case này mô tả chức năng của hệ thống hỗ trợ nhân viên thống
kê trong việc thống kê sách trong hệ thống, nhân viên thống kê là acor của use-case này
- Hệ thống tiến hành kiểm tra thông tin đã nhập và thực hiện thống kê
- Hệ thống đọc dữ liệu từ các bảng liên quan
- Hệ thống hiển thị kết quả thống kê ra màn hình
- Nhân viên nhân viên có thể chọn lệnh để in hoặc thoát khỏi màn hình thống kê
• Điều kiện ban đầu
Actor phải đăng nhập vào hệ thống với vai trò là nhân viên thống
kê hoặc nhà quản trị
• Điều kiện sau khi hoàn thành
Không có
• Điểm mở rộng
Không có
Trang 353.4.3.4 Assign permission (Phân quyền người dùng)
- Hệ thống đọc dữ liệu từ các bảng liên quạn
- Actor chọn nhân viên cần phân quyền
- Actor phân quyền cho nhân viên đó
- Actor lưu lại thông tin phân quyền
• Điều kiện ban đầu
Actor phải đăng nhập với vai trò là nhà quản trị
• Điều kiện sau khi hoàn thành
Không có
• Điểm mở rộng
Không có
Trang 36Use case này bắt đầu khi nhân viên đăng nhập vào hệ thống
- Actor nhập tên đăng nhập và mật khẩu hợp lệ
- Hệ thống tiến hành dò tìm các quyền hạn của actor đăng nhập và lưu vào một mảng tạm
- Hệ thống sẽ tiến hành mở các màn hình cũng như menu tương ứng với quyền hạn của actor đăng nhập sau khi đã xét giá trị trong mảng tạm
- Kết thúc Use case
• Dòng sự kiện khác
Khi actor đăng nhập sai tài khoản thì hệ thống thông báo
• Yêu cầu đặc biệt
Không có
• Điều kiện ban đầu
Actor phải có một tài khoản và mật khẩu được lưu trong hệ thống
• Điều kiện sau khi hoàn thành
Không có
• Điểm mở rộng
Không có
Trang 37Enter new boo
Book : Book
Book group .
Author : Author Publisher
Book import .
Book import detai
1: Open
2: Selec Enter new book
3: Open
15: Save 16: Result
4: Submit info
7: Get info
9: Get info
11: Get info 5: Get info
3.4.4 Sơ đồ tuần tự một số Use case tiêu biểu
3.4.4.1 Enter new book (thêm sách mới)
H 3.12 Sơ đồ tuần tự - Thêm sách mới
Trang 383.4.4.2 Statistic book (thống kê sách)
H 3.13 Sơ đồ tuần tự - Thống kê sách
Trang 392: Select update book
3: Open 4: Lookup info
27: Update 28: Update
Trang 403.4.4.4 Assign permission (phân quyền)
H 3.15 Sơ đồ tuần tự - Phân quyền
3.4.4.5 Login (đăng nhập)
: Actor Login : Login : Index : Role
1: Open 2: Submit info
3: Get info 4: Info 5: Open
H 3.16 Sơ đồ tuần tự - Đăng nhập