Thành phần hệ thống video theo yêu cầu

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 26)

Một hệ thống cung cấp video theo yêu cầu gồm những thành phần cơ bản sau: 3.2.1. Network Communication

Mạng và băng thông là vấn đề quan trọng cần được quan tâm khi xây dựng một hệ thống cung cấp video theo yêu cầu. Vì dung lượng của các video là lớn hơn nhiều so các loại tập tin khác và để phân phối video trên mạng, chúng chiếm một lượng lớn băng thông.

Để xây dựng một hệ thống cung cấp video theo yêu cầu đảm bảo chất lượng tốt, thì sự hỗ trợ của mạng là rất quan trọng. Khi có 1 đường truyền mạng tốt có thể giúp hệ thống giảm trễ khi truyền tải và giảm tỷ lệ mất gói tin đi.

Để phân phối nội dung video theo yêu cầu thì kỹ thuật Unicast được áp dụng. Unicast làm việc theo cơ chế: máy chủ streaming truyền dòng riêng cho từng người dùng, địa chỉ IP được đóng dấu trên mỗi gói. Điều này cho phép tương tác nhiều hơn cho người sử dụng nhưng đòi hỏi công suất rất lớn từ máy chủ stream vì có rất nhiều dòng phải phân phối.

3.2.2. Client

Khách hàng sử dụng nội dung truyền thông trong hệ thống Video theo yêu cầu có thể bao gồm những khách hàng sở hữu một máy tính thông thường hoặc một Set- Top-Box dễ dàng hơn để kết nối với Tivi.

Có nhiều phần mềm được hỗ trợ để xem video, phổ biến như Windows Media Player, Real One Player và Apple QuickTime, VLC Player.

3.2.3. Máy chủ streaming

Máy chủ streaming đóng một vai trò quan trọng trong việc cung cấp các dịch vụ trực tuyến. Để cung cấp các dịch vụ trực tuyến chất lượng, các máy chủ

24

streaming được yêu cầu phải xử lý dữ liệu video với sự ràng buộc về thời gian, hạn chế thời gian trễ và hỗ trợ hoạt động kiểm soát tương tác như tạm dừng, tua, tiếp tục, nhanh chóng chuyển tiếp và nhanh chóng quay lại. Một máy chủ streaming thường bao gồm ba hệ thống con: một hệ thống kết nối giao tiếp, một hệ điều hành, và một hệ thống lưu trữ.

[9] Một số chuẩn Video Streaming Server: QuickTime Streaming Server, Real Streaming Server, Windows Streaming Server.

QuickTime Streaming Server:

- Được phát triển bởi Apple, có thể chạy trên nhiều nền hệ thống (Macintosh, Unix và Windows).

- Phần mềm chạy trên Server là phần mềm mã nguồn mở - Darwin Streaming Server.

- Giao thức dùng để streaming là RTSP

- Các định dạng video dùng để streaming: MOV, AVI. - Sử dụng các chuẩn nén: H.264, MPEG-4 Part 2 và 3GP. - Sử dụng QuickTime Player để hiển thị phía người dùng. Real Streaming Server:

- Được phát triển bởi RealNetworks, có thể chạy trên nhiều nền hệ thống (Macintosh, Unix và Windows).

- Phần mềm chạy trên Server: RealSystem Server, Helix Server. - Giao thức dùng để streaming là RTSP và HTTP

- Sử dụng các chuẩn nén: 3GP, H.264, H.263, AAC, Flash codecs… - Các định dạng video dùng để streaming: mp4, mov, flv, rm… - Sử dụng RealPlayer để hiển thị phía người dùng

Windows Streaming Server:

- Được phát triển bởi Microsoft, chỉ chạy trên nền Windows.

- Phần mềm chạy trên Server là Windows Media Services: dịch vụ được tích hợp trong HĐH Windows.

25

- Các định dạng video dùng để streaming: ASF, WMV. - Sử dụng các chuẩn nén: Microsoft MPEG-4 part 2.

- Sử dụng Windows Media Player để hiển thị phía người dùng.

- Một số Video Streaming Server khác: VideoLAN streaming, Adobe Flash Media Streaming…

3.2.4. Giao thức sử dụng trong hệ thống VoD ở mô hình Client-Server.

Giao thức được thiết kế và chuẩn hóa cho truyền thông giữa máy khách và máy chủ streaming. Giao thức có thể được chia làm 3 loại: Giao thức tầng mạng như Internet Protocol (IP), giao thức tầng giao vận như Use Datagram Protocol (UDP) và giao thức điều khiển phiên như Real Time Streaming Protocol (RTSP).

