Sơ lược:
Lời mở đầu
Chương I: Tìm hiểu mạng số liệu GPRS
Chương II: Tìm hiểu về công nghệ J2ME, CDLC, MIDP
Chương III: Hạ tầng hệ thống và dịch vụ nội dung qua GPRS và Internet
Chương IV: Xây dựng ứng dụng trog đó máy di dộng dùng GPRS tiếp nhận và thể hiện hình ảnh liên tục từ webserver đặt trên Internet
Chương V: Mở rộng ứng dụng thể hiện ảnh
Kết Luận
Tài liệu tham khảo
72 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2315 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Nghiên cứu phát triển dịch vụ nội dung cho thuê bao di động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i về một ứng dụng không được thiết bị di động hỗ
trợ (ví dụ, MIDP 2.0), thì quá trình tải về sẽ bị hủy bỏ thay vì phải đợi tải về hết toàn
bộ tập tin JAR.
Mô tả nội dung của tập tin JAR :
Các trường yêu cầu :
¾ Manifest-Version // Phiên bản tập tin Manifest
¾ MIDlet-Name // Tên bộ MIDlet (MIDlet suite)
¾ MIDlet-Version // Phiên bản bộ MIDlet
¾ MIDlet-Vendor // Nhà sản xuất MIDlet
¾ MIDlet- for each MIDlet // Tên của MIDlet
¾ MicroEdtion-Profile // Phiên bản hiện trạng
¾ MicroEdtion-Configuration // Phiên bản cấu hình
Ví dụ một tập tin manifest.mf :
¾ MIDlet-Name: CardGames
¾ MIDlet-Version: 1.0.0
¾ MIDlet-Vendor: Sony Ericsson
¾ MIDlet-Description: Set of Card Games
¾ MIDlet-Info-URL:
¾ MIDlet-Jar-URL:
¾ MIDlet-Jar-Size: 1063
¾ MicroEdtion-Profile: MIDP-1.0
¾ MicroEdtion-Configuration: CLDC-1.0
¾ MIDlet-1: Solitaire, /Sol.png, com.semc.Solitaire
¾ MIDlet-2: BlackJack, /Blkjk.png, com.semc.BlackJack
Tập tin JAD chứa cùng thông tin như tập tin manifest. Nhưng nó nằm ngoài tập
tin JAR. . Các thuộc tính MIDlet-Name, MIDlet-Version, và MIDlet-Vendor phải
được lặp lại trong tập tin JAD và JAR. Các thuộc tính khác không cần phải lặp lại. Giá
trị trong tập tin mô tả sẽ đè giá trị của tập tin manifest .
2.3.5 Bộ MIDlet (MIDlet Suite) :
Một tập các MIDlet trong cùng một tập tin JAR được gọi là một bộ MIDlet
(MIDlet suite). Các MIDlet trong một bộ MIDlet chia sẻ các lớp, các hình ảnh, và dữ
liệu lưu trữ bền vững. Để cập nhật một MIDlet, toàn bộ tập tin JAR phải được cập nhật
.
Hình sau biểu diễn hai bộ MIDlet :
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 23
Hình 2.6 : Hai bộ MIDlet
Trong hình trên, một bộ MIDlet chứa MIDlet1, MIDlet2, và MIDlet3. Bộ kia
chỉ chứa MIDlet4. Ba MIDlet trong bộ đầu tiên truy xuất các lớp và dữ liệu của nhau
nhưng không truy xuất đến các lớp hay dữ liệu của MIDlet4. Ngược lại, MIDlet4 cũng
không truy xuất được các lớp, hình ảnh, và dữ liệu của chúng .
2.3.6 Ví dụ minh họa một MIDlet căn bản :
Đây là chương trình Hello World căn bản :
package hello;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloMidlet extends MIDlet implements CommandListener {
private Display display;
private Form helloForm;
private Command cmdExit;
public HelloMidlet(){
display=Display.getDisplay(this);
helloForm=new Form("Hello Form");
helloForm.append("Hello World!");
Vùng lưu
trữ 1
Vùng lưu
trữ 2
Vùng lưu
trữ 3
Vùng lưu
trữ 1
midlet1.class
midlet2.class
midlet4.class
imap.class
pop3.class
smtp.class
midlet3.class
Bộ MIDlet 1 Bộ MIDlet 2
MIDlet 1,MIDlet 2,MIDlet 3 MIDlet 4
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 24
cmdExit=new Command("Exit", Command.EXIT, 1);
helloForm.addCommand(cmdExit);
helloForm.setCommandListener(this);
}
public void startApp() {
display.setCurrent(helloForm);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command c,Displayable s){
if(c==cmdExit){
destroyApp(false);
notifyDestroyed();
}
}
}
Chương trình chỉ gồm một biểu mẫu (form) để chứa dòng chuỗi ”Hello World!”
, và một nút lệnh để thoát chương trình (cmdExit ) .
2.4 Đồ họa trong MIDlet :
Các lớp MIDP cung cấp hai mức đồ họa : đồ họa mức thấp và đồ họa mức cao.
Đồ họa mức cao dùng cho văn bản hay form . Đồ họa mức thấp dùng cho các ứng
dụng trò chơi yêu phải vẽ lên màn hình .
Hình sau biểu diễn hai mức đồ họa :
Cả hai lớp đồ họa mức thấp và mức cao đều là lớp con của lớp Displayble.
Trong MIDP, chỉ có thể có một lớp displayable trên màn hình tại một thời điểm. Có
thể định nghĩa nhiều màn hình nhưng một lần chỉ hiển thị được một màn hình .
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 25
Hình 2.7 : Hai mức đồ họa
2.5 Lập trình mạng :
2.5.1 Khung mạng CLDC tổng quát ( Generic CLDC Networking
Framework) :
Mạng cho phép di động gởi và nhận dữ liệu đến máy chủ . Nó cho phép thiết bị
di động sử dụng các ứng dụng như tìm kiếm cơ sở dữ liệu, trò chơi trực tuyến… Trong
J2ME , mạng được chia làm hai phần . Phần đầu tiên là khung được cung cấp bởi
CLDC và phần hai là các giao thức thật sự được định nghĩa trong các hiện trạng .
CLDC cung cấp một khung tổng quát để thiết lập kết nối mạng. Ý tưởng là nó là đưa
ra một khung mà các hiện trạng khác nhau sẽ sử dụng. Khung CLDC không định
nghĩa giao thức thật sự. Các giao thức sẽ được định nghĩa trong các hiện trạng .
Hình sau biểu diễn cách mà khung CLDC làm việc :
Kết nối mạng được xây dựng bằng phương thức open() của lớp Connector trong
CLDC. Phương thức open() nhận một tham số đầu vào là chuỗi. Chuỗi này dùng để
xác định giao thức. Định dạng của chuỗi là :
protocol:address;parameters
CLDC chỉ xác định tham số là một chuỗi nhưng nó không định nghĩa bất kỳ
giao thức thật sự nào. Các hiện trạng có thể định nghĩa các giao thức kết nối như
HTTP, socket, cổng truyền thông, datagram,… Phương thức open() trả về một đối
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 26
tượng Connection .Đối tượng này sau đó có thể đóng vai trò là một giao thức xác định
được định nghĩa trong hiện trạng .
Connector.open(“:;”);
Một số giao thức ví dụ :
¾ Socket : Connector.open(“socket://19.3.22.121:1567”)
¾ SSL : Connector.open(“ssl://pop.gmail.com:465”)
¾ Comm port : Connector.open(“comm:0;baudrate=9600”)
¾ Datagram : Connector.open(“Datagram://33.3.22.21:1567”)
¾ Files : Connector.open(“file:/hello.txt”)
¾ HTTP : Connector.open(“”)
Hình 2.8 : Khung mạng CLDC tổng quát
Ví dụ trên minh họa kết nối socket, cổng truyền thông, datagram, file và HTTP.
Tất cả các kết nối mạng đều có cùng định dạng, không quan tâm đến giao thức thật sự.
Nó chỉ khác nhau ở chuỗi chuyển cho phương thức open(). Phương thức open() sẽ trả
về một đối tượng Connection đóng vai trò là lớp giao thức (ví dụ HttpConnection ,
StreamConnection (socket) , SecureConnection ( SSL ) ) để có thể sử dụng các
phương thức cho giao thức đó .
2.5.2 Tổng quan về các lớp giao diện kết nối trong khung mạng CLDC tổng
quát :
Dẫn xuất từ lớp Connection là nhiều lớp giao diện con cung cấp khung kết nối
mạng.Các giao diện khác nhau để hỗ trợ các loại thiết bị di động khác nhau
Socket :
Comm ports :
Datagrams :
Files :
HTTP :
SSL :
Connector.open(“string”);
Với định dạng string như sau:
“:;”
Connector.open(“:;”);
Trả về một đối tượng Connection
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 27
Hình 2.9 : Tổng quan về các lớp kết nối
Sau đây là mô tả các giao diện kết nối được định nghĩa trong CLDC
StreamConnectionNotifier
Giao diện StreamConnectionNotifier được dùng khi đợi một kết nối phía server
được thiết lập. Phương thức acceptAndOpen() bị chặn cho đến khi client thiết lập kết
nối .
Giao diện DatagramConnection
Kết nối datagram cung cấp kiểu truyền thông gói không chứng thực. Datagram
chứa gói dữ liệu và địa chỉ . Chuỗi địa chỉ có định dạng sau :
datagram:[//{host}]:{port}
Nếu tham số host được xác định, thì datagram mở kết nối ở chế độ client. Nếu
tham số host không được xác định, thì datagram được mở ở chế độ server :
c = Connector.open("datagram://192.165.189.100:1567"); // Chế độ client
c = Connector.open("datagram://:1567"); // Chế độ server
Giao diện InputConnection
Connection
javax.bluetooth.
L2CAPConnect
ionNotifier
Javax.obex.Session
Notifier
StreamConnection
Notifier
InputConnection OutputConnection
DatagramCon
nection
javax.obex.Client
Session
javax.wirel
ess.messagi
ng.Message
Connection
javax.bluetooth.
L2CAPConnect
ion
ServerSocket
Connection
StreamConne
ction
UDPDatagram
Connection
ContentConn
ection
CommConne
ction
SocketConne
ction
SecureConne
ction
FileConnection
HttpConnecti
on
javax.obex.Ope
ration
HttpsConnect
ion
CLDC
MIDP 2.0
File & PIM
Bluetooth
WMA
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 28
Giao diện InputConnection dùng để thực hiện một luồng nhập tuần tự dữ liệu
chỉ đọc.
Giao diện OutputConnection
Giao diện OutputConnection dùng để thực hiện một luồng xuất dữ liệu chỉ viết.
Giao diện StreamConnection
Giao diện StreamConnection là kết hợp của cả hai giao diện InputConnection
và OutputConnection. Nó dùng cho các thiết bị di động có truyền thông hai chiều.
Giao diện ContentConnection
Giao diện ContentConnection mở rộng giao diện StreamConnection và thêm
vào các phương thức getType(), getEncoding(), và getLength(). Nó cung cấp cơ sở cho
giao diện HttpConnection của MIDP.
Giao diện HttpConnection
Giao diện HttpConnection được định nghĩa trong MIDP và mở rộng giao diện
ContentConnection của CLDC. Giao diện này cung cấp các phương thức thiết lập một
kết nối HTTP. Nó cung cấp cơ sở cho giao diện HttpsConnection của MIDP.
Giao diện HttpsConnection
Giao diện HttpsConnection được định nghĩa trong MIDP và mở rộng giao diện
HttpConnection của CLDC. Giao diện này cung cấp các phương thức thiết lập một kết
nối HTTP bảo mật (HTTPS) .
Giao diện SocketConnection
Giao diện SocketConnection mở rộng giao diện StreamConnection . Nó cung
cấp cơ sở cho giao diện SecureConnection của MIDP . Giao diện này cung cấp các
phương thức thiết lập một kết nối socket bình thường , ví dụ :
SocketConnection socket = Connector.open("socket://smtp.gmail.com:110");
InputStream input = socket.openInputStream();
OutputStream output = socket.openOutputStream();
Giao diện SecureConnection
Giao diện SecureConnection mở rộng giao diện SocketConnection .Giao diện
này cung cấp các phương thức thiết lập một kết nối socket bảo mật , ví dụ :
SecureConnection ssocket = Connector.open("ssl://smtp.gmail.com:995");
InputStream input = ssocket.openInputStream();
OutputStream output = ssocket.openOutputStream();
Chú ý rằng RFC1900 khuyến nghị rằng nên dùng các địa chỉ là tên máy thay
cho IP để tăng cường bảo mật . Và một kết nối bảo mật phải được thi hành từ một
trong những tiêu chuẩn sau :
¾ TLS Protocol Version 1.0 được chỉ ra trong RFC 2246 .
¾ SSL V3 được chỉ ra trong The SSL Protocol Version 3.0 .
¾ WAP(TM) TLS Profile và Tunneling Specification được chỉ ra trong WAP-
219-TLS-20010411-a .
Sau đây sẽ là phần trình bày kĩ hơn về giao diện FileConnection , giúp truy xuất
vào các thẻ nhớ mở rộng của thiết bị di động .
2.5.3 Kết nối HTTP
Hiện trạng MIDP hỗ trợ kết nối HTTP phiên bản 1.1 thông qua giao diện
httpConnection.Hỗ trợ GET, POST, HEAD của HTTP. Yêu cầu GET(GET Request)
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 29
được dùng để lấy dữ liệu từ server và đây là phương thức mặc định .Yêu cầu POST
dùng để gỡi dữ liệu đến server.Yêu cầu HEAD tương tự như GET nhưng không có dữ
liệu trả về từ server .Nó có thể dùng để kiểm tra tính hợp lệ của một địa chỉ URL.
Phương thức open() của lớp Connector dùng để mở kết nối.Phương thức open()
trả về một đối tượng Connection sau đó có thể đóng vai trò là một HttpConnection cho
phép dùng tất cả các phương thức của HttpConnection
Một kết nối HTTP có thể ở một trong 3 trạng thái khái nhau :Thiết lập(setup) ,
kết nối (Connected), hay đóng (Close).Trong trạng thái thiết lập, kết nối chưa được
tạo, phương thức setRequestMethod() và setRequestProperty() chỉ có thể được dùng
trong trạng thái thiết lập.Chúng được dùng để thiết lập phương thức yêu cầu
(GET,POST,HEAD) và thiết lập thuộc tính HTTP (ví dụ, User-Agent).Khi sử dụng
phương thức yêu cầu gỡi dữ liệu đến hay nhận dữ liệu về từ server sẽ làm cho kết nối
chuyển sang trạng thái kết nối.Gọi phương thức close() sẽ làm cho kết nối chuyển sang
trạng thái đóng.
Hình sau minh họa các trạng thái kết nối khác nhau:
Hình 2.10 : Các trạng thái kết nối HTTP
2.5.4 Ví dụ HTTP GET
Phương thức HTTP GET cho phép lấy dữ liệu từ server và là phương thức mặc
định nếu không xác định phương thức trong trạng thái thiết lập
void getViaHttpConnection(String url) throws IOException{
HttpConnection c=null;
InputStream is =null;
Kết nối đến server chưa
được tạo
Thiết
lập
openInputStream()
openOputStream()
getLength()
getType()
getEncoding()
getHeaderField()
getResponseCode
getResponseMessage()
getHeaderFieldInt()
getHeaderFieldDate()
Kết
nối
Kết nối đã được
tạo,gỡi các tham
số yêu cầu chờ hồi
đáp
Đóng
Đóng,kết nối không còn
dùng được, các luồng
I/O vẫn còn
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 30
Try{
c=(HttpConnection)Connector.open(url);//Mở kết nối HTTP
is=c.openInputStream();//Mở input stream, mặc định GET
type =c.getType();
int len=(int)c.getLength();
if(len>0)
{
Byte[]data = new byte[len];
int numBytes= is.read[data];
processData(data);
}
else
{
int ch;
while ((ch=is.read())!=-1)
stringBuffer.append((char)ch);}
processBuffer(stringBuffer);
}
}finally{ if(is!=null) is.close();
if(c!=null) c.close();
}
}
getViaHttpConnection() nhận một chuỗi là tham số đầu vào, đó là URL chuyển cho
phương thức open() của lớp Connection.Phương thức open() trả về một đối tượng
Connection đóng vai trò là một lớp HttpConnection.Phương thức openInputStream()
sẽ làm cho kết nối chuyển sang trạng thái kết nối.Vì không có yêu cầu phương thức
nào, kết nối sẽ mặc định là một kết nối HTTP GET.
Phương thức getLength() sẽ trả về chiều dài của dữ liệu gởi từ server.Nếu biết được
chiều dài, thì biến len sẽ chứa chiều dài dữ liệu và ta có thể đọc toàn bộ khối dữ liệu
.Nếu không thì len sẽ chứa giá trị -1 và dữ liệu sẽ đọc từng kí tự một cho đến khi gặp
đánh dấu cuối file -1.Phương thức processData() và processBuffer() xử lý dữ liệu đến
từ server.Khối lệnh cuối cùng sẽ đóng tất cả các kết nối không quan tâm đến có lỗi từ
khối lệnh try ở trước hay không.
2.5.5 Ví dụ HTTP POST
HTTP POST cho phép gỡi dữ liệu đến server.Dữ liệu gỡi đến server qua phương thức
GET chỉ giới hạn là dữ liệu chứa URL .Phương thức POST cho phép gỡi một luồng
byte đến server .Phương thức HTTP POST thực hiện theo cách tương tự với phương
thức HTTP GET
Ví dụ thực hiện một kết nối HTTP POST
void postViaHttpConnection(String url) throws IOException{
HttpConnection c=null;
InputStream is =null;OutputStream os;
try{
c=(HttpConnection)Connector.open(url);//Mở kết nối HTTP
Báo cáo Đồ án tốt nghiệp Chương III: Tìm hiểu công nghệ J2ME, CDLC, MIDP
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 31
c.setRequestMethod(HttpConnection.POST);
os=c.openOutputStream();
os.write(“Data Sent to Server \n”.getBytes());
int status= c.getResponseCode();
if(status!=HttpConnection.HTTP_OK)
thrownew IOException(“not OK”);
int len=(int)c.getLength();
if(len>0)
{
Byte[]data = new byte[len];
int numBytes= is.read[data];
processData(data);
}
else
{
int ch;
while ((ch=is.read())!=-1)
stringBuffer.append((char)ch);}
processBuffer(stringBuffer);
}
}finally{ if(is!=null) is.close();
if(c!=null) c.close();
}}
Như ví dụ trước, phương thức postViaHttpConnection() nhận tham số đầu vào là một
chuỗi URL được chuyển đến phương thức open() của lớp Connection.Phương thức
open() trả về một đối tượng Connection đóng vai trò là một lớp HttpConnection.
Kết nối bây giờ ở trong trạng thái thiết lập và phương thức yêu cầu được đặt là POST
bằng phương thức setRequestMethod().Tất cả các thuộc tính khác phải được thiết lập
trong trạng thái này
Phương thức openOutputStream() sẽ làm cho kết nối chuyển sang trạng thái kết
nối.Phương thức write() và flush() sẽ gỡi dữ liệu đến server
Đoạn mã còn lại giống như phương thức GET.Luồng input được mở chiều dài dữ liệu
được kiểm tra và dữ liệu được đọc toàn bộ khối hay từng kí tự một tùy vào chiều dài
được trả về.Khối lệnh cuối cùng sẽ đóng kết nối.
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 36
CHƯƠNG III HẠ TẦNG HỆ THỐNG VÀ DỊCH VỤ
NỘI DUNG QUA GPRS VÀ INTERNET
3.1 Giới thiệu về dịch vụ nội dung di động
3.1.1 Giới thiệu về nội dung di động
Nội dung di động là một vài kiểu truyền thông mà có thể xem được bằng điện
thoại di động, giống như nhạc chuông, đồ họa, trò chơi và hình ảnh…Các điện thoại
cầm tay được phát triển kể từ năm 1990 và nó đã trở thành thiết bị có ý nghĩa quan
trọng trong cuộc sống chúng ta.Người sử dụng di động có thể sử dụng những dịch vụ
như SMS (send and receive text messages), nghe nhạc, xem phim và cả những phần
mềm cấp cao như Microsoft Office.
3.1.2 Các loại dịch vụ nội dung
a) Dịch vụ trò chơi:
Dịch vụ trò chơi là những ứng dụng cho phép người sử dụng có thể chơi một trò
chơi trên thiết bị di động cầm tay.Những loại trò chơi di động bao gồm
Puzzle/Strategy, Retro/Arcade, Action/Adventure, Card/Casino, Trivia/Word,
Sports/Racing đang ngày càng hổ biến và gần gũi với người dùng thiết bị di động.
b)Dịch vụ hình ảnh:
Dịch vụ hình ảnh được người ta sử dụng như những hình nền trong di động và
cũng có thể sử dụng như một trình bảo vệ màn hình. Thuê bao khi sử dụng dịch vụ cần
đăng ký GPRS/MMS tải cấu hình tự động về máy người dùng có thể bắt đầu nhận về
ĐTDĐ không giới hạn hình nền, hình động …
c)Dịch vụ lưu trữ dữ liệu:
DataSafe - dịch vụ hỗ trợ lưu trữ dữ liệu ĐTDĐ trên mạng vừa được VinaPhone
công bố. Dịch vụ này cho phép người dùng sao lưu, đồng bộ dữ liệu cá nhân trên
ĐTDĐ, như: danh bạ, lịch làm việc, danh sách các việc cần làm, sổ ghi chép cá nhân...
lên trang web VinaPortal và ngược lại. Dịch vụ này giúp người dùng không bị mất dữ
liệu quan trọng trong những trường hợp bất khả kháng như mất ĐTDĐ, thất lạc hay
hỏng SIM, đổi máy... vì thông tin đã được hệ thống của VinaPhone lưu trữ và cho
phép khôi phục dữ liệu bằng vài thao tác đơn giản.
d)Dịch vụ nhạc :
Người sử dụng di động có thể nghe nhạc mp3 và một số định dạng khác trên
thiết bị di động của mình,có thể sử dụng làm nhạc chuông … người dùng sẽ cảm thấy
thoải mái hơn bằng những bản nhạc hay giai điệu âm thanh thú vị; giới trẻ nói riêng và người
sử dụng dịch vụ sẽ có thêm cơ hội để thể hiện mình, tạo ra sự khác biệt giữa đám đông với
một phong cách riêng của họ
e)Các dịch vụ khác:
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 37
¾ Voice –SMS: Cho phép thuê bao gửi một bản tin bằng lời nói cho một thuê bao
di động khác.
¾ Dịch vụ quà tặng âm nhạc: Cho phép thuê bao di động gửi tặng các bản nhạc
¾ Dịch vụ Contents Subscription: Dịch vụ cho phép khách hàng định kì được cung
cấp tự động các gói dịch vụ nội dung
¾ Dịch vụ Ibook: Dịch vụ đọc sách điện tử trên di động cho phép các điện thoại di
động không cần hệ điều hành cũng có thể đọc sách điện tử.
¾ Dịch vụ nội dung Mobile TV: Dịch vụ cho phép khách hàng xem các kênh truyền
hình, VoD ngay trên điện thoại di động.
3.2 Hạ tầng và dịch vụ nội dung trên mạng di động qua GPRS và Internet:
Mô hình sau cho chúng ta thấy hạ tầng của một dịch vụ di động
Hình 3.1 Mô hình của hạ tầng dịch vụ nội dung di động
Hình 3.1 cho chúng ta thấy hạ tầng của dịch vụ nội dung, phần trung tâm của hệ thống
là tầng ứng dụng (Application Sever).Thiết bị di động muốn giao tiếp được với
Application Server phải sử dụng mạng di động thông qua GPRS.Thiết bị di động phải
có những phần mềm tương thích với những dịch vụ nội dung này.
Một tầng ứng dụng (Application Server) cung cấp một nền tảng server-side để
xây dựng và triển khai ở mức logic .Nó được phân tán cho cả client và server hoặc có
thể chỉ ở trên server. Tất cả các tầng ứng dụng có ít nhất 3 lớp rời rạc : business logic
layer (tầng luận lý nghiệp vụ), presentation layer(tầng trình diễn), và data access layer .Lớp
business logic là phần lõi trong Application Server nơi chứa đựng tất cả các thông tin
và các thành phần của nó đều được đóng gói (encapsulated). Lớp data access layer cho
phép tích hợp các dịch vụ mà có khả năng sử dụng các thành phần trong lớp business
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 38
logic.Lớp presentation cung cấp nhiều phương thức và giao diện để cung cấp nội dung từ
Application Server.
Khi chúng ta gửi một yêu cầu dịch vụ nội dung nào đó,thì nội dung được trình bày có
thể được định dạng theo một giao thức nào đó chẳng hạn như WML (Wireless Markup
Language) hoặc một XML document sau đó được gửi thông qua giao thức mạng không
dây(wireless transport protocol).
3.3 Kiến trúc của tầng ứng dụng
Mô hình của tầng ứng dụng được thể hiện như hình sau
Hình 3.2 Mô hình của lớp Application Server
• Tầng trình diễn (Presentation Layer) chỉ đả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âmm
đến cách mà thông tin phát sinh. Java Server Page và server let quản lý bỡi một
Webserver J2EE, xác định tầng trình diễn –đây là giao diện do server quản lý
• Tầng luận lý nghiệp vụ (Business Logic Layer): đảm nhận chức năng lõi của
ứng dụng các tính năng và các hàm để 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 trình diễn
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ó
Mặc khác, tầng luận lý nghiệp vụ còn chuyển giao nội dung tới ứng dụng người
dùng chẳn hạn như WML dùng cho điện thoại sử dụng WAP, VXML dùng cho
trình duyệt thoại (voice browser), HTML cho trình duyệt web, và ngôn ngữ đặc tả
XML dành cho những ứng dụng có web services.
• Tầng truy cập dữ liệu (Data Access layer): tầng này quản lý lưu trữ bền vững 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.
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 39
Kiến trúc chung của một ứng dụng dịch vụ nội dung là:
Một client ứng dụng sử dụng MIDP hay còn gọi là MIDlet client, cung
cấp giao diện người dùng trên thiết bị di động. MIDlet giao tiếp với một
Java Serverlet thường là thông qua HTTP và một kênh truyền bảo mật
khi cần thiết.
Serverlet dịch yêu cầu từ MIDLet và tới lượt nó gỡi yêu cầu đến các
thành phần EJB(Enterprise JavaBean). Khi các yêu cầu được thỏa mãn
servelet phát sinh một hồi đáp cho MIDlet
Các thành phần EJB bao bọc logic nghiệp vụ của ứng dụng . Một trình
chứa EJB cung cấp các dịch vụ chuẩn như giao tác, bảo mật, và quản lý
tài nguyên để các nhà phát triển có thể tập trung vào việc thực hiện logic
nghiệp vụ.
Các thành phần serverlet và EJB có thể sử dụng các API bổ sung để truy
xuất dữ liệu và dịch vụ.Ví dụ chúng có thể sử dụng JDBC API để truy
xuất cơ sở dữ liệu quan hệ và Java mail API để gỡi email cho người
dùng .
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 40
CHƯƠNG IV XÂY DỰNG ỨNG DỤNG TRONG ĐÓ MÁY DI
ĐỘNG DÙNG GPRS TIẾP NHẬN VÀ THỂ HIỆN HÌNH ẢNH LIÊN
TỤC TỪ WEBSERVER ĐẶT TRÊN INTERNET
4.1 Giới thiệu chương trình :
4.1.1 Giới thiệu:
Java 2 Micro Edition(J2ME) là một công nghệ Java để phát triển những ứng
dụng mạng không dây(wireless). Đề tài này sử dụng công nghệ J2ME/MIDP và J2EE
để cài đặt một hệ thống trong đó máy di động sẽ tiếp nhận và thể hiện ảnh từ websever
đặt trên Internet thông qua kết nối GPRS.
Người dùng nếu có điện thoại hỗ trợ Java và có cài đặt GPRS thì có thể sử dụng
chương trình. Ứng dụng này giúp người dùng có thể xem được hình ảnh mà họ đã lưu
trữ trên một Server bất kì nào đó. Nếu điện thoại của người dùng và nhà cung cấp dịch
vụ cho phép tải ứng dụng trên internet xuống điện thoại di động thì người dùng có thể
tải trực tiếp ứng dụng từ địa chỉ URL do webserver cung cấp, nếu không thì phải cài
đặt chương trình bằng các giao tiếp với máy tính bằng hồng ngoại, cáp…
Sau đây là các điều kiện cần thiết để chương trình chạy được trên di động :
¾ Điện thoại di động có hỗ trợ truy xuất Internet , ví dụ như dùng dịch vụ GPRS
của các nhà cung cấp viễn thông .
¾ Điện thoại di động phải hỗ trợ Java , cụ thể là hỗ trợ cấu hình CLDC 1.1 và
MIDP 2.0 .
Mục đích chính đề tài là tập trung vào giải pháp kĩ thuật để máy di động thể hiện
được ảnh liên tục lấy từ kho ảnh có sẵn trên webserver , chưa chú trọng đến áp
dụng thực tế như thế nào, mô hình ở đây chỉ để thử nghiệm.
4.1.2 Bộ công cụ để phát triển chương trình:
Gồm hai chương trình sau :
¾ Netbeans 6.0 , tải ở www.netbeans.org .
¾ JDK 1.6 tải ở
¾ Điện thoại di động Nokia N72 hỗ trợ MIDP 2.0, hệ điều hành là Symbian OS 8.1,
Series 60 UI 2.8 ,kích thước màn hình 176 x 208 pixels dùng cho việc kiểm tra ứng
dụng
Máy chủ dịch vụ được cài Windows Server 2003 và cài đặt các phần mềm như sau:
¾ Java Server Page: Apcache Tomcat 5
¾ Database: MySQL Server 5.
4.2 Mô hình của hệ thống:
Mô hình của một hệ thống tiếp nhận ảnh từ webserver và thể hiện trên di động.
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 41
Máy chủ lưu trữ ảnh
Hình 4.1 Mô hình chung của hệ thống
Thiết bị di động : phải có đầy đủ điều kiện như được nêu ở phần 4.1.2
Máy chủ webserver: dùng để lưu trữ kho hình ảnh
Hệ thống này có thể được chia ra làm hai phần : Máy chủ dịch vụ và người sử
dụng dịch vụ. Trên máy chủ dịch vụ này có một thư mục lưu trữ hình ảnh mà người
dùng cần xem. Người dùng có thể sử dụng điện thoại di động có hỗ trợ Java để xem
những hình ảnh này từ webserver đặt trên Internet . Bên cạnh đó, sẽ có một cơ sở dữ
liệu lưu trữ dữ liệu thông tin của người sử dụng . Người sử dụng có thể truy cập vào
hệ thống mạng này mọi lúc mọi nơi thông qua thiết bị di động.
Đầu tiên người dùng sẽ dùng di động của mình gửi yêu cầu đăng nhập để kết
nối và truy cập đến server lưu trữ hình ảnh ,khi đăng nhập thành công người dùng gửi
tiếp yêu cầu xem ảnh trên thiết bị di động, khi nhận được yêu cầu từ phía người dùng ,
máy chủ sẽ thực hiện gửi ảnh liên tục và nó được thể hiện trên di động của người dùng
đó.
4.3 Xây dựng chương trình:
4.3.1 Thực hiện chức năng phía máy chủ:
Bên phía máy chủ này, xây dựng một webserver sử dụng công nghệ JavaServer
Pages(JSP) để thực hiện những ứng dụng web mà cần sự truy vấn từ phía người dùng.
JSP là công nghệ mới nhất để phát triển những ứng dụng website động và dựa trên
công nghệ Servlet. Hình 4.2 mô tả chương trình mẫu xác nhận người dùng đăng nhập
vào hệ thống máy chủ dịch vụ.Chương trình mẫu này chứa đựng 3 lớp: Lớp Client,
Web Server và Data layer(Lớp dữ liệu). Trên lớp Client, người dùng nhập vào
username và password sau đó thực hiện một yêu cầu tới Server.
PDA
Smart Phone
Java-phone
Radio Tower
Internet
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 42
Web Server
Phía Client
Data
Username&Password
(Request)
Result
(Response)
Hình 4.2 Mô hình đăng nhập vào webserver
Trên JSP server side, JSP sever cần một JSP Container để xử lý trang JSP.Có
rất nhiều JSP Containner là Apache TomCat, IBM Web Sphere, Oracle 9i Application
Server.Đề tài này đã chọn sử dụng một JSP Containner miễn phí là Tomcat.
Web Server with JSP Containner
(Request) (1) (2)
(3)
Client-Side (Response) (4)
Hình 4.3 Mô hình luồng xử lý của JSP
Trong JSP server side, JSP Server có thể kết nối cơ sỡ dữ liệu thông qua JDBC(
Java Database Connectivity) connection.Công nghệ này là một API (Application
Programming Interface), JDBC API bao gồm tập các lớp và các interface được viết bởi
ngôn ngữ lập trình Java .JDBC phiên bản 1.0 cung cấp những phương thức cơ bản để
truy cập dữ liệu.JDBC phiên bản 2.0 bổ sung các API cơ bản với nhiều tính năng cao
cấp hơn .JDBC API cho phép thuận lợi ở việc “viết một lần chạy mọi nơi”.
Kiến trúc JDBC được minh họa trong hình 4.4. Những ứng dụng Java của chương
trình này cũng đòi hỏi một JDBC driver để có thể giao tiếp với từng phần data source
(dữ liệu nguồn) khi người dùng truy cập vào.Một JDBC driver là một lớp mà thi hành
JDBC Driver interface và có thể yêu cầu chuyển đổi chương trình cho nhiều database
riêng biệt.Người sử dụng có thễ dễ dàng kết nối tất cả dữ lệu của công ty bỡi một công
nghệ JDBC driver.Có 4 kiểu driver khác nhau là JDBC- ODBC bridge plus ODBC
JSP Pages
Username
Password
Xử lý và đáp
ứng lại yêu cầu
từ phía Client
Đăng nhập thành công
Database
JSP Pages
JSP pages
Servlet
Complie Servlet
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 43
driver,Native-API partly-Java driver, JDBC-Net pure Java driver and Native-
protocol pure Java driver.
Hình 4.4 :Kiến trúc Java Database Connectivity
Cơ sở dữ lệu mà đề tài này sử dụng là MySQL để tạo một database mới (IDCheck).
IDCheck chứa đựng một bảng USER. Bảng USER này lưu trữ 3 trường
ID,Username,Password dùng để xác nhận người dùng truy cập vào hệ thống dịch vụ
này .
Lưu đồ sau mô tả phương thức đăng nhập vào hệ thống
Application (A) Application (B)
Java Database Connectivity (JDBC)
Sybase driver mySQL driver SQL driver
Sybase MySQL SQL Server
Lấy đối số(user
name& password)
từ phía client
Nạp JDBC driver
thích hợp
Thực hiện một kết
nối tới CSDL trên
server(MySQL)
Thi hành câu lệnh
SQL
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 44
Hình 4.5 Lưu đồ của thuật toán đăng nhập vào hệ thống
Trên máy chủ dịch vụ này có một thư mục để làm kho lưu trữ ảnh của người
dùng .Trong phần thực hành này thư mục đó được đặt trong C:\Program
Files\Apache Software Foundation\Tomcat 5.5\webapps\RemoteMonitor\hinh_p1
4.3.2 Thực hiện chức năng phía máy di động
Thiết bị di động cho phép truy cập internet thông qua GPRS làm phát triển
nhiều dịch vụ quan trọng trong cuộc sống hằng ngày.Những thiết bị này có khả năng
truy cập thông tin trong thời gian thực và có thể làm nhiều công việc hiệu quả trong
hoàn cảnh sống thực.Người sử dụng có thể download công nghệ J2ME này từ website
qua thiết bị của bạn.Có 2 phương thức để download những ứng dụng này.Download
trên serial cable hoặc trên OTA.
Trong đề tài này cần phải xây dựng một MIDlet. Hình sau minh họa chức năng của
ứng dụng MIDlet
Lấy dữ liệu từ
DBMS
Kiểm tra tài
khoản đăng
nhập
PASS NO PASS
Trả về thông
điệp đăng
nhập thành
công
Trả về thông
điệp đăng
nhập không
thành công
Đóng DBMS
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 45
Kết nối tới
Interner
Người dùng
MIDlet Application
Hình 4.6 Chức năng của ứng dụng MIDlet
Nền tảng Java 2 Standard Edition (J2SE) và Java 2 Enterprise Edition (J2EE)
cung cấp những thư viện lớn cho lập trình ứng dụng mạng và lập trình desktop
computer.Nhưng những thư viện này cần tốn rất nhiều bộ nhớ khi chạy nó. Điều đó
không thích ứng cho thiết bị di động cầm tay với dung lượng bộ nhớ nhỏ. Trong nền
tảng J2ME, có một Generic Connection Framework. Framework này cung cấp một
các thích hợp cho lập trình ứng dụng mạng. trên thiết bị di động.
Giao diện HttpConnection định nghĩa những phương thức cần thiết và hằng số
cho kết nối HTTP .Chương trình MIDlet này sẽ một gọi phương thức
Connector.open() mà nó sẽ trả về đối tượng HttpConnection để mở một kết nối tới
webserver. Và sau đó sẽ sử dụng HttpConnection.getResponseCode() để nhận được
một trạng thái kết nối. MIDlet sẽ yêu cầu 1 trang JSP để xử lý khi người dùng kết nối
tới.
Trong sự thử nghiệm sự kiểm tra hình ảnh, ứng dụng này sẽ cho người dùng
thấy một số hình ảnh được đặt trên server. Chúng ta sử dụng gói thêm vào
sun.image.codec.jpeg để xử lý một số hình ảnh.Chất lượng của những ảnh này tùy
thuộc vào băng thông mạng và bộ xử lý của điện thoại. Chương trình đã dùng đối
tượng Thread để tự động lấy ra chu kỳ của ảnh. Nếu băng thông mạng tốt, chương
trình này có thể thấy ảnh ngay lậy tức.
Hình 4.7 mô tả lưu đồ của ứng dụng MIDlet cho chức năng tiếp nhận và thể hiện ảnh
liên tục từ webserver trên Internet.
Server
(2)
Chức năng
xem ảnh
từ xa
(1)
Đăng
nhập
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 46
Hình 4.7 Lưu đồ thuật toán của MIDlet
(Login)
Nhập username và
password
Kết nối tới Server
Trạng thái
kết nối
Nhận biết người dùng
(User Identification)
Kiểm tra
xác thực
Chức năng xem
ảnh(View Image)
Kết nối tới Server
có thư mục lưu trữ
ảnh
Nhận hình ảnh
từ Webserver
và gửi về phía
client
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 47
4.3.3 Sơ đồ chức năng chi tiết của ứng dụng MIDlet
Hình 4.8 Sơ đồ chức năng của ứng dụng
Sau đây là một số màn hình giao diện của chương trình ( minh họa trên điện thoại giả
lập ) :
Hình 4.9 Màn hình đăng nhập của hệ
thống
Màn hình khởi động
chương trình
Màn hình đăng nhập vào
hệ thống dịch vụ
Màn hình chọn chức năng
thể hiện ảnh từ webserver
Màn hình hiển thị đường
dẫn URL của webserver
Màn hình hiển thị hình ảnh
từ webserver
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 48
Hình 4.10 Màn hình chức năng Hình 4.11 Màn hình hiển thị đường
dẫn xem ảnh URL của webserver
Hình 4.12 Màn hình thể hiện ảnh liên tục từ
webserver
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 49
4.4 Các mô hình UML của chương trình
Báo cáo Đồ án tốt nghiệp Chương IV: Xây dựng ứng dụng thể hiện ảnh trên di động
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 50
Hình 4.13 Mô hình UML của phía Client
4.5 Chạy chương trình :
Chương trình đầy đủ gồm hai tập tin : Login.jad và Login.jar . Tập tin .jad
dùng để lưu các thông tin của chương trình , ví dụ như kích cỡ của tập tin .jar , phiên
bản MIDP và CLDC … Tập tin .jar mới là tập tin chính của chương trình .
Sau khi cài đầy đủ hai chương trình ở phần 4.1.2, khi chạy mô phỏng trên máy
thì chỉ cần nhấp đúp chuột vào tập tin .JAD là được . Một máy điện thoại di động ảo
sẽ hiện lên để chạy ứng dụng . Nhấn vào nút phía trên góc bên phải là chương trình sẽ
chạy :
Hình 4.14 : Chương trình chạy trên điện thoại ảo .
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 47
CHƯƠNG V MỞ RỘNG ỨNG DỤNG THỂ HIỆN ẢNH
5.1 Hướng mở rộng
Phần thực hành theo nhiệm vụ thiết kế đồ án tốt nghiệp đã được thực hiện trong
chương IV, trong đó máy điện thoại dùng GPRS tiếp nhận và thể hiện ảnh liên tục từ
webserver đặt trên Internet .Nhận thấy có thể phát triển ứng dụng này thêm nữa và
theo khuyến khích của giáo viên hướng dẫn sinh viên đã mở rộng được qua hai giai
đoạn với nội dung sau:
9 Giai đoạn 1: Máy điện thoại di động của người dùng sẽ tiếp nhận ảnh từ một
máy chủ dịch vụ (Webserver) có gắn thiết bị chụp ảnh là một webcam, nguồn ảnh
được cung cấp từ Webcam
9 Giai đoạn 2: Máy điện thoại di động người dùng có thể điều khiển bật
webcam và sau đó nhận hình ảnh trực tiếp từ webcam thực hiện thông qua một cơ
chế trừu tượng hóa gọi là Socket.
5.2 Mô hình của hệ thống
Máy điện thoại Máy chủ dịch vụ
Hình 5.1 Mô hình của hệ thống xem ảnh từ webcam
Hệ thống này có thể được chia ra làm hai phần : Máy chủ dịch vụ và phía
người dùng.Trên Server ,ở đó là một Webserver có gắn thiết bị là một webcam.Người
dùng có thể sử dụng webcam để chụp lại hình ảnh và bằng thiết bị điện thoại di động
có hỗ trợ Java người dùng có thể xem hình ảnh trên di động.Bên cạnh đó, sẽ có một
cơ sở dữ liệu lưu trữ dữ liệu thông tin của người sử dụng .Người sử dụng có thể truy
cập vào hệ thống mạng này mọi lúc mọi nơi thông qua thiết bị di động..
5.3 Xây dựng chương trình trong giai đoạn 1:
5.3.1 Chức năng của phía Server :
Phía máy chủ dịch vụ cũng xây dựng webserver giống như ban đầu và cũng có
cơ sở dữ liệu MySQL để người dùng có thể truy cập vào hệ thống.Phần này đã nói rất
rõ trong chương IV. Mặt khác, trên Server này có trang bị một thiết bị chụp ảnh. Đề
PDA
Smart Phone
Java-phone
Radio Tower
Interne
t
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 48
tài này đã sử dụng một thiết bị có khả năng chụp ảnh từ desktop computer. Để có thể
viết ứng dụng này, cần phải sử dụng đến thư viện Java Media Framework API. Java
Media Framework (JMF) là một Java API cho sự hợp nhất dữ liệu media chẳng hạn
như audio và video vào trong ứng dụng Java và applet.JMF được thiết kế để hỗ trợ hầu
hết nhiều kểu media tiêu chuẩn như AIFF, AU, AVI, GSM, MIDI, MPEG,
QuickTime, RMF, và WAV.Với thư viện JMF API, chương trình có thể dễ dàng
chụp lại hình ảnh, điều khiển và lưu trữ những ứng dụng media.
Để viết những ứng dụng JMF cơ bản ,cần phải xây dựng lớp Manager để tạo
ra các phương thức dựng như Players, Processors, DataSources, và DataSkins cho
ứng dụng này.
Ví dụ: player = Manager.createRealizedPlayer(medalocator);
CaptureDeviceManager là một lớp Manager mà nó duy trì một sự đăng kí sẵn có
của thiết bị webcam này để capture trên 1 hệ thống.CaptureDeviceManager sử dụng
một đăng kí và truy vấn tới máy để định vị thiết bị và trả về đối tượng
CaptureDeviceInfo cho thiết bị có được.CaptureDeviceManager cũng sử dụng để
đăng kí một thiết bị capture mới.
Sử dụng CaptureDeviceManager.getDevice() để lấy một đối tượng
CaptureDeviceInfo mà nó tương ứng với thiết bị webcam đề tài này sử dụng.
Ví dụ:
String str= “vfw:Microsoft WDM Image Capture(Win32):0”;
CaptureDeviceInfo di = CaptureDeiviceManager.getDevice(str);
Chú ý: Nếu phương thức trả về Null thì có nghĩa thiết bị capture không thể tìm thấy
JMF API định nghĩa 2 kiểu điều khiển : Player và Processor. Player là một
MediaHandler biểu diễn và điều khiển dữ liệu media. Phương thức Player cung cấp
nhiều phương thức chứa đựng những thành phần AWT, điều khiển xử lý media, và
cách để quản lý những Controller khác.
CCD Camera
Webcam Output Devices
(Capture Devices ) (Destination)
Hình 5.2 Mô hình JMF player
Trong hình 5.2 chương trình đã sử dụng thiết bị webcam để chụp lại hình ảnh. Những
thiết bị như vậy được xem như là DataSource. DataSource thường đưa vào luồng
media để tới Player.Và đích biểu diễn tùy thuộc vào kiểu nội dung media được trình
Data Source Player
`
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 49
bày. MediaLocator mô tả vị trí nội dung của media. Để lấy MediaLocator, chương
trình cần tạo ra một DataSource cho thiết bị này thông qua lớp Managers.
Player có thể thực hiện một trong 6 trạng thái (Started, Stopped, Unrealized (chưa
thực hiện), Realizing, Realize(thực hiện), Prefetching(nạp trước), và
Prefetched).Trong những hoạt động thông thường ,một Player sẽ bước qua mỗi trạng
thái cho đến khi nó đạt được trạng thái Started.
Stopped Started
realize
RCE prefetch PFCE
deallocate (giải phóng) Stop
SE
deallocate.setMediaTime
RCE: RealizeCompleteEvent
PFCE :PrefetchCompleteEvent
SE:StopEvent
Hình 5.3 Mô hình trạng thái Player
Khi một media Player đầu tiên được tạo, nó là Unrealized .
Khi realize được gọi, một Player từ trạng thái Unrealized chuyển sang trạng thái
Realizing.Một Realizing Player là cách thức xác định nhu cầu tài nguyên sử dụng.
Khi một Player hoàn thành Realizing , nó chuyển sang trạng thái Realized. Một
Realized Player biết tài nguyên cần là gì và thông tin về kiểu phương tiện được trình
bày.
Khi một Prefetch được gọi, một Player di chuyển sang trạng thái Prefecthing.Một
prefetching player là đang chuẩn bị trình bày một kiểu truyền thông dữ liệu.
Khi một Player hoàn thành prefetching, nó chuyển sang trạng thái prefetched. Một
Prefetched player sẵng sàng bắt đầu.
Hình 5.4 mô tả lưu đồ ứng dụng “Mycapture” để capture hình ảnh từ webcam.
Trong đề tài này khi webcam capture hình ảnh sẽ được lưu trong C:\Program
Files\Apache Software Foundation\Tomcat 5.5\webapps\RemoteMonitor\hinh_p1
Unrealized Realizing Realized Prefetching prefectched Started
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 50
Hình 5.4 Lưu đồ thuật toán ứng dụng “MyCapture”
Thêm gói JMF và gói
xử lý
ảnh(com.sun.image.co
dec.jpeg) vào thư viện
java
Định nghĩa các biến
Player,CaptureDeviceInfo,
MediaLocator…
Định nghĩa kiểu thiết bị
capture ảnh
Tạo đối tượng Player
Kiểm tra trạng
thái Player
chờ
đợi
Bắt đầu thực
hiện Player
Tạo 1 đối tượng Thread để
capture ảnh
Lưu ảnh với định dạng JPG
trong một thư mục
Kết thúc
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 51
5.3.2 Chức năng phía Client
Trong đề tài này cần phải xây dựng MIDlet. Hình 5.5 minh họa chức năng
MIDlet .Chức năng của ứng dụng MIDlet này là xem ảnh từ một thiết bị chụp ảnh có
sẵn trên Server. MIDlet Application
Kết nối tới
Interner
Người dùng
Thiết bị capture
Hình 5.5 Chức năng của ứng dụng MIDlet
Trong sự thử nghiệm sự kiểm tra hình ảnh, ứng dụng này sẽ capture một số ảnh và đặt
chúng trên 1 server.Chúng ta sử dụng gói thêm vào sun.image.codec.jpeg để xử lý
một số hình ảnh.Hình ảnh này được capture bằng webcam và được chuyển đổi định
dạng JPG.Chất lượng của những ảnh này tùy thuộc vào băng thông mạng và bộ xử lý
của điện thoại.Chương trình đã dùng đối tượng Thread để tự động lấy ra chu kỳ của
ảnh.Nếu băng thông mạng tốt, chương trình này có thể thấy ảnh ngay lậy tức.
Hình 5.6 mô tả lưu đồ thuật toán của MIDlet
Server
Xem hình
ảnh
(1)
Đăng
nhập
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 52
Hình 5.6 Lưu đồ thuật toán của MIDlet
(Login)
Nhập username và
password
Kết nối tới Server
Trạng thái
kết nối
Nhận biết người dùng
(User Identification)
Kiểm tra
xác thực
Chức năng xem
ảnh
Kết nối tới Server
có gắn thiết bị
webcam
Nhận hình ảnh
từ webcam và
gửi về phía
client
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 53
5.3.3 Sơ đồ chức năng chi tiết của ứng dụng MIDlet
Hình 5.7 Sơ đồ chức năng của ứng dụng
Sau đây là một số màn hình giao diện của chương trình ( minh họa trên điện thoại giả
lập ) :
Màn hình khởi động
chương trình
Màn hình đăng nhập vào
hệ thống giám sát
Màn hình chọn chức năng
thể hiện ảnh từ webserver
Màn hình hiển thị đường
dẫn URL của webserver
Màn hình hiển thị hình ảnh
capture từ webcam
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 54
Hình 5.8 Màn hình thể hiện ảnh capture từ webcam trên server
5.4 Các module xử lý
5.4.1 Phía Server
Hình 5.9 Mô hình UML của máy server
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 55
5.4.2 Phía Client
Hình 5.10 Mô hình UML của máy server
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 56
5.5 Xây dựng chương trình ở giai đoạn 2
Trong giai đoạn này sẽ xây dựng mô hình ứng dụng khách/chủ(client/server) sử
dụng lớp Socket và Server Socket để kết nối và trao đổi thông tin giữa máy khách và
máy chủ.Máy khách sẽ gửi tín hiệu để bắt đầu bật webcam lên và sau đó nhận dữ liệu
truyền về từ máy chủ thể hiện trên di động.
Giải thuật cho chương trình ở giai đoạn 2 này gồm các bước sau
-Tạo Socket đăng kí địa chỉ Socket với hệ thống
-Đặt Socket ở trạng thái lắng nghe chờ và sẵn sàng cho việc kết nối Client
-Chấp nhận kết nối từ Client gỡi nhận dữ liệu theo giao thức ứng dụng trong đề
tài này sử dụng giao thức TCP socket
-Đóng kết nối sau khi hoàn thành , trở lại trạng thái lắng nghe và chờ kết nối
mới.
Mô hình lập trình mạng theo phương thức Socket
*Server
– Server process phảichạy trước.
– Server phải tạo một socket để lắng nghe và chấp nhận các kết nối từ client.
* Client
– Khởi tạo TCP socket.
– Xác định IP address, port number củaserver.
– Thiết lập kết nối đến server.
Khi server nhận yêucầ ukết nối, nó sẽ chấp nhận yêu cầu và khởi tạo socket mới để
giao tiếpvới client.
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 57
5.5.1Giao diện SocketConnection trong J2ME
Giao diện SocketConnection mở rộng giao diện StreamConnection . Nó cung
cấp cơ sở cho giao diện SecureConnection của MIDP . Giao diện này cung cấp các
phương thức thiết lập một kết nối socket bình thường , ví dụ :
SocketConnection socket = Connector.open("socket://abc.com:110");
InputStream input = socket.openInputStream();
OutputStream output = socket.openOutputStream();
5.5.2 Sơ đồ chức năng chi tiết của MIDlet
Màn hình khởi động
chương trình
Màn hình đăng nhập vào
hệ thống giám sát
Màn hình chọn chức năng
ViewWebcam
Màn hình hiển thị đường
dẫn URL của webserver
Màn hình hiển thị menu
cho phép bật webcam và
nhận hình ảnh từ webcam
Báo cáo Đồ án tốt nghiệp Chương V: Mở rộng ứng dụng thể hiện ảnh
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 58
Sau đây là một số màn hình giao diện của chương trình ( minh họa trên điện thoại giả
lập ) :
Báo cáo Đồ án tốt nghiệp Kết luận
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 59
KẾT LUẬN
1. Kết quả đạt được :
Sau gần hai tháng làm luận văn, tôi cũng đã nắm được căn bản về J2ME ,
GPRS.Đặc biệt tập trung vào công nghệ J2ME.Đề tài cũng xây dựng Demo minh họa
các kỹ thuật cơ bản khi phát triển ứng dụng với J2ME.Nội dung mang tính chất ứng
dụng nhất nằm ở chương cuối , giới thiệu về chương trình “Xem ảnh” qua điện thoại di
động . Chương trình này giúp cho người sử dụng có thể xem ảnh của mình trên thiết bị
di động nhỏ gọn.Hơn nữa dịch vụ này có thể cho phép người dùng điều khiển webcam
từ Internet.Người dùng có thể quan sát ngôi nhà của họ thông qua thiết bị di động này.
2. Hướng phát triển :
Trong tương lai chúng ta có thể phát triển thành một hệ thống dịch vụ thông tin
di động bao gồm nhiều dịch vụ chẳng hạn như hệ thống gửi nhận mail qua điện
thoại,hệ thống tra từ điển…do đó khi phát triển đề tài lên tôi sẽ tìm hiểu sâu hơn và
hoàn chỉnh hệ thống tích hợp với các dịch vụ Web để có thể triển khai ứng dụng thực
tế.
Về chương trình giám sát từ xa này hướng phát triển là mở rộng thêm các chức
năng giám sát các thiết bị trong nhà,văn phòng mọi lúc mọi nơi.
Trong đề tài này vẫn còn chưa đề cập đến tính bảo mật đây là một mặt hạn chế
trong quá trình làm đề tài, vì bảo mật trong wireless là một vấn đề còn nan giải hiện
nay.Cho nên phần bảo mật trong J2ME sẽ được phát triển thêm trong thời gian sau.
3. Tổng kết và nhận xét :
Đề tài chủ yếu tập chung vào công nghệ J2ME,và đã xây dựng được ứng dụng
đơn giản. Chương trình được viết bằng ngôn ngữ J2ME , đó là một nhánh của ngôn
ngữ lập trình Java để phát triển các ứng dụng trên điện thoại di động hay các thiết bị
cầm tay nhỏ gọn khác . Trong tương lai công nghệ này hứa hẹn sẽ rất phát triển trong
việc lập trình các phần mềm trên điện thoại di động .
Về ý nghĩa của ứng dụng là xây dựng được ứng dụng multimedia trên các đầu
cuối di động cấu hình yếu, hạ tầng mạng di động giá rẻ (GPRS). Có thể áp dụng
chương trình ở giai đoạn 2 để giám sát từ xa qua thiết bị di động.
Báo cáo Đồ án tốt nghiệp Tài liệu tham khảo
Sinh viên : Trần Nguyên Vũ . Lớp : D05THA1 Trang 60
TÀI LIỆU THAM KHẢO
1. John W.Muchow , Core J2METM Technology & MIDP , xuất bản bởi Pretince
Hall PTR , ngày xuất bản 21/12/2001 .
2. Vartan Piroumian , Wireless J2METM Platform Programing , xuất bản bởi
Pretince Hall PTR , ngày xuất bản 25/03/2002 .
3. Lê Ngọc Quốc Khánh , đề tài thực tập “ Xây dựng hệ thống thương mại di động
áp dụng công nghệ Java “ , năm 2003 .
4. Design and Implementation of Wireless Web-Service Technology Based on
Java, Jeng-An Liaw and Shih-Ching Ou Department of Electrical engineering
5. Lập trình mạng với Java, Phương Lan (chủ biên)
6. Martyn Mallick, “Mobile and Wireless Design Essentials”, Wiley Publishing Inc,
2003
7. Danh mục các địa chỉ Website liên quan đến đồ án/khoá luận :
o
micro_15.html : trang blog của Lê Ngọc Quốc Khánh .
o : trang wikipedia tiếng Việt về GPRS
.
o : trang về các lớp của
GPRS .
o
ml : trang phát triển của Sun , đây là trang về chủ đề lập trình mạng cấp
thấp trong MIDP 2.0 .
o : trang
phát triển của Sun , đây là trang về chủ đề gói cài đặt tùy chọn
FileConnection .
Các file đính kèm theo tài liệu này:
- Nghiên cứu phát triển dịch vụ nội dung cho thuê bao di động.pdf