Mô hình xử lý của chương trình

Một phần của tài liệu Đề tài xây dựng hệ thống quảng bá thông tinmedia qua mạng (Trang 37)

Hình 2.3: Mô hình xử lý của server

Server có chức năng cho phép người dùng kiểm tra hiện đang có bao nhiêu Client đang lắng nghe để nhận dữ liệu, sau khi kiểm tra thì người dùng có thể gửi file và thời lượng hiển thị, cùng với thời gian hiển thị theo giờ hệ thống cho 1 host hoặc 1 nhóm host nào đó tùy theo giao thức được sử dụng là UDP hay TCP.

Hình 2.4: Kiểm tra số lượng Client đang lắng nghe

Để kiểm tra số lượng Client đang lắng nghe thì server sẽ gửi 1 message dạng Multicast, sau khi nhận được tín hiệu thì các Client sẽ trả lời cho server biết : (1) Server gửi tín hiệu kiểm tra có bao nhiêu Client đang lắng nghe

(2) Client phản hồi đang sẵn sàng nhận dữ liệu và thông tin đang có.

Hình 2.5: Sử dụng kỹ thuật Multicast để truyền dữ liệu.

Server sử dụng giao thức UDP để truyền dữ liệu cho các Client. Đề phòng trường hợp mất dữ liệu thì server sẽ sử dụng giao thức TCP để gửi bổ sung dữ liệu đến những Client nhận thiếu dữ liệu.

(1)Server sử dụng giao thức UDP để truyền dữ liệu cho các client, sau khi nhận được dữ liệu, client sẽ gửi thông tin các file nhận được cho server biết.

(2)Sau khi so sánh với danh sách file đã gửi, Client nào nhận thiếu dữ liệu sẽ được server gửi bổ sung bằng giao thức TCP.

Hình 2.6: Server gửi thời lượng hiển thị, thời gian cho các client

Sau khi đã hoàn tất công việc gửi dữ liệu xuống các client, server sẽ gửi danh sách thời lượng hiển thị, thời gian hiển thị theo giờ hệ thống của từng file xuống client ở dạng Multicast, sau khi nhận được bản tin này thì các Client sẽ bắt đầu hiển thị trên browser,

Hình 2.7: Mô hình tổng quan của chương trình.

Sau khi nhận dữ liệu và thời lượng hiển thị thì client sẽ cho hiển thị các dữ liệu đó trên web browser.

2.2.2, Mô hình xử lý Client

Hình 2.8: Mô hình xử lý của Client.

Sau khi nhận được dữ liệu từ server đưa xuống, Client sẽ lưu chúng vào 1 thư mục do người sử dụng đặt trước, khi nhận được thời lượng của server đưa xuống, Client sẽ tạo ra 1 trang html có mã nhúng của dữ liệu muốn hiển thị và sau đó load nó lên, sau mỗi một thời gian nhất định, client sẽ tạo 1 trang html khác đè chồng lên trang có sẵn và thực hiện refresh lại trang web. Sau khi kết thúc 1 lượt thì dữ liệu sẽ được chạy lại từ đầu.

Như vậy, để thực hiện các công việc trên chúng ta phải sử dụng các gói thư viện của Java gồm : java.io, java.net, java.nio, java.util, java.awt, java.text, java.swing, java.

2.3, Xác định các gói thư viện sẽ sử dụng 2.3.1, Gói java.net 2.3.1, Gói java.net

Cung cấp các lớp và các giao diện cho việc lập trình TCP hoặc UDP, trong chương trình sử dụng các lớp chính là :

• Đối với lập trình TCP sử dụng các lớp :

o java.net.ServerSocket; o java.net.Socket;

o java.net.SocketAddress;

• Đối với lập trình UDP sử dụng các lớp :

o java.net.DatagramPacket; o java.net.InetAddress; o java.net.MulticastSocket;

2.3.2, Gói java.io

Cung cấp các phương thức nhập xuất và thao tác với file. Sử dụng các lớp chính của gói java.io là :