[8] RTSP là một giao thức điều khiển trên mạng được thiết kế để sử dụng giao tiếp giữa máy Client và máy streaming Server. Giao thức này được sử dụng để thiết lập và điều khiển phiên giao dịch giữa các máy tính.

RTSP sử dụng TCP là giao thức để duy trì một kết nối đầu cuối tới đầu cuối và các thông điệp điểu khiển của RTSP được gửi bởi máy Client tới máy Server. Nó cũng thực hiện điều khiển lại các đáp trả từ máy Server tới máy Client.

Các lệnh cơ bản trong giao thức RTSP:

Lệnh Chức năng

Option Dùng để yêu cầu thiết lập phiên

Describe Dùng để yêu cầu gửi 1 bản tin mô tả chi tiết phiên giao dịch.

Setup Dùng để yêu cầu cấp phát tài nguyên

Play Dùng để yêu cầu trình chiếu video

Pause Dùng để yêu cầu tạm dừng trình chiếu video

Teardown Dùng để yêu cầu kết thúc phiên

26

Để thực hiện kỹ thuật streaming video theo giao thức RTSP nhất thiết máy Client phải gửi lên máy Server những yêu cầu sau và phải theo một trình tự nhất định.

Dưới đây chỉ ra một quá trình thiết lập phiên dựa trên giao thức RTSP

Hình 4. Một phiên làm việc dựa trên giao thức RTSP 3.3. Kiến trúc của hệ thống

27 Hệ thống thường gồm các thành phần :

- Server là một máy chủ đa phương tiện có dung lượng lớn quản lý quá trình kết nối của các máy trạm thông qua một cổng nhất định. Trên Server được cài đặt phần mềm hỗ trợ streaming video. Server bao gồm:

+ Hard Disk: Lưu trữ tập tin video của nhà cung cấp. + Server Manager:

o Tạo Server với port được lựa chọn, chờ người dùng kết nối tới. o Quản lý người dùng kết nối dựa trên IP.

o Quản lý những tập tin video đã được đưa vào cache.

o Quản lý việc lựa chọn gửi phần nào của tập tin video về cho người dùng. + Streaming Video Server:

o Khi nhận được yêu cầu từ phía người dùng lấy một tập tin video, Streaming Video Server tìm tập tin đó dưới ổ cứng và đẩy vào Caching Devide.

o Tại Caching Device, tập tin video được chia ra thành các frame và lưu trữ dưới dạng một cấu trúc cây Binary Tree.

o Sau đó từng frame sẽ được đưa qua một cơ chế nén và mã hóa trước khi gửi về người dùng.

-Client:

 Khi người dung truy cập vào Web browser hoặc Media Player, chọn tập tin video cần xem và bấm play, lệnh yêu cầu play tập tin video sẽ được gởi lên Server.

 Web browser hoặc Media Player sẽ nhận Software player và thực hiện kết nối với server.

 Software player nhận các frame và thực hiện việc giải nén, giải mã trước khi hiển thị Video lên cho người dùng.

28

Mô hình hoạt động tổng quát của hệ thống:

Hình 6. Mô hình hoạt động tổng quát của hệ thống

3.4. Một số điểm tồn tại của dịch vụ video theo yêu cầu

[4]Theo hoạt động của mô hình Client-Server, thì máy chủ streaming sẽ đáp ứng tất cả các yêu cầu của máy khách, như thế khi số lượng máy khách tăng lên, đặc biệt với nhu cầu sử dụng dịch vụ của các hệ thống VoD ngày càng tăng như hiện nay, thì mô hình truyền thống còn bộ lộ những giới hạn sau:

- Giới hạn về chất lượng: Các máy streaming Server chính thường được đặt ở nơi rất xa. Điều này làm tăng số lượng các đường dẫn có sẵn cũng như số lượng các

Gửi yêu cầu kết

nối đến Server Nhận yêu cầu

Nhận thông báo kết nối thành công

Chấp nhận kết nối

Gửi yêu cầu dữ liệu Nhận yêu cầu

Xử lý dữ liệu rồi gửi về Client Nhận các frame, giải

nén, mã hóa rồi hiển thị cho người dùng

Client

Server

Server Manager Streaming video Server

29

"bước nhảy" của các gói dữ liệu, ảnh hưởng đến thời gian trễ của các gói tin và làm tăng xác suất mất gói tin, do đó ảnh hưởng đến chất lượng của gói tin nhận được.

