XÂY DỰNG CỔNG THÔNG TIN CÁ NHÂN HỖ TRỢ TRUY CẬP TỪ THIẾT BỊ DI ĐỘNG Tóm tắt nội dung
Trong tương lai mỗi gia đình đều có một máy tính kết nối Internet. Nối mạng đã trở thành một xu thế. Bằng chứng là sự phát triển như vũ bão của mạng Internet. Nhu cầu về có một cổng thông tin cá nhân trên Internet dành cho mỗi người là một điều kiện thiết yếu. Nó sẽ là một công cụ phục vụ đắc lực cho cuộc sống và cho công việc và là nơi để giới thiệu bản thân với bạn bè khắp nơi trên thế giới. Khái niệm cổng thông tin cá nhân không đồng nghĩa với website cá nhân. Trên thế giới đã có rất nhiều các trang web cho phép tạo các trang web cá nhân một cách dễ dàng. Nhưng những trang web đó chỉ dừng lại ở việc giới thiệu về bản thân, không phục vụ cho công việc của bạn được. Cổng thông tin các nhân mà tác giả muốn đề cập đến là một công cụ phục vụ đắc lực cho cuộc sống và cho công việc. Là một cổng thông tin kết nối các thiết bị di động đối với internet. Cổng thông tin cá nhân ngoài khả năng giới thiệu về bản thân, quản lý và chia sẻ tài liệu phần mềm, cổng thông tin còn có khả năng giao tiếp với các thiết bị di động. Một sự khác biệt lớn nữa là cổng thông tin này đựợc đặt tại các máy tính ở các gia đình. Khi bạn đi công tác ở bất cứ nơi đâu, đều có thể dễ dàng truy cập vào cổng thông tin, để lấy các thông tin, như xem có công văn nào mới, hoặc xem tên các công việc phải làm trong ngày và có thể kiểm tra thông tin về khách hàng trong sổ địa chỉ của hệ thống.
Mục lục :
Lời cảm ơn 3
Tóm tắt nội dung . 4
Mục lục : . 5
Các từ viết tắt 7
CHƯƠNG 1: MỞ ĐẦU 7
I.1 Mục tiêu của hệ thống . 7
I.2 Tổng quan về hệ thống . 8
1.3 Sự cần thiết của cổng thông tin cá nhân . 8
1.4 Các chức năng cổng thông tin sẽ cung cấp9
CHƯƠNG 2: KIẾN THỨC CƠ SỞ . 11
2.1 Giới thiệu về Java Server Page11
2.1.1 Cơ chế hoạt động của Java Server Page(JSP) . 11
2.1.2 Cú pháp cơ bản của Java Server Page . 12
2.2 Giới thiệu về J2ME14
2.2.1 Các ứng dụng của J2ME14
2.2.2 Lịch sử J2ME . 14
2.2.3 Lý do chọn J2ME14
2.2.4Kiến trúc J2ME . 15
2.2.5 Tìm hiểu chương trình J2ME đầu tiên . 17
2.2.6 Các gói hỗ trợ lập trình: . 23
CHƯƠNG 3: XÂY DỰNG CỔNG THÔNG TIN CÁ NHÂN 26
3.1 Mô tả bài toán26
3.2 Biểu đồ ngữ cảnh27
3.3Biểu đồ phân rã chức năng28
3.4 Mô tả chi tiết các chức năng . 28
3.5Biểu đồ luồng dữ liệu hệ thống mức 038
3.7 Thiết kế cơ sở dữ liệu47
3.7.1 Xác định các thực thể . 47
3.7.2 Mô hình quan hệ thực thể50
3.7.3 Cấu trúc chi tiết các bảng . 51
3.8 Chi tiết về một số module của chương trình54
3.9 Một số giao diện của chương trình.63
3.10 Triển khai hệ thống cổng thông tin cá nhân67
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 68
4. 1 Mô tả bài toán . 68
4.2 Biểu đồ phân rã chức năng . 68
4.2.1 Biểu dồ luồng dữ liệu mức 1 chức năng xem công văn . 69
4.2.2 Biểu đồ luồng dữ liệu mức 1 chức năng xem công việc70
4.2.3 Biểu đồ luồng dữ liệu mức 1 chức năng xem sổ địa chỉ . 71
4.3 Mốt số module tiêu biểu . 72
4.4 Một số giao diện của chương trình . 77
4.5 Triển khai chương trình trên thiết bị di động82
Kết luận và phương hướng phát triển tiếp theo 84
Tài liệu tham khảo 85
85 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2279 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Khóa luận Xây dựng cổng thông tin cá nhân hỗ trợ truy cập từ thiết bị di động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
a sẽ tìm hiểu, đó là nền tảng J2ME- Java 2 Platform,Micro Edition.
2.2.2 Lịch sử J2ME
J2ME được phát triển từ kiến trúc Java Card, Embeded Java và Personal Java của phiên bản Java 1.1. Đến sự ra đời của Java 2 thì Sun quyết định thay thế Personal Java và đươc gọi với tên mới là Java 2 Micro Edition, hay viết tắt là J2ME. Đúng với tên gọi, J2ME là nền tảng cho các thiết bị có tính chất nhỏ, gọn.
2.2.3 Lý do chọn J2ME
Lý do chính để chọn J2ME là vì : Java ban đầu được thiết kế dành cho các máy với tài nguyên bộ nhớ hạn chế
. Nhưng sau đó
thị trường của J2ME được mở rộng ra cho nhiều chủng
loại thiết bị như:
Các lọai thẻ cá nhân như Java Card
Máy điện thoại di động
Máy PDA (Personal Digital Assistant - thiết bị trợ giúp cá nhân)
Các hộp điều khiển dành cho tivi, thiết bị giải trí gia dụng …
2.2.4 Kiến trúc J2ME
Phần này sẽ trình bày kiến trúc tổng quát toàn bộ nền tảng Java, để qua đó ta có thể thấy rõ hơn chiến lược về Java của Sun
Hình 3. Kiến trúc tổng quát nền tảng của Java
Giới thiệu các thành phần trong nền tảng J2ME:
Định nghĩa về cấu hình: Cấu hình là đặc tả định nghĩa một môi trường phần mềm cho một dòng các thiết bị được phân loại bởi tập hợp các đặc tính, ví dụ như: Kiểu và số lượng bộ nhớ, kiểu và tốc độ bộ vi xử lý, kiểu mạng kết nối
CLDC (Connected Limited Device Configuration-Cấu hình thiết bị kết nối giới hạn): được thiết kế để nhắm vào thị trường các thiết bị cấp thấp, các thiết bị này thông thường là máy điện thọai di động và PDA với khoảng 512 KB bộ nhớ. Vì tài nguyên bộ nhớ hạn chế nên CLDC được gắn với Java không dây (Java Wireless ), dạng như cho phép người sử dụng mua và tải về các ứng dụng Java, ví dụ như là Midlet.
Cấu hình thiết bị kết nối (CDC- Connected Device Configuration ): CDC đượ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 yếu hơn các hệ thống máy để bàn sử dụng J2SE. Những thiết bị này có nhiều bộ nhớ hơn (thông thường là trên 2Mb) và có bộ xử lý mạnh hơn. Các sản phẩm này có thể kể đến như các máy PDA cấp cao, điện thoại web, các thiết bị gia dụng trong gia đình …
Sơ lược về MIDP
Định nghĩa: Đây là đị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 dòng thiêt bị di động phổ biến nhất như các máy điện thoạI di động và các máy PDA. Tuy nhiên MIDP không phải là cây đũa thần cho mọi lập trình viên vì như chúng ta đã biết, MIDP được thiết kế cho các máy di động có cấu hình rất thấp. Trong phần sau sẽ liệt kê qua các tính năng mà MIDP cung cấp và những giới hạn của nó.
Những chức năng MIDP không thể làm được:
Phép tính dấu phẩy động : Phép tính này đòi hỏi rất nhiều tài nguyên CPU và phần lớn các CPU cho các thiết bị di động không hỗ trợ phép tính này, do đó MIDP cũng không có.
Bộ nạp lớp
Việc “dọn dẹp“ tài nguyên trước khi nó bị xóa được đẩy về phía các lập trình viên.
Không hỗ trợ JNI
Hỗ trợ hạn chế thao tác bắt lỗi.
Phần lớn các thư viện API cho Swing và AWT không thể sử dụng được trong MIDP.
Không hỗ trợ các tính năng quản lý file và thư mục: Đây có thể làm bạn ngạc nhiên nhưng thực tế là các thiết bị J2ME không có hỗ trợ các thiết bị lưu trữ thông thường như ổ cứng v.v. Tuy nhiên, điều đó không có nghĩa là bạn phải mất đi mọi dữ liệu quan trọng mỗi khi tắt máy, Sun đã cung cấp một chức năng khác tương đương gọi là Record Management system (RMS) để cung cấp khả năng lưu trữ cho các thiết bị này.
Những chức năng MIDP cung cấp:
Các lớp và kiểu dữ liệu: Phần lớn các lớp mà các lập trình viên Java quen thuộc vẫn còn được giữ lại ví dụ như các lớp trong gói java.util như Stack, Vector và Hastable cũng như Enumeration. Trong phần phụ lục, ta sẽ liệt kê các gói cũng như số lượng của chúng được hỗ trợ trong môi trường J2ME bao gồm CLDC, CDC và MIDP.
Hỗ trợ đối tượng hiển thị: Đúng như tên gọi một chương trình MIDP sẽ hỗ trợ duy nhất một đối tượng hiển thị là đối tượng quản lý việc hiển thị dữ liệu trên màn hình điện thoại.
Hỗ trợ Form và các giao diện người dùng.
Hỗ trợ Timer và Alert
Cung cấp tính năng Record Management System (RMS) cho việc lưu trữ dữ liệu
2.2.5 Tìm hiểu chương trình J2ME đầu tiên
Thiết lập môi trường lập trình:
Cài đặt:
Bạn cần cài đặt bộ J2SE vào máy tính của bạn. Ta giả sử là đang sử dụng Windows 2000 phiên bản Professional.
Địa chỉ tải J2SE về là việc cài đặt này khá dễ dàng nên không đi vào chi tiết, giả sử là bạn cài đặt ở thư mục j2sdk1.4.0_03 ở thư mục gốc ổ đĩa C
Thiết lập giá trị cho các biến môi trường:
Bạn vào Control Panel -> System -> chọn tab Advanced, click vào nút Environment Variables. Bạn thêm giá trị JAVA_HOME với giá trị là c:\j2sdk1.4.0_03.
Thiết lập đường dẫn:Cũng vẫn ở trong cửa sổ Environment Variables. Thêm giá trị c:\j2sdk1.4.0_03\bin vào biến môi trường Path
Cài đặt J2ME Wireless Toolkit
Đây là bộ công cụ do Sun phát triển, giúp các lập trình viên có thể test và chạy thử chương trình của mình mà không cần phải có máy điện thoại thật. Bạn đọc có thể lấy bộ công cụ này về từ địa chỉ
Chú ý là phải đăng ký thành viên trước khi download. Việc đăng ký này là hoàn toàn miễn phí. Để cài đặt, bạn làm theo hướng dẫn của chương trình. Tác giả giả sử bạn sẽ cài đặt vào thư mục Wtk104 trên thư mục gốc ổ đĩa C
Sau khi cài đặt thành công, bạn sẽ có thư mục chương trình trong menu Start như hình vẽ
Để chạy bộ Tool Kit này, bạn chọn Ktoolbar. Nếu mọi việc suôn sẻ, bạn sẽ thấy cửa bộ chính hiện ra
Chúc mừng bạn, bạn đã sẵn sàng cho việc viết chương trình cho chiếc điện thoại của mình
Tìm hiểu chương trình đầu tiên:
Sau khi hoàn thành các các bước ở trên, đây là lúc bắt đầu viết những dòng code đầu tiên.
Bạn nhấp chuột vào nút bấm New Project và nhập vào tên Project và Class mà bạn muốn tạo, ví dụ TestMidlet. Chú ý là bạn không nhất thiết phải tạo trùng tên class với tên Project.
Trên cửa sổ chương trình sẽ hiển thị các thông báo về việc tạo các thư mục phục vụ cho việc xây dựng và thực thi mã chương trình
Bạn hãy dùng Windows Explorer để xem xét các thư mục vừa tạo
ToolKit sẽ tự động tạo 1 thư mục con trong thư mục apps có tên trùng với tên Project mà bạn vừa tạo, trong trường hợp này là TestMidlet. Ta hãy điểm sơ qua vài thư mục quan trọng.
bin: Chứa 2 file để cài đặt,.Jar ( Java ARchive) và file miêu tả.jad
lib: Chứa các thư viện bổ sung mà bạn muốn thêm vào chương trình
res: là thư mục để bạn để các file tài nguyên dành riêng cho chương trình như file văn bản và hình ảnh.
src: Đây là thư mục quan trọng nhất, là nơi bạn đặt các file chứa mã nguồn
Ngòai ra, khi chạy chương trình bộ Toolkit này còn tạo ra một số thư mục để dành mục đích riêng.
Bây giờ là đến lúc bắt đầu viết mã chương trình. Bạn hãy dùng 1 chương trình sọan thảo văn bản nào đó và viết đọan code sau
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class TestMidlet
extends MIDlet
implements CommandListener {
private Form mMainForm;
public TestMidlet() {
mMainForm = new Form("Chuong trinh so 1");
mMainForm.append(new StringItem(null, "Chao cac ban, MIDP!"));
mMainForm.addCommand(new Command("Exit", Command.EXIT, 0));
mMainForm.setCommandListener(this);
}
public void startApp() {
Display.getDisplay(this).setCurrent(mMainForm);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c, Displayable s) {
notifyDestroyed();
}
}
Sau đó, hãy lưu đoạn code trên vào file tên là TestMidlet.java trong thư mục src.
Sau đó bấm vào nút Build, nếu code của bạn không bị lỗi, bạn sẽ nhận được thông báo sau
Project settings saved
Building "TestMidlet"
Build complete
Nhấn nút Run để chạy Emulator, chọn TestMidlet
Nếu bạn thấy trên máy bạn xuất hiện hình như hình vẽ bên dưới thì xin chúc mừng bạn. Chương trình J2ME đầu tiên đã chạy thành công
Tìm hiểu chi tiết mã nguồn:
Giống như dạng chương trình Applet trên J2SE, một Midlet luôn luôn kế thừa javax.microedition.midlet
Hàm cơ bản nhất trong mọi Midlet là startApp(), hàm này sẽ khởi tạo Midlet cũng như vận hành các thành phần hoặc đối tượng khác, ngoài startApp(), mỗi Midlet còn có pauseApp() và destroyApp(), mỗi hàm này sẽ đựợc gọi thực thi tương ứng khi user chọn dừng hoặc thoát chương trình.
Màn hình thật sự trên điện thọai di động được hình tượng hóa bằng đối tượng Display. Mỗi Midlet chỉ có một và duy nhất một đối tượng Display, mà bạn có thể truy cập bằng cách dùng lệnh getDisplay(this)
2.2.6 Các gói hỗ trợ lập trình:
Bảng 1: Tổng số class và interface trong CLDC
Tên gói
Miêu tả
Số lượng class và interface
java.io
Quản lý việc xuất nhập của hệ thống
18
java.lang
Các lớp Java cơ bản
38
java.util
Các lớp hỗ trợ việc tính thời gian, quản lý tập hợp v.v
10
javax.microedition
Quản lý kết nối
10
Bảng 2: Các lớp bổ sung trong MIDP 1.0
Tên gói
Miêu tả
Số lượng class và interface
javax.microedition.rms
Quản lý việc lưu trữ dữ liệu
10
javax.microedition.midlet
Giao diện trung gian giữa Midlet và môi trường Midlet đang chạy
2
javax.microedition.io
Hỗ trợ HTTP
1
javax.microedition.lcdui
Hỗ trợ giao diện người dùng
24
Bảng 3: Tổng số class và interface trong CDC
Tên gói
Miêu tả
Số lượng class và interface
java.io
Quản lý việc xuất nhập của hệ thống
62
java.lang
Các lớp Java cơ bản
77
java.lang.ref
Các lớp hỗ trợ bộ thu gom “rác” của JVM
5
java.lang.reflect
Hỗ trợ tính năng reflection trong Java
12
java.math
Hỗ trợ các phép tính trong toán học
1
java.net
Hỗ trợ mạng
23
java.security
Cung cấp các tính năng bảo mật
36
java.security.cert
Hỗ trợ các chứng thực trong bảo mật
4
java.text
Cung cấp các lớp hỗ trợ thao tác trên text
13
java.util
Các lớp hỗ trợ việc tính thời gian, quản lý tập hợp v.v
47
java.util.jar
Hỗ trợ thao tác trên file Jar
7
java.util.zip
Hỗ trợ thao tác trên file Zip
9
javax.microedition
Quản lý kết nối
10
CHƯƠNG 3: XÂY DỰNG CỔNG THÔNG TIN CÁ NHÂN
3.1 Mô tả bài toán
Cổng thông tin cá hỗ trợ truy cập từ thiết bị di động là một sự kết hợp cần thiết giữa một cổng thông tin cá nhân và khả năng cho phép truy cập từ thiết bị di động. Cổng thông tin cá nhân quản lý các thông tin liên quan đến cá nhân. Các thông tin đó bao gồm các thông tin về công việc, các tài liệu, phần mềm, sổ địa chỉ, các thông tin giới thiệu về bản thân…Cổng thông tin cá nhân thực hiện nhiệm vụ lưu trữ, sắp xếp các thông tin cá nhân đó một cách khoa học nhất và dễ dàng cho tìm kiếm và lưu trữ. Ngoài khả năng lưu trữ cổng thông tin cá nhân còn cho phép truy cập bằng rất nhiều cách khác nhau. Ta có thể truy cập cổng thông tin từ bất kỳ nơi đâu trên thế giới chỉ vói một chiếc máy tính kết nối Internet. Khi truy cập vào cổng thông tin cá nhân sẽ tạo cho ta cảm giác như đang ngồi tại máy tính ở nhà, bởi vì ở đó có tất cả các thông tin cần thiết phục vụ cho công việc và một điều thật đặc biệt là thông tin đó có thể truy cập từ bất kỳ nơi đâu với sự trợ giúp của Internet. Ta cũng có thể truy cập cổng thông tin từ thiết bị di động. Khi thiết bị di động truy cập vào cổng thông tin cá nhân có thể xem công văn, xem thông tin về công việc trong ngày và tra cứu điạ chỉ của một ai đó. Các dịch vụ truy cập đó có thể mở rộng ra rất nhiều các dịch vụ khác.Các thiết bị di động đang ngày càng trở nên phổ biến, vì thế mà thiết bị di động cũng đang trở thành một vật dụng cho phép truy cập thông tin hữu dụng mọi lúc mọi nơi.
3.2 Biểu đồ ngữ cảnh
Hình bên dưới là mô tả biểu đồ ngữ cảnh của hệ thống cổng thông tin cá nhân
Hình 4. Biểu đồ ngữ cảnh CTTCN
Download
& xem thông tin
Xem thông tin
Yêu cầu truy cập
Download tài liệu
Thông tin địa chỉ
Lấy thông tin sổ địa chỉ
Lấy thông tin công việc
Truy cập thông tin từ thiết bị di động
Upload tài liệu
Viết bài trên forum
Download
Tai liệu và phần mềm
Cổng thông tin cá nhân
Guest
Friend
Admin
Máy di động
Công văn
Thông tin công việc
Biểu đồ phân rã chức năng
Cổng thông tin
1. Lập lịch
2.Sổ địa chỉ
3.Hỗ trợ truy cập mobile
4.Chia sẻ tài liệu
5.Forum
6.Upload ảnh
7. Quản trị hệ thông
Hình 5. Biểu đồ phân rã chức năng
Cổng thông tin cá nhân gồm các chức năng sau:
Lập lịch
Lưu thông tin sổ địa chỉ
Hỗ trợ truy cập mobile
Chia sẻ tài liệu
Forum
Upload Ảnh
Quản trị hệ thống
3.4 Mô tả chi tiết các chức năng
1. Chức năng lập lịch
Chức năng hỗ trợ cho lập lịch cá nhân. Các công việc được lập ra trước sau đó xem lại để tránh không quên bất cứ một công việc nào mà định làm trong ngày.
1.0. Lập lịch
1.1. Tạo mới công việc
1.2. Xem công việc
1. 3.Xóa
1.4 Chỉnh sửa
1. Tìm kiếm
Hình 6. Biểu đồ phân rã chức năng lập lịch
Mô tả chi tiết các mức dưới của chức năng lập lịch
Tạo mới công việc
Để tạo mới một công việc, đầu tiên chọn thời gian mà công việc cần được làm.Thời gian có thể là trong ngày hoặc có thể là một ngày trong tương lai, nếu là ngày trong tương lai thì đến ngày đó thì hệ thống sẽ hiện ra công việc đã lập để nhắc nhở bạn. Sau đó ghi tên của công việc. Và ghi nội dung của công việc cần làm. Thường thì các công việc của một ngày thường được lập từ tối hôm trước, ngày hôm sau ta chỉ cần xem vào đó để thực hiện các công việc đã được lập từ trước. Nếu một ngày có khoảng 10 cuộc hẹn gặp thì bạn sẽ không thể nhớ hết được và dễ dàng bỏ quên một cuôc gặp nào đó. Chức năng này sẽ rất hữu ích cho bạn.
Xem công việc
Sau khi tạo xong có thể xem tất cả các công việc đã lập. Hệ thống chỉ hiển thị các công việc của chính ngày hôm đó, nếu công việc được lập từ ngày hôm trước, hoăc cho một ngày trong tương lai thì không thể xem được trong ngày hiện tại. Tức là hệ thống chỉ hiển thị công việc của ngày hôm đó, điều này giúp dễ dàng cho việc xem và thực hiện.
Xóa công việc
Xóa một công việc, ví dụ như bạn cần hủy bỏ một công việc nào đó trong ngày thì chỉ cần xóa công việc đó.
Chỉnh sửa một công việc
Chức năng này dùng chỉnh sửa nội dung của công việc đã lập. Nội dung chỉnh sửa có thể là về thời gian thực hiện công việc, hoặc có thể thay đổi nội dung của một công việc.
Tìm kiếm
Chức năng tìm kiếm hỗ trợ nhiều định dạng tìm kiếm. Ví dụ như tìm kiếm theo thời gian (ta có thể nhập vào một thời gian cụ thể hoặc có thể nhập vào một khoảng thời gian ) , tìm kiếm theo tên công việc ...
2. Chức năng sổ địa chỉ
Chức năng này lưu trữ sổ địa chỉ của bạn bè, người thân, đối tác làm ăn. Việc lưu trữ giúp dễ dàng cho việc xem và tra cứu. Hình bên dưới phân rã các mức nhỏ hơn bên trong chức năng sổ địa chỉ.
2.0. Sổ địa chỉ
2.1. Tạo mới địa chỉ
2.2. Xem
2. 3.Xóa
2.4 Chỉnh sửa
2.5 Tìm kiếm
Hình 7. Biểu đồ phân rã chức năng sổ địa chỉ
Mô tả chi tiết các mức dưới của chức năng sổ địa chỉ
Tạo mới một địa chỉ
Bạn có thể tạo mới một địa chỉ bằng cách điền đầy đủ các thông tin của người cần tạo. Các thông tin gồm có họ và tên, số điện thoại, địa chỉ, nơi công tác, thời gian có thể gặp…
Xem địa chỉ
Danh sách của địa chỉ sẽ được liệt kê theo thứ tự chữ cái. Để xem một địa chỉ bạ chọn vào địa chỉ đó hệ thống sẽ hiển thị các thông tin chi tiết về đối tượng đó.
Xóa địa chỉ
Xóa một địa chỉ cũ
Chỉnh sửa địa chỉ
Sửa một địa chỉ
Tìm kiếm địa chỉ
Chức năng tìm kiếm hỗ trợ nhiều định dạng tìm kiếm ví dụ như theo họ và tên hoặc tìm kiếm theo địa chỉ email, tìm kiếm theo nơi ở …
3. Hỗ trợ truy cập mobile
Module này thiết kế nhằm hỗ trợ cho phép truy cập từ thiết bị di động. Cụ thể nó cung cấp các dịch vụ truy cập công văn, truy cập thông tin công việc, truy cập sổ địa chỉ. Hình dưới đây sẽ liệt kê chi tiết các chức năng đó
3.0. Hỗ trợ truy cập mobile
3.1. Truy cập công văn
3.2. Truy cập thông tin công việc
2. 3.Truy cập sổ địa chỉ
Hình 8. Biểu đồ phân rã chức năng hỗ trợ truy cập mobile
Chức năng hỗ trợ truy cập Mobile nhằm cung cấp nguồn thông tin cho thiết bị mobile khi có nhu cầu truy cập thông tin từ cổng thông tin. Phần tiếp theo sẽ nói rõ chi tiết hơn về các chức năng nhỏ bên trong chức năng lớn.
Truy cập công văn
Khi có yêu cầu truy cập công văn từ máy di động, module sẽ truy cập vào hệ thống để lấy thông tin về công văn. Trong khoa luận tác giả tạo ra một module giả lập việc tạo và nhận công văn, khi triển khai thực có thể làm như sau. Có thể yêu cầu admin của hệ thống quản lý công văn cho phép truy cập vào cơ sở dữ liệu của họ, hoặc là yêu cầu họ cung cấp một module (đầu vào là username và pass của người dùng, đầu ra là các dữ liệu về công văn của người đó).
Truy cập thông tin công việc
Cung cấp thông tin về thông tin công việc của thiết bị di động.
Truy cập sổ địa chỉ
Cung cấp thông tin về sổ địa chỉ.
4. Chia sẻ tài liệu
Chức năng giúp cho người dùng dễ dàng xem và download tài liệu và phần mềm. Tài liệu được lưu theo theo các nhóm (catalog). Cách bố trí này giúp dễ dàng cho việc tìm kiếm. Hình bên dưới là phân rã các chức năng nhỏ bên trong chức năng chia sẻ tài liệu
4.0. Chia sẻ tài liệu
4.1. Xem và download
4.2. Upload tài liệu
4. 3.Tìm kiếm
4.4 Xóa
Hình 9. Biểu đồ phân rã chức năng chia sẻ tài liệu
Xem và download
Tài liệu được sắp xếp theo nhóm, chọn một nhóm sẽ hiển thị ra chi tiết các tài liệu. Chọn một tài liệu sẽ có các thông tin chi tiết về tài liệu đó (gồm các thông tin tên tài liệu, thời gian gửi, mô tả nội dung tài liệu…) và có button cho phép download tài liệu đó một cách dễ dàng.
Upload tài liệu
Tài liệu cũng được upload theo nhóm. Trước tiên là chọn file cần upload (hỗ trợ nút Browser dễ dàng cho việc chọn). Sau đó chọn nhóm tài liệu, vị dụ tài liệu hiện đinh upload là một tài liệu về tin học thì chọn nhóm tin học. Sau đó mô tả tóm tắt nội dung của tài liệu. Sau đó quá trình đưa dữ liệu lên server được tiến hành.
Xóa một tài liệu
Xóa các tài liệu không cần thiết, để dành không gian cho các tài liệu mới.
Tìm kiếm tài liệu
Chức năng tìm kiếm hỗ trợ rất nhiều kiểu tìm kiếm, tìm kiếm theo tên tài liệu, theo nội dung, theo ngày gửi.
5. Forum
5.0. Forum
5.1. Tạo một chủ đề
5.2. Viết bài
5. 3.Trả lời
5.4 Xóa
5.5 Tìm kiếm
Hình 10. Biểu đồ phân rã chức năng forum
Cho phép trao đổi thông tin cùng bạn bè
Tạo chủ đề mới
Chức năng giúp tạo ra một chủ đề mới trên diễn đàn. Diễn đàn gồm nhiều chủ đề. Trong mỗi chủ đề người viết có thể bàn luận về vấn đề đó.
Form view
Module tạo chủ đề
CSDL
Tên chủ đề mới
Thực hiện chèn chủ đề mới
Module tạo chủ đề mới:
Input: (Tên chủ đề)
Output: thực hiện chèn vào CSDL chủ đề mới
Viết bài
Chọn một chủ đề cần tranh luận, sau đó chọn viết bài trong chủ đề đó. Một topic có thể gồm nhiều bài viết.
Form view
Module tạo bài viết
CSDL
Nội dung bài viết mới
Thực hiện chèn bài viết mới
Tên của chủ đề
Module tạo bài viết:
Input: (tên chủ đề, nội dung bài viết mới)
Output: thực hiện lệnh chèn vào CSDL
Trả lời
Một bài viết được đưa ra có thể nhiều người cùng tranh luận. Cùng một bài viết có thể có nhiều người cùng trả lời. Để trả lời (Reply) một bài viết, khi xem xong bài viết người dùng chọn nút reply hệ thống sẽ hiển thị ra một form mới cho phép nhập liệu.
Form view
Module Reply
CSDL
id bài viết cần trả lời
Thực hiện chèn vào CSDL
Module Reply:
Input: id của bài viết cần trả
Output: thực hiện chèn bài viết trả lời vào CSDL
Xóa bài viết
Chức năng sẽ thực hiện xóa các bản ghi khi không còn cần thiết. Quá trính xử lý khi xóa một bản ghi.
id bài viết
Form view
Module xóa
CSDL
Thực hiện xóa
Module xóa: Input : id bài viết
Output: thực hiện lệnh SQL xóa bài viết có id truyền vào
Tìm kiếm bài viết
Chức năng yêu cầu người dùng nhập vào từ khóa cần tìm kiếm, hệ thống sẽ trả về các bản ghi phù hợp.Quá trình xử lý tìm kiếm như sau.
Form tìm kiếm
Module truy vấn
Từ khóa tìm kiếm
CSDL
Thực hiện truy vấn
Các bản ghi phù hợp
Các bản ghi phù hợp
Module truy vấn : Input : từ khóa
Output: các bản ghi phù hợp
6. Upload ảnh
Chức năng giúp đưa ảnh lên cổng thông tin, ảnh sẽ được upload một cách dễ dàng
6.0. Upload ảnh
6.1. Upload
6.2. Xem
6. 3.Xóa
6.4 Tim kiếm
Hình 11. Biểu đồ phân rã chức năng upload ảnh
Phần tiếp theo sẽ mô tả chi tiết các mức bên dưới cả chức năng upload ảnh
Upload ảnh
Để upload ảnh, đầu tiên cần chọn ảnh cần upload. Nhập tên hiển thị của ảnh và có thể viết một vài chú thích về bức ảnh. Sau đó chọn nút upload, quá trinh upload sẽ được tiến hành. Quá trình upload được xử lý gồm 2 quá trình.
Quá trình 1: Thực hiện đưa ảnh lên máy server
Quá trình 2: thực hiện chèn các thông tin về bức ảnh vào CSDL(Tiêu đề, chú thích, Thời gian)
Xem ảnh
Hiển thị các bức ảnh đã được upload lên cổng thông tin.Có thể xem chi tiết một bức ảnh bằng cách chọn vào đường link “Tiêu đề ”. Khi đó id của ảnh đó sẽ được truyền đến module thực hiện cho phép xem ảnh một cách chi tiết. Bao gồm các thông tin như thời gian upload, các chú thích về bức ảnh.
Xóa ảnh
Đánh dấu vào bức ảnh cần xóa, sau đó chọn nút xóa, id của bức ảnh đó sẽ được truyền đến module thực hiện chức năng xóa ảnh. Quá trình xóa một bức ảnh sẽ diễn ra ở module đó.
Tìm kiếm ảnh
Chức năng này hỗ trợ tìm kiếm một cách thuận tiện nhất. Để tìm kiếm đầu tiên phải nhập tữ khóa tìm kiếm vào, sau từ khóa đó được chuyển đến module thực hiện chức năng tìm kiếm. Module này thực hiện tìm kiếm trong CSDL. Kết quả tìm kiếm sẽ đựợc trả về và hiển thị lên form các bức ảnh thỏa mãn điều kiện tìm kiếm.
7. Quản trị hệ thống
Khi hệ thống bước đầu được xây dựng thì tác giả mới chỉ đặt 3 chức năng, khi hệ thống được mở rộng tích hợp thêm nhiều dịch vụ thì các chức năng quản trị hệ thống sẽ được tăng lên.
7.0. Quản trị hệ thống
7.1. Tạo mới user
7.2. Tạo nhóm tài liệu
7. 3.Xóa nhóm tài liệu
Hình 12. Biểu đồ phân rã chức năng quản trị hệ thống
Phần tiếp theo sẽ mô tả chi tiết các chức năng đã trình bày trong hình vẽ
Tạo mới user
Để tạo mói user cần nhập đầy đủ các thông tin về user đó như họ và tên, username, pass…… Sau đó chọn nút tạo mới. Quá trình xử lý tiếp theo sẽ lấy các thông tin mà ta vừa chèn và thực hiện chèn vào CSDL.
Tạo nhóm tài liệu
Tài liệu trong hệ thống được tổ chức thành các nhóm, mỗi nhóm có tên khác nhau.Để tạo một nhóm tài liệu mới, cần cho biết tên nhóm mói cần tạo và quá trinh tiếp theo hệ thống sẽ chèn tên nhóm mới vào bảng nhóm tài liệu.
Xóa nhóm tài liệu
Chọn tên nhóm cần xóa. Sau đó chọn nút xóa. Dữ liệu trong nhóm đó sẽ bị xóa hết cùng với tên nhóm đó. Quá trình xóa sẽ diễn ra theo 2 quá trình
Quá tình 1: Xóa tất cả các tài liệu trong nhóm
Quá trình 2: Xóa tên nhóm
Biểu đồ luồng dữ liệu hệ thống mức 0
Hình 11 trình bày về biểu đồ luồng dữ liệu mức 0 của hệ thống
Upload
Viết bài
Xem
Xem
Yêu cầu Upload tài liệu
Tạo nhóm tài liệu
Y/c quản lý
Y/c thông tin công việc
Công văn
Y/c truy cập công văn
Đọc
Ghi
Kết quả tìm kiếm
Yêu cầu tìm kiếm
Yêu cầu tạo địa chỉ
Đọc
Xem thông tin
Yêu cầu tìm kiếm
Yêu cầu lập lịch
1.0
Lập lịch
2.0
Sổ địa chỉ
3.0
Hỗ trợ truy cập mobile
4.0
Chia sẻ tài liêu
5.0
Forum
6.0
Upload ảnh
7.0
Quản trị hệ thống
Máy di động
Kết quả tìm kiếm
Scheduled
Ghi
AddressBook
Yêu cầu xóa
Cong_Van
Scheduled
Thông tin công việc
Y/c truy cập sổ địa chỉ
Thông tin địa chỉ
Admin
Tạo mới người dùng
Xóa nhóm
yêu cầu báo cáo
báo cáo
User
Document_Group
Guest
Document
Message
Photo
Yêu cầu upload
Guest
Xem
Guest
Xem & download
Friend
Xem
Friend
Download
Xem
Friend
xem
Hình 13. Biểu đồ luồng dữ liệu mức 0
5.0
Forum
3.6 Biểu đồ luồng dữ liệu mức 1
3.6.1 Chức năng lập lịch
Xem
Xem
Cập nhật
Chỉnh sửa
Y/c tìm kiếm
Xóa bản ghi
xóa
Đọc dữ liệu
Y/c xem
Ghi
Y/c tạo mới
1.1
Tạo mới công việc
1.2
Xem công việc
1.3
Xóa
1.4
Chỉnh sửa
1.5
Tìm kiếm
Admin
Kết quả
Scheduled
Kết
quả
Kết quả
Scheduled
Kết quả tìm kiếm
Đọc bản ghi
Thông tin cập nhật
Scheduled
Đọc
Guest
Friend
Hình 14. Biểu đồ luồng dữ liệu mức 1 chức năng lập lịch
Đối tượng truy cập là admin, guest, friend.
3.6.2 Chức năng sổ địa chỉ
Đối tượng truy cập là admin.
Cập nhật
Chỉnh sửa
Y/c tìm kiếm
Xóa bản ghi
xóa
Đọc dữ liệu
Y/c xem
Ghi
Y/c tạo mới
2.1
Tạo mới địa chỉ
2.2
Xem
2.3
Xóa
2.4
Chỉnh sửa
2.5
Tìm kiếm
Admin
Kết quả
AddressBook
Kết
quả
Kết quả
AddressBook
Kết quả tìm kiếm
Đọc bản ghi
Thông tin cập nhật
AddressBook
Đọc
Hình 15. Biểu đồ luồng dữ liệu mức 1 chức năng sổ địa chỉ
3.0. Hỗ trợ truy cập mobile
3.1. Truy cập công văn
3.2. Truy cập thông tin công việc
3. 3.Truy cập sổ địa chỉ
3.6.3 Chức năng hỗ trợ truy cập mobile
Kết quả tìm kiếm
k.q
tìm kiếm
Y/c truy cập sổ địa chỉ
Đọc
TT địa chỉ
Y/c tìm kiếm
Y/c tìm kiếm
Công việc đã lập
Y/c truy cập tt công việc
Y/c truy cập công văn
3.1
Truy cập công văn
3.2
Thông tin công việc
3.3
Truy cập
Sổ địa chỉ
Mobile
Công văn
Kết quả tìm kiếm
Y/c tìm kiếm
Cong_Van
Đọc
Scheduled
Scheduled
Hình 16. Biểu đồ luồng dữ liệu mức 1 chức năng hỗ trợ truy cập mobile
4.0. Chia sẻ tài liệu
4.1. Xem và download
4.2. Upload tài liệu
4. 3.Tìm kiếm
4.4 Xóa
3.6.4 Chức năng chia sẻ tài liệu
Y/c download
4.1
Xem và Download
4.2
Upload tài liệu
4.3
Tìm kiếm
4.4
Xóa
Admin
File download
Y/c Upload
Trạng thái upload
Y/c tìm kiếm
k.q tìm kiếm
Y/c xóa
Thông báo trạng thái xóa
Document
Đọc
Document
Document_Group
Ghi
Ghi
Document
Document
Đọc
Xóa bản ghi
Hình 17. Biểu đồ luồng dữ liệu mức 1 chức năng chia sẻ tài liệu
5.0. Forum
5.1. Tạo một chủ đề
5.2. Viết bài
5. 3.Trả lời
5.4 Xóa
5.5 Tìm kiếm
3.6.5 Chức năng forum
Kết quả
5.1
Tạo một chủ đề
Message
5.2
Viết bài
5.3
Trả lời
5.4
Xóa
Admin
Y/c tạo một chủ đề mới
Ghi
Y/c viết bài
Form mới
Id của msg
Trả lời của msg
Message
Message
Ghi
Ghi
Guest
Viết bài
Friend
Viết bài
5.5
Tìm kiếm
Message
Xóa bản ghi
Đọc bản ghi
Hình 18. Biểu đồ luồng dữ liệu mức 1 chức năng forum
Message
6.0. Upload ảnh
6.1. Yêu cầu upload
6.2. Xem kết quả
6. 3.Xóa
6.4 Tim kiếm
3.6.6 Chức năng upload ảnh
Photo
Ghi
Photo
Đọc
6.1
Yêu cầu upload
6.2
Xem kết quả
6.4
Tìm kiếm
6.3
Xóa
Admin
Y/c upload
Kết quả
Y/c xem
Danh sách tài liệu
Y/c Tìm kiếm
k.q Tìm kiếm
Y/c xóa
Trạng thái xóa
Photo
Hình 19. Biểu đồ luồng dữ liệu mức 1 chức năng upload ảnh
3.6.7 Chức năng quản trị hệ thống
7.0. Quản trị hệ thống
7.1. Tạo mới user
7.2. Tạo nhóm tài liệu
7. 3.Xóa nhóm tài liệu
7.1
Tạo mới User
7.2
Tạo nhóm tài liệu
7.3
Xóa nhóm tài liệu
Admin
Y/ c tạo mới
Hiển thị user vừa tạo
Y/ c tạo nhóm
Nhóm mới tạo
Y/ c xóa
TT
nhóm
vừa
xóa
User
ghi
Document_Group
ghi
Document
Xóa bản ghi
Xóa bản ghi
Hình 20. Biểu đồ luồng dữ liệu mức 1 chức năng quản trị hệ thống
3.7 Thiết kế cơ sở dữ liệu
3.7.1 Xác định các thực thể
Thực thể Sổ địa chỉ (Bảng: AddressBook)
Các thuộc tính
IdAddress (int, PK)
HoVaTen (nchar, 50)
Phone (char, 15)
NoiCongTac(nchar, 100)
DiaChiNhaRieng (nchar, 100)
Email(char, 50)
Fax(char, 16)
ThoiGianGap(char, 20)
ThongTinKhac (ntext)
Thực thể Công văn (Bảng: Cong_Van)
Các thuộc tính:
idCongVan (int,PK)
Nguoi_Gui (char, 20)
Nguoi_Nhan (char, 20)
Tieu_De (nchar, 100)
Noi_Dung (ntext)
Thoi_Gian_Gui (char, 20)
Thực thể nhóm tài liệu (Bảng: Nhom_Tai_Lieu)
Các thuộc tính:
NhomID (int, PK)
TenNhom (nchar, 30)
MoTa (ntext)
Thực thể ảnh (Bảng: Photo)
Các thuộc tính:
idPhoto (int, PK)
TenAnh (char, 50)
TieuDe (char, 50)
MoTa (ntext)
ThoiGian (char, 30)
Thực thể tài liệu (Bảng : TaiLieu)
Các thuộc tính
MaTaiLieu (int, PK)
TenTaiLieu (nchar, 50)
MaNhom (int, 4, FK(Nhom_Tai_Lieu))
MoTa (ntext)
ThoiGianCapNhat (char, 20)
Thực thể người dùng(Bảng: User)
Các thuộc tính:
Ma_Người_Dung (int )
Ten (nchar,100)
Ten_Dang_Nhap (char, 20)
Mat_Khau (char 20)
Ma_Quyen (int, 4)
Email (char, 20)
Thực thể quyền (Bảng : Quyền)
Các thuộc tính:
MaQuyen (int, 4)
Ten_Quyen (nchar,100)
Mo_Ta (ntext, 16)
Thực thể message (Bảng : message)
Các thuộc tính:
Message_id (int, PK)
Message_parent_id (int)
Topic (varchar,100)
Author (varchar, 100)
Date_enter (datetime, 8)
Message (varchar, 100)
Thực thể ScheduledTask (Bảng: ScheduledTask)
Các thuộc tính:
idTask (int, PK)
Ten_Cong_Viec (nchar, 100)
Noi_Dung (ntext)
Thoi_Gian (char, 50)
3.7.2 Mô hình quan hệ thực thể
User
Quyền
Có
TaiLieu
Nhom_Tai_Lieu
Thuộc
Message
Photo
Download
Download
Download
Viết
Download
Upload
Hình 21. Mô hình quan hệ thực thể
3.7.3 Cấu trúc chi tiết các bảng
AddressBook
Field
Type
Attributes
Null
Default
Extra
IdAddress
Int(4)
No
Auto_increment
HoVaTen
Nchar(50)
No
Phone
Char(15)
Yes
0000
NoiCongTac
Nchar(100)
No
DiaChiNhaRieng
Nchar(100)
No
Email
Char(50)
No
Fax
Char(16)
Yes
0000
ThoiGianGap
Char(20)
Yes
Buoi toi
Thong tin khac
Ntext
Yes
Khong co
Cong_van
Field
Type
Attributes
Null
Default
Extra
idCongVan
Int(4)
No
Auto_increment
Nguoi_Gui
Char(20)
No
Nguoi_Nhan
Char(20)
No
Tieu_De
Nchar(100)
No
Noi_Dung
Ntext
Thoi_Gian_Gui
Nchar(20)
No
Nhóm_Tai_lieu
Field
Type
Attributes
Null
Default
Extra
NhomID
Int(4)
No
Auto_increment
TenNhom
Nchar(30)
No
MoTa
Ntext
Photo
Field
Type
Attributes
Null
Default
Extra
idPhoto
Int(4)
No
Auto_increment
TenAnh
Char(50)
Yes
TieuDe
nChar(50)
No
MoTa
Ntext(16)
Yes
ThoiGian
Char(30)
Tai_Lieu
Field
Type
Attributes
Null
Default
Extra
MaTaiLieu
Int(4)
Primary_Key
No
Auto_increment
TenTaiLieu
Nchar(50)
No
MaNhom
Int(4)
Foreing_Key
No
MoTa
Ntext(16)
Yes
ThoiGianCapNhat
Char(30)
No
Message
Field
Type
Attributes
Null
Default
Extra
message_id
Int(4)
No
message_parent_id
Int(4)
No
Topic
Varchar(100)
No
Author
Varchar(100)
No
date_entered
Datetime(8)
No
message
Varchar(100)
No
ScheduledTask
Field
Type
Attributes
Null
Default
Extra
idTask
Int
Primary_Key
No
Auto_increment
Ten_Cong_Viec
Nchar(100)
No
Noi_Dung
Ntext(16)
No
Thoi_Gian
Datetime(8)
No
3.8 Chi tiết về một số module của chương trình
1. Module sử lý việc cung cấp dịch vụ cho thiết bị di động
Thiết bị di động gửi dữ liệu đến cho cổng thông tin giao thức HTTP. Dữ liệu yêu cầu của thiết bị di động đối với server được phân biệt bởi các lệnh. Đoạn chương trình sau đây mô tả việc bắt các yêu cầu từ thiết bị di động và gửi dữ liệu trả về.
<%
String sStringCommand= request.getParameter("order");
sStringCommand = sStringCommand.replace('$',' ');
java.util.ArrayList arr= new java.util.ArrayList();
if(sStringCommand.compareTo("ListTask") == 0)
{
String sSQL="select Ten_Cong_Viec from ScheduledTask";
java.sql.ResultSet rs = null;
rs = openrs( stat, sSQL);
while(rs.next())
{
String ss= rs.getString(1);
//out.println(ss);
arr.add(ss);
}
// đưa các xâu vào thành định dạng
String sFormat="";
for(int i=0; i<arr.size(); i++)
{
sFormat +=String.valueOf(arr.get(i)) ;
sFormat +="???";
}
out.println(sFormat);
}
else if(sStringCommand.indexOf("ListTask") == 0)
{
// tra ve du lieu chi tiet cua mot cong viec
// lay phan string sau dau :
int iIndex= sStringCommand.indexOf(":");
String sAfter= sStringCommand.substring(iIndex+1,sStringCommand.length()) ;
String sSQL="select * from ScheduledTask where Ten_Cong_Viec='";
sSQL +=sAfter;
sSQL +="'";
java.sql.ResultSet rs = null;
rs = openrs( stat, sSQL);
if(rs.next())
{
String sNameTask= rs.getString(2);
String sContent= rs.getString(3);
String stime= rs.getString(4);
String sOut= sNameTask;
sOut +="???";
sOut +=stime;
sOut +="???";
sOut +=sContent;
sOut +="???";
out.println(sOut);
}
}
// trường hợp yêu cầu danh sách sổ địa chỉ
else if(sStringCommand.compareTo("ListAddress") == 0)
{
String sSQL="select HoVaTen from AddressBook order by idAdress DESC";
java.sql.ResultSet rs = null;
rs = openrs( stat, sSQL);
while(rs.next())
{
String ss= rs.getString(1);
//out.println(ss);
arr.add(ss);
}
// dua cac xau vao mot format
String sFormat="";
for(int i=0; i<arr.size(); i++)
{
sFormat +=String.valueOf(arr.get(i)) ;
sFormat +="???";
}
out.println(sFormat);
}
// yêu cầu xem chi tiết một điạ chỉ
else if(sStringCommand.indexOf("ListAddress") == 0)
{
// tra ve du lieu chi tiet cua mot cong viec
// lay phan string sau dau +
int iIndex= sStringCommand.indexOf(":");
String sAfter= sStringCommand.substring(iIndex+1,sStringCommand.length()) ;
String sSQL="select * from AddressBook where HoVaTen='";
sSQL +=sAfter;
sSQL +="'";
java.sql.ResultSet rs = null;
rs = openrs( stat, sSQL);
if(rs.next())
{
String sHoVaTen= rs.getString(2);
String sPhone= rs.getString(3);
String sNoiCongTac= rs.getString(4);
String sDiaChi= rs.getString(5);
String sEmail= rs.getString(6);
String sFax= rs.getString(7);
String sThoiGianGap= rs.getString(8);
String sThongTinKhac= rs.getString(9);
String sOut= sHoVaTen;
sOut +="???";
sOut +=sPhone;
sOut +="???";
sOut +=sNoiCongTac;
sOut +="???";
sOut +=sDiaChi;
sOut +="???";
sOut +=sEmail;
sOut +="???";
sOut +=sFax;
sOut +="???";
sOut +=sThoiGianGap;
sOut +="???";
sOut +=sThongTinKhac;
sOut +="???";
out.println(sOut);
}
}
// truong hop yeu cau xem cong van den
else if(sStringCommand.compareTo("ListDocument") == 0)
{
String sSQL="select Tieu_De from Cong_Van order by idCongVan DESC";
java.sql.ResultSet rs = null;
rs = openrs( stat, sSQL);
while(rs.next())
{
String ss= rs.getString(1);
//out.println(ss);
arr.add(ss);
}
// dua cac xau vao mot format
String sFormat="";
for(int i=0; i<arr.size(); i++)
{
sFormat +=String.valueOf(arr.get(i)) ;
sFormat +="???";
}
out.println(sFormat);
...
}
%>
2. Module sử lý in ra tất cả các công việc cần làm
…
Ten cong viec
Thoi gian thuc hien
<%
// su ly viec lay du lieu va hien thi
// liet ke tat cac cac cong viec khong ke ngay gio
try{
String sSQL="select * from ScheduledTask where Thoi_Gian like '%";
sSQL +=sDay;
sSQL +="' ";
sSQL +="order by idTask DESC";
java.sql.ResultSet rs= openrs(stat,sSQL);
while(rs.next())
{
String idTask= rs.getString(1);
String TaskName= rs.getString(2);
String time= rs.getString(4);
if(idTask == null)
{
out.println("Khong tim thay ket qua nao");
break;
}
%>
">Xem|Xoa
<%
}
}catch(Exception e)
{
out.println(e.toString());
}
%>
…
3.9 Một số giao diện của chương trình.
Form quản lý truy cập từ thiết bị di
Hình 22. Giao diện của chức năng quản lý truy cập từ thiết bị mobile
Form quản lý truy cập từ thiết bị di động. Các nguồn tài nguyên cho phép quản lý gồm có
Quản lý truy cập công việc: Chức năng này cho phép quản lý các thông tin về công việc. Ví dụ như tạo mới công việc trong ngày, hoặc xóa bỏ và chỉnh sửa một công việc
Quản lý truy cập sổ địa chỉ: Chức năng này cho phép quản lý sổ địa chỉ và các thông tin quản lý đó có thể truy cập được từ thiết bị di động
Quản lý truy cập công văn: Chức năng này quản lý các thông tin liên quan đến công văn
b. Form tạo mới địa chỉ
Hình 23. Giao diện của chức năng tạo mới điạ chỉ
Form tạo mới sổ địa chỉ. Để tạo mới một địa chỉ phải điền đầy đủ các thông tin về người được tạo. Sau đó chọn nút tạo mới, hệ thống sẽ thêm thông tin về địa chỉ mới vào cơ sở dữ liệu. Các thông tin bắt buộc phải có gồm
Họ và tên
Số điện thoại
Nơi công tác
Email
c. Form tạo mới công việc
Hình 24. Giao diện chức năng tạo mới công việc
Form tạo mới công việc. Để tạo mới công việc trong ngày đầu tiên bạn phải chọn thời gian thực hiện công viêc. Sau đó nhập tên công việc, tên này ta sẽ hiển thị trong danh sách các công việc. Và cuối cùng là nhập nội dung công việc.
d. Form hiển thị danh sách sổ địa chỉ
Hình 25. Giao diện chức năng xem danh sách sổ điạ chỉ
Form hiển thị danh sách sổ địa chỉ. Để xem chi tiết điạ chỉ của một ai đó, ta chọn click vào link xem, khi đó hệ thống sẽ hiển thị chi tiết về các thông tin của người đó. Để xóa ta click chức năng xóa cùng dòng bên phải. Khi danh sách điạ chỉ nhiều, để tìm một người nào đó ta có thể dùng chức năng tìm kiếm ở bên trên. Nhập từ khóa tìm kiếm vào sau đó click vào nút tìm. Hệ thống sẽ liệt kê các điạ chỉ phù hợp. Có thể tìm kiếm theo tên, theo điạ chỉ, theo địa chỉ email …
3.10 Triển khai hệ thống cổng thông tin cá nhân
Vì cổng thông tin cá nhân được xây dựng nhằm đặt tại các máy tính cá nhân, nên việc triển khai hệ thống không có gì khó khăn. Sau đầy là các yêu cầu để triển khai:
Để thực hiện triển khai cổng thông tin cá nhân cần có các yêu cầu sau:
Máy tính cài đặt Java Web Server
CSDL SQL Server 2000
Cài đặt JDK
Cài đặt phần mềm Wireless Toolkit (Download tại địa chỉ phần mềm náy cho phép mô phỏng thiết bị di động truy cập vào cổng thông tin cá nhân
Cổng thông tin cá nhân được đặt tại các máy tính ở nhà, để truy cập vào được cổng thông tin cá nhân từ bên ngoài, có hai giải pháp:
Đăng ký với nhà cung cấp dịch vụ ADSL một điạ chỉ IP tĩnh.
Đăng ký một tên miền
Thiết bị phát sóng Wireless.
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
4. 1 Mô tả bài toán
Thiết bị di động truy cập vào cổng thông tin cá nhân để lấy các thông tin về công văn, lịch làm việc, sổ địa chỉ. Mọi giao thức truyền dữ liệu giữa thiết bị di động và cổng thông tin đều dùng giao thức HTTP.Khi thiết bị di động có nhu cầu truy cập vào cổng thông tin, thì máy gửi yêu cầu tới server(Cổng thông tin), server sẽ gửi trả lại dữ liệu mà máy di động yêu cầu. Khi máy di động yêu cầu truy cập công văn, hệ thống sẽ gửi những dữ liệu về công văn cho máy di động, dữ liệu khi được gửi về máy di động sẽ được hiển thị tới người dùng . Để truy cập lịch làm việc và sổ địa chỉ quá trình cũng diễn ra tương tự
4.2 Biểu đồ phân rã chức năng
Máy di động
1. Xem công văn
2.Xem công việc
3.Tra cứu địa chỉ
1.1 Xem
1.2. Tìm kiếm công văn
2.1 Xem
2.2. Tìm kiếm công việc
3.1 Xem
3.2. Tìm kiếm địa chỉ
Hình 26. Biểu đồ phân rã chức năng
Thiết bị di động sẽ cung cấp các dịch vụ sau:
Truy cập vào cổng thông tin cá nhân xem công văn
Truy cập vào CTTCN để xem công việc
Truy cập vào CTTCN để tra cứu địa chỉ
4.2.1 Biểu dồ luồng dữ liệu mức 1 chức năng xem công văn
1. Xem công văn
1.1 Xem
1.2. Tìm kiếm công văn
Hình 27. Biểu đồ phân rã chức năng xem công văn
Chức năng Xem: Cho phép xem các công văn đến, các công văn sẽ hiển thị trên máy di dộng theo thứ tự thời gian. Công văn đến trước sẽ hiển thị lên trên cùng. Người dùng có thể xem các công văn một cách dễ dàng như trên máy tính của mình
Chức năng Tìm kiếm: Chức năng này cho phép tìm kiếm một công văn, có thể tìm kiếm theo ngày gửi, theo tên người gửi, theo tiêu đề công văn
Quá trình xử lý chức năng xem công văn
Người dùng
Module gửi dữ liệu
Y/c xem công văn
Cổng thông tin
Y/c xem công văn
Dữ liệu công văn
Module phân tích dữ liệu
Form hiển thị công văn
Công văn
Dữ liệu công văn
Dữ liệu đã phân tích
Người dùng
Y/c tìm kiếm công văn
Form hiển thị công văn
Công văn
Cổng thông tin
Dữ liệu để hiển thị
Form tìm kiếm
Module gửi dữ liệu
Từ khóa tìm kiếm
Từ khóa tìm kiếm
Kết quả
Module phân tích dữ liệu
Kết quả
Quá trình xử lý chức năng tìm kiếm công văn
4.2.2 Biểu đồ luồng dữ liệu mức 1 chức năng xem công việc
2.Xem công việc
2.1 Xem
2.2. Tìm kiếm công việc
Hình 28. Biểu đồ phân rã chức năng xem công việc
- Chức năng xem công việc : Xem công việc bao gồm các thông tin về công việc, như thời gian thực hiện, nội dung công việc, địa điểm …
- Chức năng tìm kiếm : Tìm kiếm một công việc theo tên công việc, theo thời gian.
a. Quá trình xử lý chức năng xem công việc
Người dùng
Module gửi dữ liệu
Y/c xem công việc
Cổng thông tin
Y/c xem công việc
Dữ liệu công việc
Module phân tích dữ liệu
Form hiển thị công việc
Công việc
Dữ liệu công việc
Dữ liệu đã phân tích
b. Quá trình xử lý chức năng tìm kiếm công việcNgười dùng
Y/c tìm kiếm công việc
Form hiển thị công việc
Công văn
Cổng thông tin
Dữ liệu để hiển thị
Form tìm kiếm
Module gửi dữ liệu
Từ khóa tìm kiếm
Từ khóa tìm kiếm
Kết quả
Module phân tích dữ liệu
Kết quả
4.2.3 Biểu đồ luồng dữ liệu mức 1 chức năng xem sổ địa chỉ
3.Tra cứu địa chỉ
3.1 Xem
3.2. Tìm kiếm địa chỉ
Hình 29. Biểu đồ phân rã chức năng tra cứ sổ địa chỉ
Chức năng xem địa chỉ: Địa chỉ bao gồm các thông tin về họ và tên, địa chỉ, số điện thoại , nơi làm việc ….của bạn bè , người thân, đối tác làm ăn. Các sổ địa chỉ thường rất nhiều, yêu cầu quá trình xem và tìm kiếm phải thuận tiện.
Chức năng Tìm Kiếm: Chức năng này hỗ trợ rất nhiều định dạng tìm kiếm. Tìm kiếm theo họ và tên, theo năm sinh, theo địa chỉ, nơi làm việc ….
a.Quá trình xử lý chức năng xem sổ địa chỉ
Người dùng
Module gửi dữ liệu
Y/c xem sổ địa chỉ
Cổng thông tin
Y/c xem địa chỉ
Dữ liệu điạ chỉ
Module phân tích dữ liệu
Form hiển thị điạ chỉ
Địa chỉ
Dữ liệu điạ chỉ
Dữ liệu đã phân tích
Người dùng
Y/c tìm kiếm điạ chỉ
Form hiển thị điạ chỉ
Điạ chỉ
Cổng thông tin
Dữ liệu để hiển thị
Form tìm kiếm
Module gửi dữ liệu
Từ khóa tìm kiếm
Từ khóa tìm kiếm
Kết quả
Module phân tích dữ liệu
Kết quả
b. Quá trình xử lý chức năng tìm kiếm điạ chỉ
4.3 Mốt số module tiêu biểu
1. Module xử lý việc gửi và nhận dữ liệu từ máy di động tới server
public String processRequest(String sCommand) throws IOException
{
HttpConnection http=null;
InputStream iStrm=null;
// Noi them chuoi thong tin da nhap vao chuoi querry de gui ve Server
String url=""+sCommand;
String responseStr;
try
{
// mở kêt nối tới server
http=(HttpConnection)Connector.open(url);
// đặt phương thức truyền dữ liệu là phương thức GET
http.setRequestMethod(HttpConnection.GET);
http.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuaration/CLDC-1.0");
// kiểm tra nếu dòng kết nối có dữ liệu thì thực hiện đọc
if(http.getResponseCode()==HttpConnection.HTTP_OK)
{
iStrm=http.openInputStream();
int length=(int)http.getLength();
if(length!=-1)
{
byte serverData[]=new byte[length];
iStrm.read(serverData);
// Luu thong tin vao chuoi can hien thi
responseStr=new String(serverData);
// trả về dữ liệu vừa đọc được
return responseStr;
}
}
}
finally
{
// dong cac ket noi hien tai
if(iStrm!=null)
iStrm.close();
if(http!=null)
http.close();
}
Return “”;
}
2. Module thực hiện tách dữ liệu và hiển thị danh sách các công việc
Đầu vào(2 tham số): đối tuợng List để hiển thị và một String chứa dữ liệu
Đẩu ra: thực hiện tách dữ liệu và đưa dữ liệu vào đối tượng List
public void GetNameTask(List list, String smsg)
{
String ss= smsg.trim();
if(ss.length() > 0)
{
int next=0;
while(true)
{
if(ss.length()>3)
{
// lấy vị trí của xâu đánh dấu
next =ss.indexOf("???");
// thực hiện tách lấy đoạn dữ liệu
list.append(ss.substring(0,next),imgItem);
ss= ss.substring(next+3,ss.length());
}
else
break;
}
}
}
3.Module khởi tạo Thread
Việc truyền dữ liệu giữa máy di động và cổng thông tin cá nhân, rất dễ bị block, vì thế để thực hiện việc truyền và nhận cần tạo ra các Thread. Trong thread đó gọi đến modulee thực hiện truyền và nhận.
// nếu trường hợp bị block hệ thống sẽ hiển thị form waitForm
Form waitForm = new Form("Waiting...");
mDisplay.setCurrent(waitForm);
// khai báo một Thread
Thread t = new Thread() {
public void run() {
try{
String sSelected= ListTask.getString(ListTask.getSelectedIndex()) ;
sSelected.trim();
String sOrder="ListTask:";
sOrder += sSelected;
String sNotSpace = sOrder.replace(' ','$');
//gọi đến hàm thực hiện việc truyền và nhận dữ liệu trả về
String sRe= processRequest(sNotSpace);
// thực hiện tách dữ liệu và hiển thị lên form GetDetailTask(ListDetailTask,sRe);
}catch(Exception e)
{
System.out.println(e.toString());
}
mDisplay.setCurrent(ListDetailTask);
}
};
t.start();
4.4 Một số giao diện của chương trình
Man hinh chính khi truy cập vào cổng thông tin
Hình 30. Màn hình chính của thiết bị di động
Trong màn hình chính có 2 nút, nút exit và nút tiếp.
Nếu chọn exit sẽ kết thúc quá trình truy cập.
Nếu chọn tiếp sẽ thực hiện tiếp quá trình truy cập.
Màn hình hiển thị các dịch vụ của máy di động
Hình 31. Màn hình hiển thị các dịch vụ của thiết bị di động
Sau khi chọn nút tiếp từ màn hình chính, hệ thống sẽ hiển thị màn hình cho phép chọn các dịch vụ truy cập. các dịch vụ đó đựợc hiển thị theo thứ tự :
Thông tin công viêc
Xem công văn
Tra cứu sổ địa chỉ
Chọn một dịch vụ mà bạn muốn sau đó chọn nút xem ở góc bên phải phía dưới của màn hình để truy cập vào dịch vụ đó.
Màn hình xem danh sách công văn đến
Hình 32. Màn hình hiển thị danh sách các công văn đến
Khi chọn dịch vụ xem công văn. Hệ thống sẽ hiển thị danh sách các công văn đến. Quá trình thao tác tiếp theo tiến hành như sau:
Để xem một công văn ta chọn vào công văn cần xem. Sau đó chọn nút “chọn” ở góc bên phải phía dưới của màn hình, hệ thống sẽ hiển thị chi tiết nội dung công văn đó.
Để quay lại truy cập dịch vụ khác chọn nút “quay lại”
4. Màn hình xem chi tiết một công văn
Hình 33. Màn hình hiển thị chi tiết nội dung của công văn
Để xem công văn đầu tiên bạn phải chọn chức năng xem công văn từ màn hình hiển thị các dịch vụ truy cập. Sau khi chọn chức năng đó, hệ thống sẽ hiển thị danh sách các công văn của bạn. Để xem chi tiết một công văn, ta chọn vào tên công văn và chọn nút “xem” hệ thống sẽ hiển thị chi tiết nội dung của công văn. Nội dung của một công văn được bố trị như sau:
Tiêu đề
Người gửi
Thời gian
Nội dung
5. Màn hình xem danh sách các công việc
Hình 34. Màn hình hiển thị danh sách các công việc trong ngày
Màn hình hiển thị danh sách các công việc trong ngày. Để xem chi tiết nội dung của một công việc, ta chọn vào công việc. Sau đó hệ thống sẽ hiểnt hị chi tiết các thông tin liên quan đến công việc đó
6. Màn hình xem sổ điạ chỉ
Hình 35. Màn hình hiển thị chi tiết một điạ chỉ
Để xem địa chỉ đầu tiên ta phải chọn chức năng xem sổ địa chỉ từ màn hình hiển thị danh sách các dịch vụ của hệ thống. Sau đó hệ thống sẽ hiển thị danh sách các sổ điạ chỉ, để xem một điạ chỉ chỉ cần chọn điạ chỉ đó, hệ thống sẽ hiển thị chi tiết thông tin về địa chỉ đó. Ta có thể chọn chức năng tìm kiếm địa chỉ nếu danh sách các điạ chỉ quá nhiều.
4.5 Triển khai chương trình trên thiết bị di động
Để ứng dụng J2ME mà ta vừa xây dựng chạy được trên thiết bị thật, bạn cần phải đóng gói toàn bộ ứng dụng vào file jar và file jad. Để đóng gọi ứng dụng bạn phải nhờ tới sự trợ giúp của phần mềm EclipseME. Bạn có thể download phần mềm này ở điạ chỉ Với sự trợ giúp của EclipseME việc đóng gói trở nên dễ dàng. Bạn hãy thực hiệnt theo các bước sau đây:
Kích chuột phải trên J2ME Project.
Trên menu hiện ra, chọn J2ME -> Create Package.
Hãy mở rộng mục deployed, ta sẽ thấy có file.jad và.jar cho ứng dụng của mình.
Việc cuối cùng là tải 2 file.jad và.jar đó lên thiết bị di động.
Kết luận và phương hướng phát triển tiếp theo
Kết quả đạt được:
Kết quả đạt được trong luận văn này là tác giả đã xây dựng được thành công cổng thông tin cá nhân cho phép truy cập từ thiết bị di động. Những chức năng mà tác giả đã xây dựng là nền tảng cho một cổng thông tin hiện đại trong tương lai. Phần tiếp theo tác giả sẽ trình bày phương hướng phát triển của đề tài.
Phương hướng phát triển tiếp theo:
Như tác giả đã trình bày ở phần bên trên một cổng thông tin cá nhân hoàn thiện trong tương lai phải có khả năng kết nối với nhau để trao đổi thông tin. Ngoài ra cổng thông tin cá nhân còn có khả năng kết nối với các thiết bị điện tử trong nhà. Tóm lại tác giả sẽ tiếp tục phát triển các chức năng sau
Kết nối các cổng thông tin vói nhau
Khả năng tích hợp một số module cho phép giao dịch một cách tự động (như đặt vé tầu, thanh toán tiền điện, tiền nước hàng tháng bằng giao dịch điện tử ….)
Kết nối các thiết bị điện tử trong nhà với cổng thông tin
Kết luận:
Mọi phát minh đều bắt nguồn từ ý tưởng. Một ý tưởng hay cũng được đánh giá rất cao. Ý tưởng về xây dựng cổng thông tin cá nhân của em, em tin là một ý tưởng có khả năng ứng dụng cao. Và chỉ vài năm nữa thôi, những cổng thông tin như thế sẽ xuất hiện rất nhiều trên Internet.Cổng thông tin chắc chắn sẽ giúp ích rất nhiều cho con người trong cuộc sống.Những gì mà em xây dựng trong luận văn này mới chỉ là bước khởi đầu của xây dựng một cổng thông tin. Một cổng thông tin hoàn chỉnh, phải tích hợp rất nhiều các dịch vụ như em đã đề cập đến trong luận văn.Và để thực hiện được hết các chức năng trong ý tưởng đã đề ra cần phải có thời gian, trong phạm vi luận văn này em mới chỉ phát triển một số các chức năng cơ bản. Sau này em se tiếp tục phát triển các chức năng tiếp theo. Cổng thông tin cá nhân chính là một phần của ý tưởng xây dựng ngôi nhà thông minh, mà đã được nói đến rất nhiều trong những năm gần đây. Một ngôi nhà thông minh là ngôi nhà ứng dụng công nghệ thông tin vào mọi vật dụng trong gia đình, kết nối mọi thiết bị lại với nhau, chúng có khả năng nói chuyện với nhau và việc điều khiển chung diễn ra rất dễ dàng. Mọi thiết bị điện tử kết nối với cổng thông tin và điện thoại di động của ta kết nối với cổng thông tin, cổng thông tin chính là một phương tiên gián tiếp cho phép điều khiển các thiết bị trong nhà từ xa.
Tài liệu tham khảo
Tài liệu in:
TS. Nguyễn Văn Vỵ. Phân tích và thiết kế hệ thống. Khoa Công Nghệ Thông Tin, Đại Học Quốc Gia Hà Nội, 1998
Nguyễn Phương Lan – Trần Tiến Dũng. Java – tập 3. Nhà Xuất Bản Lao Động Xã Hội, 2005
Nguyễn Phương Lan - Hoàng Đức Hải. Lập trình ứng dụng Web với JSP/Servlet. Nhà Xuất Bản Lao Động – Xã Hội, 2005
Sách điện tử:
[4] John W. Muchow. Core J2ME Technology & MIDP. Prentice Hall PTR, 2001
[5] Robert Flenner, Michael Abbott, Toufic Boubez. Java P2P Unleashed. Sams Publishing, 2002
[6] Cynthia Bloch, Annette Wagner. MIDP Style Guide for the Java 2 Platform Micro Edition. Addison Wesley, 2003
Các địa chỉ Internet:
[7] : đây là một điạ chỉ rất hay cho những ai yêu thích lập trình Java
[8] www.programmingtutorials.com : Đây là một địa chỉ chứa nhiều liên kết đến các nguồn tài liệu về các ngôn ngữ lập trình.
Các file đính kèm theo tài liệu này:
- NguyenNgocTuan_K47CB.doc
- NguyenNgocTuan_K47CB.pdf