Chức năng Search

Một phần của tài liệu DỊCH vụ VIDEO THEO yêu cầu dựa TRÊN LOCAL PROXY MODEL (Trang 45)

43

Quy trình tìm kiếm video được thực hiện như sau:

Bảng 6. Các bước tìm kiếm video

Bước Mô tả

1 - Người dùng nhập từ khóa cần tìm kiếm và thực hiện chức năng Search tại Client.

- Client gửi yêu cầu tìm kiếm lên Local Streaming Server.

2 - Local Streaming Server chấp nhận yêu cầu, đọc các file, kiểm tra trong <metadata> của các file [session_id]<filename> trong thư mục Share tại máy có chứa thông tin tìm kiếm không?

+ Nếu có, trả về danh sách tên file video cho Client.

+ Nếu không, Local Streaming Server sẽ băm thông tin tìm kiếm để xác định xem sẽ tìm kiếm thông tin tại các node nào theo giao thức Kademlia, sau đó gửi yêu cầu tìm kiếm lên P2P Agent.

3 - P2P Agent tìm kiếm trên mạng P2P xem trong <metadata> của các file [session_id]<filename> có thông tin tìm kiếm không?

+ Nếu có, Local Streaming Server trả về cho Client danh sách tên file video.

+ Nếu không, Local Streaming Server trả về thông báo không tìm thấy thông tin cần tìm.

44 4.3.5. Chức năng Play

Hình 12. Quy trình xem video

Quy trình xem video được thực hiện như sau:

Bảng 7. Các bước xem video

Bước Mô tả

1 - Người dùng chọn 1 file video muốn xem từ danh sách video hoặc từ danh sách tên file video của kết quả Search.

- Client gửi yêu cầu xem video đến Local Streaming Server.

2 - Local Streaming Server nhận yêu cầu, sau đó tìm kiếm file [session_id]<filename> xem có tại máy không?

+ Nếu có, nó sẽ thực hiện quá trình streaming video về cho Client theo các giao thức ràng buộc về thời gian được thiết kế như trong mô hình Client-Server.

45

+ Nếu không, nó sẽ gửi yêu cầu tìm kiếm lên P2P Agent.

3 - P2P Agent nhận yêu cầu, tìm kiếm trên mạng P2P xem file [session_id]<filename> được lưu trữ tại node nào thông qua thao tác search (filename). Sau đó trả về cho Local Streaming Server địa chỉ của node lưu trữ file video.

4 - Khi biết được địa chỉ node lưu trữ file video, Local Streaming Server sẽ gửi yêu cầu xem video trực tiếp đến node đó. Lúc này kết nối giữa 2 máy được thiết lập, quá trình streaming video giữa node lưu trữ video về Client theo các giao thức ràng buộc về thời gian được thiết kế như trong mô hình Client–Server.

5 - Khi các frame về Client sẽ được lưu trong vùng đệm và nội dung các frame sẽ được giải nén, giả mã và hiển thị cho người sử dụng thông qua chương trình xem video VLC Player.

46

CHƯƠNG 5 – CÀI ĐẶT CHƯƠNG TRÌNH VÀ ĐÁNH GIÁ THỬ NGHIỆM 5.1. Cài đặt chương trình

Ngôn ngữ lập trình: C#. Giao thức sử dụng để giao tiếp giữa các máy trong mạng P2P là giao thức Kademlia.

Những thành phần có sẵn, luận văn sử dụng lại là: Giao thức RTSP đã có ở mô hình Client – Server và mã nguồn mở của giao thức Kalemlia. Ngoài ra, luận văn sử dụng phần mềm VLC Player để giải nén, giải mã và hiển thị video, phần mềm Live 555MediaSerer để nén, mã hóa và streaming video.

Tác giả đã xây dựng, cài đặt các module Client, Local Streaming Server và xây dựng giao diện người dùng với các chức năng: Đăng ký, Đăng nhập, Upload, Search, Play. Thành phần P2P Agent được xây dựng, cài đặt để kết nối ứng dụng được thiết kế giao tiếp được với hệ thống P2P.

Chương trình được cài đặt trên 5 máy ảo.Trên mỗi máy ảo sẽ cài đặt 3 thành phần: Module Client; Module Local Streaming Server và thành phần P2P Agent.

47

- Module Client có thiết kế giữ nguyên như thành phần Client trong kiến trúc Client-Server như trong hình 5. Cài đặt phần mềm VLC Player để hiển thị video cho người dùng.

- Module Local Streaming Server đóng vai trò như máy chủ streaming cục bộ. Nó lưu trữ và xử lý dữ liệu cục bộ từ Client của chính mình và chịu trách nhiệm lưu trữ dữ liệu của 1 số Local Streaming Server khác trong hệ thống theo giao thức Kademlia. Cài đặt Live555MediaServer để streaming các file video có định dạng .mkv, .264. webm, .mpeg, …

- P2P Agent chấp nhận yêu cầu chia sẻ và cập nhật dữ liệu, truyền tải dữ liệu trên mạng P2P thông qua các thao tác Put(filename), Get(filename), Search(filename), Delete(filename).