- Giới hạn về khả năng mở rộng: Unicasting là phương pháp tiêu tốn đường truyền chủ yếu trên Internet. Vì mỗi người sử dụng thường phải tạo ra một kênh từ máy Client đến máy chủ để tải dữ liệu, điều này tiêu thụ băng thông đáng kể trong mạng và quá tải trên các máy chủ đa phương tiện chính, đặc biệt là khi nhiều người sử dụng cùng xem một nội dung cùng một lúc.

- Giới hạn về tương tác: Thời gian tín hiệu trên đường truyền từ máy chủ đến máy khách khá lâu, nên phía máy khách không thể thể hiện trên các đầu máy video với độ trễ thấp được.

- Giới hạn về chất lượng dịch vụ: Chất lượng dịch vụ tốt cho thấy băng thông được đảm bảo thì thời gian chờ ít, ngay cả khi tắc nghẽn. Tuy nhiên, Internet không thể cung cấp được dịch vụ đảm bảo chất lượng mà chỉ có thể cố gắng cung cấp dịch vụ tốt nhất.

Mô hình mạng ngang hàng P2P giúp giải quyết vấn đề này bằng cách loại bỏ thành phần Server và cho phép tất cả các thành phần khác tương tác với nhau một cách bình đẳng. Trong 1 mạng ngang hàng mỗi peer không chỉ download dữ liệu từ mạng mà còn upload dữ liệu để người dùng khác download. Do đó, công nghệ này không chỉ cho phép hệ thống đáp ứng được lượng lớn truy cập tăng đột biến mà còn có khả năng mở rộng quy mô. Hơn nữa, giải pháp P2P không cần đến bất kỳ một yêu cầu đặc biệt nào về phần cứng mạng nên rất dễ triển khai. Nên các ứng dụng P2P ngày càng phổ biến, trong số đó có thể kể ra các ứng dụng chia sẻ file (BitTorrent, uTorrent, eMule), các ứng dụng hội thoại qua mạng VoIP (Skype)…. Mặc dù vậy, việc xây dựng các ứng dụng video dựa trên mạng ngang hàng như dịch vụ video theo yêu cầu vẫn còn đang gặp nhiều khó khăn, thách thức. Khó khăn chủ yếu xuất phát từ những nhược điểm của mạng ngang hàng như mức độ tham gia đóng góp tài nguyên của các peer không đồng đều, các peer có thể tham gia hoặc ngắt kết nối khỏi hệ thống vào thời điểm bất kỳ .... Trong khi đó ứng dụng VoD lại là loại ứng dụng yêu cầu hiệu năng thời gian thực và băng thông lớn. Điều này đã

30

khiến cho việc xây dựng các ứng dụng VoD dựa trên mạng ngang hàng trở nên phức tạp hơn hẳn so với mô hình Client – Server.

Mô hình Local Proxy được đề xuất để xây dựng ứng dụng với mong muốn đạt được hiệu suất tốt và khắc phục những tồn tại của 2 mô hình Client-Server và P2P, cũng như tận dụng những lợi thế của 2 mô hình trên. Mục đích của giải pháp này là:

- Giữ nguyên thiết kế giao thức theo kiến trúc Client-Server để đơn giản. - Cài đặt giao thức sử dụng giao tiếp P2P để đạt được hiệu suất tốt hơn.

31

CHƯƠNG 4 - THIẾT KẾ ỨNG DỤNG THEO MÔ HÌNH LOCAL PROXY Với tính chất của dịch vụ cung cấp video theo yêu cầu, thì số lượng người dùng rất lớn, các tệp video được lưu trữ có dung lượng rất lớn. Nên khi số lượng người truy cập hệ thống tăng lên sẽ dẫn đến nghẽn cổ chai ở máy chủ, tiêu tốn lượng lớn băng thông mạng.

Việc áp dụng mô hình Local Proxy vào xây ứng dụng là một giải pháp được đưa ra với mục đích để việc thiết kế đơn giản, nhưng đạt được hiệu suất tốt.

4.1. Các chức năng của ứng dụng ở mô hình Client–Server

Trong giải pháp này, luận văn tập trung vào việc làm thế nào để ứng dụng được thiết kế giao tiếp với hệ thống P2P, vì thế luận văn sẽ lựa chọn những chức năng cơ bản của ứng dụng.

Chức năng cơ bản của ứng dụng ở mô hình Client – Server được liệt kê trong Bảng 1 dưới đây.

Bảng 1. Chức năng cơ bản của ứng dụng

TT Chức năng Mô tả chức năng

1

Đăng ký

Đăng ký tài khoản của người sử dụng trong hệ thống. - Người dùng nhập thông tin đăng ký tài khoản gồm các trường: username, pass, họ tên, email tại Client.