• java.io.File; • java.io.FileInputStream; • java.io.FileOutputStream; • java.io.InputStreamReader; • java.io.OutputStreamWriter; 2.3.3, Gói java.util

Gói Java.util cung cấp một số lớp tiện ích Java, thường xuyên trong tất cả các loại chương trình ứng dụng. Nó bao gồm một số lớp sau:

• Hashtable • Random • Vector

• StringTokenizer

• java.util.ArrayList; • java.util.Hashtable; • java.util.LinkedList; • java.util.List; • java.util.Vector; • java.util.Iterator; • java.util.Queue; • java.util.Set; • java.util.Date; • java.util.Properties; 2.3.4, Gói java.text (adsbygoogle = window.adsbygoogle || []).push({});

Định dạng ngày tháng để ghi file log.Sử dụng các thành phần: • java.text.DateFormat;

• java.text.SimpleDateFormat;

2.3.5, Gói giao diện đồ họa javax.swings và java.awt

Sử dụng các thành phần để thiết kế giao diện đồ họa người dùng với các controls như buttons , label, checkbox, text area, text field, ....

2.3.6, Gói java.nio

Gói này chứa các buffer cung cấp các kỹ thuật lưu trữ dữ liệu ở dạng nguyên thủy trong bộ nhớ trong. Chương trình sử dụng các thành phần của gói java.nio là:

• java.nio.ByteBuffer;

• java.nio.charset.Charset;

• java.nio.charset.CharsetDecoder;

2.4, Xây dựng chương trình.

Chương trình được xây dựng thành 3 module chính : • ClientServer

• UDPServer • UDPClient

Trong đó module ClientServer được xây dựng làm thư viện dùng chung cho 2 module còn lại, module này sẽ đảm nhiệm vai trò thống nhất những quy ước của cả Client và Server trong việc truyền nhận dữ liệu.

2.4.1, ClientServer

Hình 2.9: Gói thư viện dùng chung ClientServer

ClientServer bao gồm 3 module con:

• ClientServer : gồm 2 class là : DinhNghia và GoiTin

o Class DinhNghia : Đảm nhiệm vai trò định nghĩa các thông báo lỗi và các biến dùng chung cho cả 2 giao thức truyền nhận dữ liệu TCP và UDP.

o Class GoiTin : Đảm nhiệm vai trò chuyển đổi dữ liệu thành các mảng byte để server truyền đi và chuyển các mảng byte đó thành dữ liệu đọc được khi Client nhận được

• tcpClientServer : Bao gồm 3 class dùng để xử lý quá trình gửi và nhận bằng giao thức TCP/IP cho cả Client và Server , nó chứa 3 class là :

o TCPSendAndReceive : Lớp dùng chung của cả Client và Server dùng để gửi nhận dữ liệu bằng giao thức TCP.

o TCPClient : Kế thừa từ lớp TCPSendAndReceive dùng để nhận dữ liệu. o TCPServer : Kế thừa từ lớp TCPSendAndReceive dùng để gửi dữ liệu. • udpClientServer : Bao gồm 3 class dùng để xử lý quá trình gửi và nhận

bằng giao thức UDP cho cả Client và Server , nó chứa 3 class là :

o UDPSendAndReceive : Lớp dùng chung của cả Client và Server dùng để gửi nhận dữ liệu bằng giao thức UDP.

o UDPClient : Kế thừa từ lớp UDPSendAndReceive dùng để nhận dữ liệu. o UDPServer : Kế thừa từ lớp UDPSendAndReceive dùng để gửi dữ liệu.

2.4.2, UDPClient

UDPClient bao gồm 3 module con: • udpClient: chứa 3 class :

o Class DinhNghia: class này định nghĩa các lỗi có thể xảy ra , đường dẫn file cấu hình và các file mặc định để hiển thị trên trình duyệt web.

