Nghiên cứu phát triển dịch vụ nội dung cho thuê bao di động

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

pdf72 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2315 | Lượt tải: 0download
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:

  • pdfNghiên cứu phát triển dịch vụ nội dung cho thuê bao di động.pdf
Luận văn liên quan