- Client gửi yêu cầu đăng ký tài khoản lên Server.

- Server nhận yêu cầu, kiểm tra xem username đã tồn tại trên hệ thống chưa?

+ Nếu chưa có, Server sẽ lưu các thông tin tài khoản của người dùng thành 1 file tài khoản người dùng.

+ Nếu có rồi, Server thông báo cho người dùng tài khoản đã tồn tại trên hệ thống.

2

Đăng nhập

Đăng nhập tài khoản của người sử dụng vào hệ thống - Người dùng nhập username, pass tại Client

32

- Client gửi yêu cầu đăng nhập lên Server.

- Server nhập yêu cầu, tiến hành kiểm tra username đã tồn tại trên hệ thống chưa?

+ Nếu có rồi, nó tiếp tục kiểm tra pass có đúng không? Nếu đúng sẽ thông báo cho người dùng đăng nhập thành công. Nếu không đúng, nó sẽ thông báo cho người dùng sai pass và yêu cầu nhập lại pass.

+ Nếu chưa có, nó thông báo cho Client là tài khoản chưa được đăng ký, vui lòng đăng ký để sử dụng hệ thống.

3 Search Tìm kiếm file video trong hệ thống

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

- Client gửi yêu cầu tìm kiếm cùng từ khóa cần tìm kiếm do người dùng nhập vào lên Server.

- Khi nhận được yêu cầu tìm kiếm do Client gửi lên, Server sẽ đọc các file lưu tại máy, kiểm tra trong <metadata> có thông tin liên quan đến từ khóa cần tìm không, nếu có sẽ trả về danh sách các file video có nội dung liên quan đến từ khóa cần tìm kiếm.

4 Play Trình chiếu video

- Người dùng chọn 1 file video muốn xem trong danh sách các file video được liệt kê trên màn hình hoặc từ kết quả Search tại Client.

- Client gửi yêu cầu xem video lên Server.

- Server nhận yêu cầu, gửi thông tin kết nối về cho Client. - Client gửi yêu cầu kết nối đến Server.

33

streaming server sẽ chia video thành các frame, sau đó nén, mã hóa và gửi lần lượt các frame vể Client sử dụng các giao thức ràng buộc về thời gian RTSP, RTP, RTCP. - Các frame về Client sẽ được lưu vào bộ đệm sau đó được giải nén, giải mã và hiển thị cho người dùng.

4.2. Cài đặt ứng dụng theo mô hình Local Proxy 4.2.1. Phân tích hệ thống 4.2.1. Phân tích hệ thống

Mục đích của luận văn là xây dựng ứng dụng trên P2P, nhưng tương tác giữa máy khách và máy chủ video vẫn giữ nguyên như trong Bảng 1. Ứng dụng được thực hiện theo mô hình trong Hình 3. Module Client không thay đổi, module máy chủ video là không cần thiết. Một module Local Streaming Server sẽ được cài đặt trên cùng máy Client, nó tiếp nhận tất cả các yêu cầu từ module Client như là 1 máy chủ streaming cục bố, nhưng chia sẻ thông qua mạng P2P với Local Streaming Server của các máy khác.

Để đơn giản, luận văn xin lựa chọn phương pháp sau:

- Trao đổi thông tin được tổ chức trong các tập tin và thư mục.

- Tập tin và thư mục được đồng bộ giữa các Local Streaming Server module sử dụng P2P hệ thống chia sẻ file như một cơ sở giao tiếp.

[2]Yêu cầu đối với Local Streaming Server và phần P2P của ứng dụng:

- Modules Local Streaming Server xử lý các yêu cầu từ modules Client tương ứng của mình.

- Khi một tệp video được gửi lên mạng, module Local Streaming Server có thể lưu trữ tệp video đó nếu thuộc phạm vi xử lý của mình.

- Modules Local Streaming Server luôn sẵn sàng và xử lý yêu cầu từ các Local Streaming Server khác.

- Không để mất dữ liệu khi một máy thoát ra khỏi mạng.

Bằng phương thức lưu trữ thông tin dưới cấu trúc file, tại mỗi máy sẽ có các thư mục chia sẻ:

34

Share: lưu các file [session_id]<filename>, nội dung file này chứa nội dung của file video có kèm thông tin mô tả (metadata) của video mà người dùng upload lên.

Dangky: lưu các file username.txt, nội dung file này chứa thông tin đăng ký của người dùng.

Logged-in: lưu các file [logged_in]<username>.txt thông tin trạng thái đăng nhập của người dùng.

Mỗi phiên giao dịch có 1 chỉ số session_id khác nhau, ta dùng hàm để lấy

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 26)