o Class CauHinh: Class này đảm nhiệm vai trò lấy thông tin từ file config. o FrmMain: Cung cấp giao diện đồ họa cho Client.

• udpClien.SystemtrayIcon: (adsbygoogle = window.adsbygoogle || []).push({});

o SystemtrayIcon: Hiển thị một Icon của chương trình khi client khởi động.

• udpClien.Registry:

o KhoiDongCungHeThong: Khi hệ thống khởi động, chương trình Client sẽ được bật lên để lắng nghe thông tin từ Server gửi về.

2.4.3, UDPServer

UDPServer bao gồm 1 module con:

• Class DinhNghia : class này định nghĩa các lỗi có thể xảy ra , đường dẫn file cấu hình của server.

• Class CauHinh : Lấy các thông tin cấu hình của server .

• FrmMain : Cung cấp giao diện đồ họa cho server bao gồm các chức năng của Multicast như : CheckClient, gửi data, gửi time hiển thị , show các địa chỉ IP đang được lắng nghe.

• FrmSendTCP : Cung cấp giao diện đồ họa cho người sử dụng truyền dữ liệu đến các client ở dạng TCP (Unicast)

• FrmSending : Kiểm tra quá trình gửi file từ server xuống các client. • LogFile : Ghi nhật ký gửi của server vào 1 file log.

• ThongTinFile : Thiết lập thời gian hiển thị cho từng file khi được gửi xuống client.

• ThongTinHost : Kiểm tra khi nhận được 1 message được gửi từ host nào.

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

Hình 2.13: Giao diện khi thêm dữ liệu

Hình 2.15: Giao diện của Client.

Hình 2.17: Giao diện gửi theo giao thức TCP

2.6. Tiểu kết

Sau khi phân tích các chức năng, vẽ các mô hình chức năng, mô hình tổng quát của chương trình, tìm hiểu về các gói trong ngôn ngữ lập trình Java được sử dụng trong việc xây dựng chương trình. Chúng ta tiến hành xây dựng 3 module: ClientServer, UDPServer, UDPClient và xây dựng được giao diện cho người sử dụng.

Như vậy sau khi đã hoàn thành chương trình, để biết được kết quả đạt được của chương trình thì mời mọi người xem chương III.

CHƯƠNG III: KẾT QUẢ ĐẠT ĐƯỢC 3.1. Kết quả đạt được

¾Server

• Kiểm tra được có bao nhiêu Client đang lắng nghe từ Server. • Gửi dữ liệu xuống các Client đang kết nối với Server.

• Gửi thời gian hiển thị cho từng file của Client. • Lưu thông tin các file đã gửi cho Client. ¾Client

• Nhận dữ liệu khi Server gửi xuống và lưu dữ liệu vào file receive. • Hiển thị dữ liệu khi nhận được thông báo hiển thị từ Server.

3.2 Kết quả thử nghiệm

Nhìn chung sau khi hoàn thiện đồ án chúng tôi đã đạt được những yêu cầu cơ bản của chương trình, sau khi thử nghiệm chương trình trên môi trường Window XP, Win 7 thì chương trình chạy ổn định.

Chúng tôi đã thử nghiệm chương trình trong mạng nội bộ (LAN), sử dụng mạng VNPT tốc độ 4mb.

3.2.1, Mạng LAN

¾ UDP gửi cho 2 Client

• 1 file 673mb gửi hết 141 phút 5 giây, như vậy tốc độ gửi file 81kb/s. • 4 file 248mb gửi hết 46 phút 21 giây, như vậy tốc độ gửi file 83kb/s. • 6 file 37.6mb gửi hết 8 phút 9 giây, như vậy tốc độ gửi file 79kb/s. • 38 file 12.4mb gửi hết 3 phút 45 giây, như vậy tốc độ gửi file 57kb/s. • 94 file 37.6mb gửi hết 10 phút 52 giây, như vậy tốc độ gửi file 58kb/s. (adsbygoogle = window.adsbygoogle || []).push({});

¾ UDP gửi cho 5 Client