Dựa trên giao thức Kademlia, luận văn xây dựng 1 mạng P2P gồm các Local Streaming Server.

Khi người dùng ở máy 1 thực hiện chức năng Upload 1 file video, file đó trước tiên sẽ được lưu vào thư mục Share tại máy 1, sau đó file video sẽ được đẩy lên hệ thống P2P thông qua thao tác Put(filename) và sẽ được lưu vào thư mục Share của máy chịu trách nhiệm lưu trữ theo thuật toán của giao thức Kademlia.

Khi người dùng ở máy 1 thực hiện chức năng Play 1 file video, nếu file này có tại thư mục Share của máy 1 thì phần mềm Liv555MediaServer sẽ nén, mã hóa dữ liệu rồi đẩy lên bộ nhớ đệm của Client, sau đó được phần mềm VLC Player giải nén, giải mã và hiển thị cho người dùng. Nếu file video này nằm tại Local Streaming Server của máy khác thì Local Streaming sẽ gửi yêu cầu Play trực tiếp đến máy đó.

5.2. Giao diện chương trình

48

Hình 14. Giao diện form kết nối vào hệ thống

Trên giao diện form này cho phép người dùng khởi tạo Proxy và Client để kết nối vào hệ thống.

5.2.2. Form chức năng

Form chức năng Đăng nhập/Đăng ký

Hình 15. Giao diện Đăng nhập/Đăng ký

Sau khi kết nối vào hệ thống thành công, xuất hiện form Đăng nhập/Đăng ký để người dùng đăng nhập hoặc đăng ký thông tin tài khoản để vào sử dụng các dịch vụ mà hệ thống cho phép (có sự phân quyền sử dụng đối với từng nhóm tài khoản người dùng).

Form chức năng Search

Hình 16. Giao diện Search video

Sau khi đăng nhập thành công vào hệ thống, tại form trên cho phép người dùng:

49

- Tìm kiếm video: Nhập vào ô tìm kiếm từ khóa cần tìm và kích nút Search, kết quả hiển thị ở danh sách lưới phía dưới.

- Chọn video muốn xem ở danh sách lưới.

- Kích nút Upload để mở chức năng tải video lên hệ thống. Form chức năng Upload

Hình 17. Giao diện Upload video Các chức năng trên giao diện upload gồm:

- Chọn file cần upload

- Nhập mô tả video: tên video, tác giả, nội dung tóm tắt …

- Trình chiếu thử nội dung video cần upload trước khi thực hiện upload. Form chức năng Play video

50

Trong quá trình xem video, cho phép người dùng có thể thực hiện chức năng pause (tạm dừng trình chiếu), chức năng stop (dừng trình chiếu video) và người dùng có thể xem tại bất kì vị trí nào của video.

5.3. Thử nghiệm

5.3.1. Kịch bản thử nghiệm

Chương trình ứng dụng được cài đặt và thử nghiệm trên 5 máy ảo.

Trên mỗi máy ảo được cài đặt 3 thành phần: Module Client; Module Local Streaming Server và thành phần P2P Agent.

Sau đó tác giả kiểm tra các chức năng của hệ thống trên mỗi máy với dữ liệu đầu vào là các file video với dung lượng khác nhau và các định dạng file video khác nhau. Trong thử nghiệm, tác giả đã chọn dữ liệu đầu vào là một số định dạng file .mkv; .mpeg4; .avi; h.264

5.3.2. Kết quả thử nghiệm

Bảng 8. Chức năng của hệ thống ở mô hình Client–Server và mô hình Local Proxy.

Chức năng Client – Server Local Proxy

Đăng ký   Đăng nhập   Upload X  Search   Play   Nhận xét:

Quá trình thử nghiệm cho thấy, hầu hết các chức năng cơ bản của hệ thống ở mô hình Client – Server đều có thể chuyển đổi sang mô hình Local Proxy được với dữ liệu đầu vào là các định dạng file .mkv; .mpeg4, còn các định dạng file khác hiện tại hệ thống chưa xử lý được do mỗi định dạng file video có cấu trúc khác nhau và còn liên quan đến nhiều yếu tố khác nữa. Trong tương lai, luận văn sẽ tiếp tục nghiên cứu hoàn thiện hệ thống để hệ thống có thể xử lý với nhiều định dạng file khác nhau.

51

Ngoài ra, ở mô hình Client-Server không cho phép người dùng thực hiện chức năng Upload 1 file video lên hệ thống, còn trong giải pháp đưa ra, luận văn đã xây dựng thêm chức năng Upload, chức năng này cho phép người chia sẻ video của mình lên hệ thống. Qua đây, tác giả nhận thấy rằng, hệ thống này có thể áp dụng được vào để xây dựng ứng dụng chia sẻ video theo yêu cầu trên các trang mạng xã hội. Khi tham gia vào hệ thống, khách hàng không chỉ thực hiện các thao tác đối với các đoạn video theo nhu cầu của mình (có sự phân quyền chức năng đối với từng người dùng), mà còn có thể đóng góp tài nguyên vào hệ thống (chia sẻ các video của mình) để người khác sử dụng.