• 1 file 673mb gửi hết 145 phút 18 giây, như vậy tốc độ gửi file 79kb/s. • 4 file 12.4mb gửi hết 3 phút 21 giây, như vậy tốc độ gửi file 73kb/s. • 6 flie 26.2mb gửi hết 6 phút 42 giây, như vậy tốc độ gửi file 70kb/s. • 38 file 43.2mb gửi hết 11 phút 21 giây, như vậy tốc độ gửi file 65kb/s. • 94 flie 37.6mb gửi hết 10 phút 32 giây, như vậy tốc độ gửi file 61kb/s.

Hình 3.1: Biểu đồ thể hiện tốc độ gửi dữ liệu trong cơ chế UDP

Kết quả biểu đồ thì chúng ta thấy được là tốc độ gửi file của cơ chế UDP là không cao, nó không bị ảnh hưởng bới số lượng Client kết nối, mà bị ảnh hưởng bởi tốc độ của các gói cước internet, ngoài ra nó cũng bị ảnh hưởng bởi số lượng file được gửi đi.

¾TCP

• 76 file 24.9mb gửi hết 2 phút 4 giây, như vậy tốc độ gửi file 206kb/s. • 38 file 12.4mb gửi hết 58 giây, như vậy tốc độ gửi file 219kb/s. • 24 file 150mb gửi hết 57 giây, như vậy tốc độ gửi file 2.63mb/s.

• 4 file 951mb gửi hết 2 phút 22 giây, như vậy tốc độ gửi file 6.7mb/s. • 3 file 153mb gửi hết 27 giây, như vậy tốc độ gửi file 5.67mb/s. • 1 file 150mb gửi hết 24 giây, như vậy tốc độ gửi file 6.25mb/s. • 1 file 977mb gửi hết 2 phút 24 giây, như vậy tốc độ gửi file 6.8mb/s.

Hình 3.2: Biểu đồ thể hiện tốc độ gửi dữ liệu trong cơ chế TCP

Tốc độ gửi file của cơ chế TCP là rất nhanh, và tuyệt đối an toàn, nhưng mỗi lần gửi file thì Server chỉ gửi cho được 1 Client, sau khi gửi xong Client này thì mới tiếp tục gửi file cho Client tiếp theo. Cơ chế gửi TCP cũng bị ảnh hưởng bởi tốc độ của đường chuyền internet và số lượng file.

Cập nhật thời gian hiển thị cho các Client rất nhanh với 1s là các Client nhận

được tín hiệu để hiển thị. Với cơ chế UDP trong quá trình truyền tải có xảy ra

thiếu file nhưng ngay sau đó đã được truyền lại bằng cơ chế TCP nên các Client nhận dữ liệu đầy đủ, không bị lỗi trong quá trình nhận và hiển thị dữ liệu tốt.

Tốc độ truyền dữ liệu trong cơ chế UDP tương đối chậm, với tốc độ trung bình trong quá trình test thử nghiệm vào khoảng 72kb/s, TCP 6mb/s. tốc độ gửi file bị ảnh hưởng bởi băng thông của mạng và không phụ thuộc vào cấu hình của máy

tính chạy chương trình, ngoài ra nó cũng bị ảnh hưởng bởi số lượng file được gửi đi.

3.2.2, Mạng Wireless

¾TCP

• 1 file 11.6mb gửi hết 5 giây, như vậy tốc độ gửi file 2.32mb/s. • 5 file 58.4 gửi hết 42 giây, như vậy tốc độ gửi file 1.39mb/s.

• 10 file 116mb gửi hết 2 phút 1 giây, như vậy tốc độ gửi file 0.96mb/s. • 15 file 175mb gửi hết 3 phút 13 giây, như vậy tốc độ gửi file 0.91mb/s. • 20 file 233mb gửi hết 3 phút 57 giây, như vậy tốc độ gửi file 0.98mb/s. • 25 file 292mb gửi hết 4 phút 46 giây, như vậy tốc độ gửi file 1.03mb/s.