5.4. Kết luận và hướng phát triển Về mặt lý thuyết luận văn đã: Về mặt lý thuyết luận văn đã:

- Trình bày khái quát về mô hình Client-Server, mô hình Peer to Peer, giải pháp kết hợp giữa hai mô hình này, mô hình Local Proxy.

- Đã trình bày được dịch vụ Video theo yêu cầu trên cơ sở mô hình Client- Server, sau đó đã thiết kế ứng dụng dựa trên mô hình Local Proxy (giới hạn ứng dụng ở mức chia sẻ video theo yêu cầu).

- Đã phát triển chương trình thử nghiệm bằng ngôn ngữ C# theo mô hình Local Proxy.

Về mặt thử nghiệm, luận văn đã cài đặt chương trình với các chức năng như phần lý thuyết. Kết quả đạt được cho thấy:

- Có thể áp dụng hệ thống để xây dựng các ứng dụng chia sẻ video theo yêu cầu trên các trang mạng xã hội.

- Hệ thống cho thấy một số ưu điểm sau:

+ Việc thiết kế giao thức vẫn giữ nguyên như trong mô hình Client-Server nên đơn giản hơn nhiều so với mô hình Peer to Peer.

+ Hệ thống có khả năng mở rộng: Do triển khai hệ thống theo giao tiếp Peer to Peer nên mỗi người dùng tham gia vào hệ thống không chỉ download dữ liệu về mà còn có thể upload dữ liệu lên hệ thống. Như vậy, khi càng nhiều máy tham gia vào hệ thống tương ứng với việc tài nguyên hệ thống sẽ tăng lên.

52

+ Không bị phụ thuộc vào Server: do trong giải pháp đưa ra không tồn tại máy chủ streaming tập trung nữa nên khi một vài máy trong hệ thống không kết nối được vào mạng thì các máy còn lại vẫn hoạt động bình thường.

Tuy nhiên, hệ thống còn một số hạn chế như sau:

- Hệ thống mới chỉ xử lý được một số định dạng file video

- Trong hệ thống, dữ liệu được lưu trữ ở các máy, không tập trung khiến cho vấn đề bảo mật trở nên phức tạp, khó khăn hơn. Hơn nữa, đối với hệ thống VoD, cho phép người dùng lựa chọn các chương trình muốn xem, xem bất cứ khi nào muốn, … đòi hỏi người dùng phải trả phí, đòi hỏi bản quyền đối với các video nên để phát triển hệ thống theo mô hình VoD cần phải xây dựng 1 cơ chế để quản lý vấn đề này. Đây là một vấn đề rất quan trọng, rất phức tạp, đòi hỏi cần phải quan tâm khi xây dựng hệ thống. Trong tương lai, dự kiến luận văn tiếp tục nghiên cứu để hoàn thiện tính năng này để hệ thống có thể được áp dụng trong nhiều ứng dụng hơn. Đồng thời, nghiên cứu để tăng cường tính bảo mật của hệ thống đảm bảo hệ thống hoạt động tốt, an toàn hơn.

53

TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt:

[1] Cao Lê Mạnh Hà, 2009. Nghiên cứu giải pháp mạng ngang hàng cho truyền hình theo yêu cầu. Luận văn thạc sĩ. Đại học Công Nghệ.

[2] Vũ Đình Minh, 2014. Ứng dụng phân tán dựa trên mô hình Local Proxy cho thông tin dạng nhị phân”. Luận văn thạc sĩ. Đại học Bách Khoa Hà Nội. Tài liệu tiếng Anh:

[3] Dmitri Moltchanov (2012) Client/server and peer-to-peer models: basic concepts.

[4] Tan Jin, Yu Sheng-sheng, and Zhou Jing-li. Design and implementation of a proxy caching system for streaming media. Wuhan University Jour nal of Natural Sciences, 9:31–36, 2004. 10.1007/BF02912713.

[5] Nguyen Quang Thu. Study of distributed replication: design a messenger application using local proxy model. Master’s thesis, Hanoi University of Science and Technology, 4 2013.

[6] Ha Quoc Trung. Distributed software distribution solution using p2p. Journal of Science Technology, Technical Universities,(ISSN 0868-3980), (78):6–10, 2010.

[7] Ha Quoc Trung. New approach to develop the messenger application: From client-server design to p2p implementation. In Proceedings of International Conference of Advanced Computer Science Information Technology (ACSIT- 2012), 2012.

[8] Lawrence Harte , 2007. IPTV Basic: Technology, Operation and Services. Virginia: Althos.

[9] Georg Westin. Evaluation of Video-on-Demand Streaming Servers. Master’s thesis, Blekinge Institute of Technology, 08 2003.

Một phần của tài liệu DỊCH vụ VIDEO THEO yêu cầu dựa TRÊN LOCAL PROXY MODEL (Trang 45)