Hình 3.3: Biểu đồ thể hiện tốc độ gửi dữ liệu số lượng file trong cơ chế

TCP

Biểu đồ thể hiện tốc độ gửi file trong mạng Wireless của cơ chế TCP, nhìn vào biểu đồ thì chúng ta biết được tốc độ gửi dữ liệu bị ảnh hưởng bở tốc độ của mạng và số lượng file được gửi đi.

• 1 file 151mb gửi hết 1 phút 42 giây, như vậy tốc độ gửi file 1.48mb/s. • 1 file 349mb gửi hết 3 phút 55 giây, như vậy tốc độ gửi file 1.49mb/s. • 1 file 638mb gửi hết 7 phút 13 giây, như vậy tốc độ gửi file 1.47mb/s. • 1 file 976mb gửi hết 11 phút 05 giây, như vậy tốc độ gửi file 1.48mb/s.

Hình 3.4: Biểu đồ thể hiện tốc độ gửi dữ liệu theo dung lượng trong cơ chế

TCP

Như vậy dựa vào biểu đồ chúng ta có thể thấy được tốc độ gửi file không bị ảnh hưởng bởi dung lượng, tốc độ gửi dữ liệu là tương đương nhau, ngoài ra nó cũng bị ảnh hưởng bởi tốc độ của mạng.

¾UDP

• 5 file 4.42mb gửi hết 1 phút 15 giây, như vậy tốc độ gửi file 60kb/s. • 10 file 8.85mb gửi hết 2 phút 43 giây, như vậy tốc độ gửi file 55kb/s. • 15 file 13.2mb gửi hết 4 phút 39 giây, như vậy tốc độ gửi file 48kb/s. • 20 file 17.7mb gửi hết 6 phút 37 giây, như vậy tốc độ gửi file 45kb/s.

Hình 3.5: tốc độ gửi file trong cơ chế UDP của mạng Wireless

Trong quá trình kiểm tra tốc độ gửi file, các file trong quá trình gửi UDP thì bị thiếu file, nhưng ngay sau đó đã được gửi đi bằng TCP, dữ liệu từ Server đến Client đã được đảm bảo an toán tuyệt đối, kết quả không bị ảnh hưởng, nhưng tốc độ bị ảnh hưởng bởi số lượng file và tốc độ mạng.

3.3. Kết quả chưa đạt được và hướng phát triển (adsbygoogle = window.adsbygoogle || []).push({});

Mặc dù đã hoàn thành được các chức năng cơ bản của đồ án nhưng đồ án vẫn còn mặt hạn chế trong phạm vi nhất định.

Hướng phát triển của đề tài là sử dụng công nghệ nhúng để hiển thị dữ liệu trên các panel hoặc bảng điện tử quảng cáo và cải tiến đồ án phục vụ cho nhiều mục đích khác nhau ngoài mục đích là quảng bá thông tin media qua mạng.

3.4. Tiểu kết

Như vậy chương trình “xây dựng hệ thống quảng bá thông tin media qua mạng” được xây dựng nhằm mục đích giúp các nhà quảng cáo quảng bá thông tin media đến với tất cả mọi người, chương trình này chỉ cần 1 người là có thể quản lý được.

Đề tài tập trung vào nghiên cứu về cách lập trình Unicast, Multicast. Sử dụng trình duyệt web để quảng bá thông tin media. Với yêu cầu chức năng ban đầu được đặt là truyền dữ liệu theo dạng Multicast hay có thể là Unicast từ Server đến Client và hiển thị trên trình duyệt web ở phía Client, người quản lý có thể cập nhật dữ liệu, hay thay đổi thời gian hiển thị của từng file, lưu các thông tin các file đã được gửi đi vào một file log để chúng ta có thể kiểm tra một file nào

Một phần của tài liệu Đề tài xây dựng hệ thống quảng bá thông tinmedia qua mạng (Trang 37)