Nghiên cứu hệ thống truyền thông đa phương tiện thời gian thực trên cơ sở giải pháp kỹ thuật WEBRTC.

26 158 1
Nghiên cứu hệ thống truyền thông đa phương tiện thời gian thực trên cơ sở giải pháp kỹ thuật WEBRTC.

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG HỒ MINH HỒNH NGHIÊN CỨU HỆ THỐNG TRUYỀN THƠNG ĐA PHƯƠNG TIỆN THỜI GIAN THỰC TRÊN CƠ SỞ GIẢI PHÁP KỸ THUẬT WEBRTC Chuyên ngành: Hệ thống thông tin Mã số: 60.48.01.04 TĨM TẮT LUẬN VĂN HỆ THỐNG THƠNG TIN Đà Nẵng – Năm 2016 Cơng trình hồn thành ĐẠI HỌC ĐÀ NẴNG Người hướng dẫn khoa học: PGS.TS Lê Văn Sơn Phản biện 1: PGS.TS Võ Trung Hùng Phản biện 2: GS.TS Nguyễn Thanh Thủy Luận văn bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ Hệ thống thông tin họp Đại học Đà Nẵng vào ngày 31 tháng 07 năm 2016 * Có thể tìm hiểu luận văn tại: - Trung tâm Thông tin - Học liệu, Đại học Đà Nẵng - Thư viện Trường Đại học Sư phạm - Đại học Đà Nẵng MỞ ĐẦU Lý chọn đề tài Hãy tưởng tượng ngày mà điện thoại, máy tính, tivi, kết nối trực tiếp với thực gọi thông qua tảng chung Việc giao tiếp trở nên dễ hàng điều thay phương phức liên lạc có Đó mục tiêu mà dự án WebRTC theo đuổi, WebRTC kỳ vọng tạo bước ngoặt lớn lĩnh vực truyền thông đa phương tiện Điểm đột phá WebRTC ta tham gia hội thoại trình duyệt mà khơng cần cài thêm phần mềm hay plugin khác Nó chuẩn hóa cấp độ API W3C cấp độ giao thức IETF, hỗ trợ trình duyệt Google Chrome, Mozilla Firefox Opera PC Android Ngồi WebRTC hỗ trợ Chrome OS Tính đến thời điểm tại, có tỷ thiết bị đầu cuối hỗ trợ WebRTC, dự báo tăng lên tỷ vào năm 2016, có khoảng 1,5 tỷ người dùng thường xuyên WebRTC hoạt động thiết bị có cài trình duyệt hỗ trợ WebRTC Ở góc độ nhà phát triển, khơng có WebRTC, việc tạo ứng dụng RTC đòi hỏi phải nhiều cơng sức từ việc lấy liệu từ thiết bị camera, microphone đến việc thiết lập phiên, xử lý tín hiệu, truyền tín hiệu,… Nhưng với WebRTC, tất công việc để tạo hội thoại nằm vài chục dòng lệnh Việc phát triển ứng dụng với chức gọi điện, video chat chia sẻ file, đơn giản dùng WebRTC kết hợp JavaScript HTML5 Ở góc độ người sử dụng, sử dụng WebRTC cần thơng qua trình duyệt Web Tính sẵn sàng cao cho phép thực gọi mà không cần đăng ký tài khoản hay cài đặt thêm thành phần ngồi trình duyệt có hỗ trợ WebRTC Ví dụ, hai người dùng cần truy cập vào đường dẫn web để gọi video với sử dụng trình duyệt Google Chrome hay Mozilla Firefox Với ưu điểm kể trên, việc tìm hiểu hệ thống truyền thông đa phương tiện thời gian thực sở giải pháp kỹ thuật WebRTC ứng dụng giải pháp kỹ thuật vào thực tế vấn đề cần thiết Mục tiêu nhiệm vụ đề tài 2.1 Mục tiêu 2.2 Nhiệm vụ Đối tƣợng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu 3.2 Phạm vi nghiên cứu Phƣơng pháp nghiên cứu 4.1 Phương pháp nghiên cứu tài liệu 4.2 Phương pháp thực nghiệm Mục đích ý nghĩa đề tài 5.1 Mục đích 5.2 Ý nghĩa khoa học thực tiễn đề tài a Về khoa học b Về thực tiễn Kết dự kiến 6.1 Lý thuyết 6.2 Thực tiễn Bố cục luận văn CHƢƠNG TỔNG QUAN VỀ TRUYỀN THÔNG ĐA PHƢƠNG TIỆN 1.1 TRUYỀN THÔNG ĐA PHƢƠNG TIỆN 1.1.1 Khái niện truyền thông đa phƣơng tiện Truyền thông đa phương tiện công nghệ truyền thông giúp người dùng trao đổi, chia sẻ thông tin đa phương tiện mạng truyền thông, thông tin gồm: Dữ liệu Audio, Video thời gian thực, hình ảnh văn dạng liệu khác Truyền thông đa phương tiện thời gian thực phương thức truyền thơng, tất người dùng trao đổi thơng tin với độ trễ không đáng kể [8] 1.1.2 Ví dụ truyền thơng đa phƣơng tiện  Video streaming Trong Video Streaming thường sử dụng lĩnh vực giải trí dạy học, dùng để lưu trữ file video học, cung cấp cho người dùng tiện ích tìm kiếm, liệt kê, khả hiển thị hiển thị lại liệu video theo yêu cầu Video Streaming thể hai dạng: Video theo yêu cầu video thời gian thực  Hội nghị truyền hình  Video camera số  Các hệ thống giám sát video 1.2 DỮ LIỆU ĐA PHƢƠNG TIỆN 1.2.1 Phân loại Ta phân loại loại liệu thành loại, theo ngữ cảnh việc truyền liệu đa phương tiện - Loại thứ nhất: liệu rời rạc gồm loại liệu mà hiển thị khơng bị bó buộc chặt chẽ thời gian Ví dụ ta nhận ảnh từ web server để hiển thị web browser Tùy theo thông lượng mạng mà thời gian nhận ảnh nhanh hay chậm trước giải mã hiển thị - Loại thứ hai: liệu liên tục Dữ liệu có yêu cầu chặt chẽ thời gian hiển thị thông tin nhúng bên liệu Ta thấy ví dụ liệu video, audio Dữ liệu video thường mã hóa theo frame hiển thị với tần số đó, ví dụ 25 hình/giây 1.2.2 Truyền liệu đa phƣơng tiện Truyền liệu thời gian thực liệu phải truyền từ nguồn hiển thị đích với độ trễ cho trước Truyền liệu thời gian thực thường sử dụng để người dùng tương tác với như: Internet Phone, đàm thoại video từ xa Truyền liệu bán thời gian thực không cho trước thời gian trễ, thay vào đó, hệ thống phải truyền cho đảm bảo tính tồn vẹn liệu toàn vẹn thời gian hiển thị, đồng thời giảm thời gian trễ mức tối đa Ví dụ việc truyền liệu bán thời gian thực dịch vụ video theo yêu cầu Hệ thống có độ trễ ban đầu lớn để đổi lấy chất lượng video mịn trình play 1.2.3 Các phƣơng pháp truyền liệu đa phƣơng tiện a Mơ hình download Mơ hình download: Client gửi u cầu tới server để đối tượng liệu cần download; server lấy đối tượng liệu (có thể từ hệ thống file nội bộ) truyền tới client qua hệ thống mạng Internet Đặc điểm phương pháp: Trước tiên đối tượng liệu phải nhận toàn lưu đệm file trước giải mã hiển thị Khi đối tượng liệu client nhận đầy đủ việc giải mã hiển thị liệu thực hệ thống file nội client Mơ hình hoạt động tốt số ứng dụng lại không phù hợp với liệu liên tục b Mơ hình Streaming Trong mơ hình streaming, liệu liên tục phát lại trình nhận liệu tiếp diễn Sau gửi yêu cầu tới server để bắt đầu trình streaming client đợi gói liệu tới bắt đầu phát lại, nhận gói liệu thứ 2, Do đó, q trình phát lại trình nhận liệu thực song song So sánh với mơ hình download cần phải đáp ứng thêm u cầu sau để mơ hình streaming hoạt động Thứ nhất, liệu đa phương tiện phải chia nhỏ thành đoạn độc lập, đoạn giải mã phát lại Hầu hết liệu liên tục audio, video có tính chất Thứ hai, để bảo toàn định thời hiển thị hay trình diễn, ta cần đảm bảo đoạn liệu nhận trước thời điểm dự kiến hiển thị Đây u cầu tính liên tục, tham số chủ đạo thiết kế đánh giá hệ thống đa phương tiện liên tục c So sánh phương pháp truyền liệu đa phương tiện Với phát triển nhanh cơng nghệ mạng người ta đặt câu hỏi liệu tương lai mạng máy trính có thơng lượng lớn khiến cho thời gian truyền không đáng kể dùng mơ hình download hay khơng? Đây câu hỏi hỏi hợp lý, mơ hình streaming mặt giúp cho việc hiển thị tiến hành sớm hơn, mặt khác mang đến cải tiến khác: truyền đồng thời nhiều dòng Các media server thường đồng thời phục vụ nhiều clients Khi nhiều client yêu cầu dịch vụ lúc, có lựa chọn cho media server dùng mơ hình download: Một phục vụ clients cách phục vụ đồng thời Nếu phục vụ client thứ trở hàng đợi phải chờ lâu thông lượng mạng lớn Nếu phục vụ đồng thời thơng lượng mạng dành cho client giảm kéo dài thời gian download Ngược lại, mơ hình streaming khơng mắc phải vấn đề này, trình hiển thị thực đoạn liệu đa phương tiện nhận (Hình 1.8) Thời gian chờ để bắt đầu hiển thị độc lập với số lượng client yêu cầu đồng thời media server mạng không bị tải 1.3 CÁC ỨNG DỤNG TRUYỀN THÔNG ĐA PHƢƠNG TIỆN 1.3.1 Truyền video audio đƣợc lƣu trữ server Trong lớp ứng dụng này, client yêu cầu tệp tin audio, video nén lưu trữ server Các tệp tin audio giảng, hát … Các tệp tin video phim, clips … Tại thời điểm đó, client yêu cầu tệp tin audio, video từ server Trong hầu hết ứng dụng loại này, sau thời gian trễ vài giây, client chạy tệp tin audio, video tiếp tục nhận tệp tin từ server Đặc tính vừa chạy tệp tin, tiếp tục nhận phần sau tệp tin gọi streaming Nhiều ứng dụng cung cấp tính tương tác người dùng Ví dụ: pause, resume, jump, skip Khoảng thời gian từ lúc người dùng đưa yêu cầu (play, skip, forward, jump) tới bắt đầu nghe thấy máy client nên nằm khoảng từ – 10 giây để người dùng chấp nhận 1.3.2.Truyền trực tiếp audio/video (Streaming live audio/video) Các ứng dụng loại tương tự phát truyền hình quảng bá truyền thống có điều thực internet Nó cho phép người dùng nhận audio/video trực tiếp phát từ nơi giới Trong lớp ứng dụng mạng đa phương tiện loại này, audio/video truyền trực tiếp, không lưu trữ server loại ứng dụng mạng đa phương tiện nói trên, người dùng khơng thể tương tác người như: pause, forward, rewind Tuy nhiên, tiệp tin audio/video lưu giữ cục client, người dùng pause, rewind 1.3.3 Ứng dụng tƣơng tác audio/video thời gian thực Lớp ứng dụng cho phép người dùng audio, video để tương tác thời gian thực với người dùng khác Một ví dụ audio tương tác thời gian thực điện thoại internet Nó cung cấp dịch vụ điện thoại với giá rẻ so với dịch vụ điện thoại truyền thống bù vào chất lượng không tốt ổn định điện thoại truyền thống Với tương tác video thời gian thực, gọi video-conferenceing, người giao tiếp với cách trực quan 1.3.4 Ứng dụng video conference Như đề cập trên, video conference ứng dụng mạng đa phương tiện thuộc lớp thứ ba: ứng dụng tương tác thời gian thực Đây lớp ứng dụng đòi hỏi chất lượng dịch vụ mạng (độ trễ, jitter, mát gói tin) cao ba lớp ứng dụng để thoả mãn nhu cầu người dùng Video conference sử dụng rộng rãi nhiều lĩnh vực: họp công ty, tổ chức; giáo dục: đào tạo từ xa; y tế: khám chữa bệnh, phẫu thuật từ xa CHƢƠNG GIẢI PHÁP KỸ THUẬT WEBRTC 2.1 GIỚI THIỆU CHUNG WebRTC tên viết tắt cụm từ Web Real – Time Communications Nó có nghĩa truyền thơng thời gian thực Web WebRTC công nghệ với tập hợp tiêu chuẩn, giao thức, API viết JavaScript để nỗ lực đưa truyền thông thời gian thực cho người dùng lên tất trình duyệt mà không cần phải cài đặt plugin nhà phát triển ứng dụng bên thứ ba Tập giao thức tập hợp quy tắc chuẩn dành cho việc biểu diễn liệu, phát tín hiệu, chứng thực phát lỗi liệu, việc cần thiết để gửi thông tin qua kênh truyền thơng, nhờ mà máy tính (và thiết bị) kết nối trao đổi thơng tin với Một số giao thức sử dụng WebRTC TCP, UDP, ICE, TURN, STUN, SCTP, SRTP, DTLS… 2.2 LỊCH SỬ PHÁT TRIỂN Ý tưởng phát triển WebRTC đưa nhóm phát triển Google Hangouts từ năm 2009 Vào thời gian đó, để truyền tải video, hình ảnh web, người sử dụng phải cài đặt Flash plugin Đến Năm 2010, Google mua lại hai công ty On2 Global IP Solutions (GIPS) Sau họ chuyển cơng nghệ liên quan đến RTC hai công ty thành mã nguồn mở kết hợp với IETF W3C để đưa WebRTC vào năm 2011 Tháng 6/2011, đánh dấu thời gian mã nguồn mỡ API chuẩn WebRTC thức giới thiệu rộng 10  Chất lượng dịch vụ (Quality of service - QoS) Do đó, ứng dụng thời gian thực đòi hỏi mơ hình khác đáp ứng hai yêu cầu trên, mơ hình Peer-to-Peer (P2P) Tuy nhiên, thực tế, peer sử dụng địa IP private (thuộc dải: 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8) sử dụng chế NAT để kết nối internet, việc kết nối trực tiếp peer gặp khó khăn sử dụng dải mạng nội Do đó, phải có chế hỗ trợ phân giải sang địa IP public Để tiết kiệm địa IP, nhiều nhà điều hành mạng sử dụng chế NAT để chuyển đổi từ địa IP mạng nội sang địa IP Public Về địa IP chuyển đổi sau : IP private IP public: port Trong port cổng ứng dụng nằm Firewall hay router Điều giúp cho nhiều địa IP nội sử dụng chung IP public STUN server đóng vai trò trung gian giúp cho peer lấy địa peer khác Hiện nay, google xây dựng số STUN server hỗ trợ hồn tồn miễn phí stun:stun.l.google.com:19302 2.4 CÁC GIAO THỨC MẠNG TRUYỀN THÔNG THỜI GIAN THỰC Đầu tiên, điểm then chốt truyền tải liệu thời gian thực giao thức mạng sử dụng để truyền tải tới người dùng khác WebRTC sử dụng giao thức UDP để truyền tín hiệu, liệu Yêu cầu tính tức thời quan trọng độ tin cậy nên lý giao thức UDP giao thức truyền thông tốt để truyền liệu thời gian thực WebRTC TCP sử dụng tính đáng tin cậy nó, gói tin trung gian bị trình truyền, liệu truyền lại với 11 chế hạn chế tắc nghẽn đường truyền ICE ICE giao thức tiêu chuẩn hóa IETF (RFC5245) [2] Giao thức ICE dùng để thiết lập phiên media dựa UDP qua NAT cách nhanh Cũng giống hệ thống VoIP, WebRTC bị cản trở tạo kết nối peer-to-peer tường lửa NAT WebRTC sử dụng giao thức ICE để tạo kênh giao tiếp peer nhờ STUN TURN server [12] ICE cố gắng tìm đường tốt để kết nối peer, thử tất khả kết nối cách song song lựa chọn đường kết nối hiệu Đầu tiên, ICE thử kết nối trực tiếp hai peer cách sử dụng địa thu từ hệ điều hành card mạng thiết bị; thất bại (có thể thiết bị đằng sau NAT), ICE lấy địa bên thiết bị cách sử dụng máy chủ STUN, không thành công, lưu lượng mạng chuyển qua máy chủ chuyển tiếp TURN server ICE chạy vào lúc bắt đầu phiên trước thiết lập phiên SRTP trình duyệt STUN STUN giao thức sử dụng để giúp qua NAT Trong WebRTC, STUN client xây dựng sẵn user agent trình duyệt, máy chủ web chạy máy chủ STUN Gói tin kiểm tra STUN gửi trước thiết lập phiên phép trình duyệt biết đằng sau NAT để khám phá địa ánh xạ cổng Thơng tin sau sử dụng để xây dựng địa ứng cử viên kỹ thuật ICE "hole punching" STUN vận chuyển qua UDP, TCP, TLS [1] 12 TURN TURN mở rộng giao thức STUN, cung cấp chuyển tiếp media cho trường hợp mà ICE "hole punching" thất bại Trong WebRTC, user agent trình duyệt bao gồm TURN client, máy chủ web cung cấp máy chủ TURN Trình duyệt yêu cầu địa IP công cộng số cổng địa chuyển tiếp vận chuyển từ máy chủ TURN Địa sau bao gồm địa ứng cử viên ICE "hole punching" TURN sử dụng để qua tường lửa [7] TURN sử dụng để thiết lập địa vận chuyển chuyển tiếp sử dụng UDP, TCP, TLS Tuy nhiên, thông tin liên lạc máy chủ TURN TURN client (thông qua NAT) luôn UDP SCTP SRTP Giao thức quan trọng sử dụng WebRTC RTP WebRTC sử dụng phiên an toàn RTP gọi SRTP [2] SRTP giao thức sử dụng để vận chuyển mang gói tin audio video media WebRTC client Các gói tin media chứa audio khung hình video số hóa tạo microphone máy ảnh ứng dụng, dựng lại loa hình hiển thị Một thiết lập thành cơng kết nối peer, với việc hoàn thành trao đổi cặp offer/answer dẫn đến kết nối SRTP thiết lập trình duyệt trình duyệt máy chủ, trao đổi thông tin media SRTP cung cấp thông tin cần thiết để vận chuyển thành cơng dựng hình thơng tin media: codec (coder/decoder sử dụng để lấy mẫu nén audio video), nguồn media 13 (nguồn đồng hóa SSRC), dấu thời gian, số thứ tự (để phát gói liệu), thông tin khác cần thiết để phát lại Đối với liệu audio video, SRTP không sử dụng Thay vào đó, gọi đến API RTCDataChannel dẫn đến kênh liệu mở trình duyệt cho phép định dạng liệu trao đổi SDP Mô tả phiên WebRTC mô tả cách sử dụng SDP Một mơ tả phiên SDP (mã hóa đối tượng RTCSessionDescription) sử dụng để mô tả đặc điểm media kết nối peer [7] Có danh sách dài phức tạp thông tin cần phải trao đổi hai đầu phiên SRTP để chúng giao tiếp Lời gọi API đến RTCPeerConnection cho kết mô tả phiên SDP, tập định dạng liệu theo cách đặc biệt, tạo trình duyệt truy cập cách sử dụng JavaScript ứng dụng web Một ứng dụng muốn có kiểm sốt media chặt chẽ thay đổi mơ tả phiên trước chia sẻ với trình duyệt khác Khi thay đổi thực cho kết nối peer, điều dẫn đến thay đổi mô tả phiên mà hai bên trao đổi Điều gọi trao đổi offer/answer Bất kỳ nhà phát triển có nhu cầu kiểm sốt phiên media chi tiết cần phải hiểu SDP Cả SRTP SDP hai giao thức chuẩn hóa IETF sử dụng rộng rãi thiết bị dịch vụ truyền thông Internet, chẳng hạn điện thoại VoIP, hội nghị truyền hình thiết bị hợp tác khác Kết thông tin liên lạc thiết bị WebRTC client Tuy nhiên, thiết bị VoIP video hỗ trợ đầy đủ khả 14 giao thức WebRTC Các thiết bị cần phải nâng cấp để hỗ trợ giao thức mới, chức gateway sử dụng WebRTC client VoIP video client để làm việc chuyển đổi TLS TLS (các phiên cũ gọi SSL - Secure Sockets Layer), lớp chèn TCP ứng dụng cung cấp dịch vụ bảo mật xác thực Bảo mật cung cấp cách mã hóa gói tin Xác thực cung cấp cách sử dụng giấy chứng nhận kỹ thuật số Duyệt web an toàn ngày (HTTPS) sử dụng vận chuyển TLS WebRTC tận dụng lợi TLS cho báo hiệu bảo mật giao diện người dùng Ngồi có phiên TLS chạy UDP, gọi DTLS - Datagram TLS, phiên sử dụng để tạo khóa cho SRTP gọi DTLS-SRTP [1] DTLS DTLS phiên TLS chạy UDP, cung cấp tính bảo mật xác thực tương tự TLS UDP qua NAT dễ dàng phù hợp cho ứng dụng peer-to-peer 2.5 CÁC API CƠ BẢN Để giao tiếp liệu trực tuyến, WebRTC thực API sau [9]: MediaStream (hay getUserMedia): cho phép trình duyệt web truy cập vào camera và/hoặc microphone để lấy liệu hình ảnh âm cho việc truyền tải RTCPeerConnection: Thực gọi audio video, với hỗ trợ cho việc mã hóa quản lý băng thông RTCDataChannel: truyền liệu thông qua giao tiếp 15 peer-to-peer (gửi tin nhắn văn bản, gửi file, trò chơi trực tuyến…) 2.5.1 MediaStream (hay getUserMedia) Một MediaStream đại diện cho đồng liệu âm hình ảnh MediaStream khởi tạo cách gọi hàm getUserMedia Sau kết nối WebRTC tới máy tính khác thiết lập, có khả truy cập vào stream máy tính Mỗi peer có local media stream riêng [9] Một MediaStream tạo hàm navigator.getUserMedia() Mỗi MediaStream có input/output Input lấy liệu âm hình ảnh local output dùng để hiển thị lên view RTCPeerConnection sử dụng Mỗi MediaStream có nhãn, chẳng hạn “Xk7EuLhsuHKbnjLWkW4yYGNJJ8ONsgwHBvLQ” [2] Phương thức getUserMedia có tham số: + Một constraints object + Một hàm callback success + Một hàm callback failure Constraints dùng để cấu hình audio hay video dùng, camera trước camera sau, frame rate, chiều dài chiều rộng Phương thức getUserMedia() hàm dùng để lấy âm video từ tảng Sau đó, media thu tự động tối ưu hóa, mã hóa giải mã công cụ “The WebRTC audio and video engines” chuyển đến thiết bị đầu Hiện nay, âm video thu từ yêu cầu quyền cấp phép trình duyệt mã hóa theo định dạng Opus VP8 [3] 2.5.2 RTCPeerConnection RTCPeerConnection thành phần WebRTC, cho 16 phép xử lý thơng tin, liệu truyền cách ổn định hiệu trình duyệt người dùng (peers) Đồng thời chịu trách nhiệm quản lý tồn vòng đời kết nối ngang hàng peer-to-peer [9] Trong thời gian ngắn, RTCConnection gói gọn tất thiết lập kết nối, quản lý tập trung giao diện - RTCPeerConnection quản lý luồng ICE đầy đủ cho NAT Traversal - RTCPeerConnection gửi tự động, giữ thời gian sống kết nối - RTCPeerConnection lấy theo dõi local stream - RTCPeerConnection lấy theo dõi remote stream - RTCPeerConnection tự động thiết lập dòng đàm phán lại theo yêu cầu - RTCPeerConnection cung cấp API cần thiết để tạo lời mời kết nối, chấp nhận yêu cầu trả lời, cho phép truy vấn kết nối nhiều [3] Tạo kết nối RTCPeerConnection WebRTC: var pc = new RTCPeerConnection({}); Như RTCPeerConnection cho phép hai trình duyệt chia sẻ thông tin liệu audio, video mà chúng lấy từ phương thức getUserMedia 2.5.3 RTCDataChannel WebRTC hỗ trợ giao tiếp thời gian thực với nhiều loại liệu khác API RTCDataChannel cho phép kết nối peer-to-peer trao đổi liệu tùy ý, với độ trễ thấp tốc độ cao [9] Tiềm sử dụng API RTCDataChannel lớn Cụ thể, áp dụng vào ứng dụng thời gian thực như: - Chơi game 17 - Ứng dụng điều khiển máy tính từ xa - Trò chuyện văn thời gian thực - File transfer - Mạng lưới phân cấp Giao tiếp RTC xảy trực tiếp trình duyệt nên RTCDataChannel thực thi nhanh hơn, linh hoạt nhiều so với WebSocket thông thường máy chủ TURN yêu cầu “hole punching” để ứng phó với tường lửa lỗi NATs fails [9] - Khơng giống WebSocket, peer (người dùng) khởi tạo lại DataChannel mới: đối tượng ondatachannel hình thành RTCDataChannel gọi lại - Khơng giống WebSocket, DataChannel tùy chỉnh cấu hình với độ tin cậy - DataChannel xây dựng đối tượng RTCPeerConnection Sự khác biệt lớn DataChannel với WebSocket nằm giao thức vận chuyển, WebSocket sử dụng TCP tính tin cậy trình tự tin nhắn, thơng điệp, gói truyền Còn DataChannel cho phép giao tiếp truyền liệu cách ngang hàng, lớp tổng hợp giao thức: - UDP cung cấp kết nối peer-to-peer - DTLS cung cấp mã hóa liệu truyền - SCTP cung cấp ghép kênh, dòng chảy kiểm sốt tắc nghẽn, tính khác 2.6 BẢO MẬT TRONG WebRTC Vấn đề bảo mật WebRTC: - WebRTC triển khai sử dụng giao thức an tồn DTLS SRTP 18 - Mã hóa bắt buộc tất thành phần WebRTC, bao gồm chế truyền báo hiệu - WebRTC plugin: thành phần chạy bên trình duyệt khơng phải tiến trình riêng biệt Các thành phần WebRTC khơng yêu cầu cài đặt riêng biệt cập nhật trình duyệt cập nhật - Việc truy cập máy ảnh microphone phải cho phép cách rõ ràng, máy ảnh microphone chạy, thể rõ giao diện người dùng [5] CHƢƠNG XÂY DỰNG ỨNG DỤNG HỖ TRỢ TRỰC TUYẾN 3.1 GIỚI THIỆU VỀ EasyRTC Framework EasyRTC phát triển Priologic Software Inc, EasyRTC framework xây dựng tảng WebRTC, tiêu chuẩn W3C/IETF cho truyền thông thời gian thực audio, video liệu trình duyệt web WebRTC hỗ trợ truyền audio, video liệu dựa sở peer-to-peer nên đòi hỏi hỗ trợ từ phía máy chủ EasyRTC framework bao gồm thư viện JavaScript phía client thư viện JavaScript phía máy chủ xây dựng dựa tảng Node.js Tại thư viện WebRTC xây dựng vào trình duyệt nên khơng đòi hỏi plugin cho trình duyệt [4] 3.2 PHÂN TÍCH HỆ THỐNG 3.2.1 Mục tiêu Xây dựng ứng dụng hỗ trợ trực tuyến tích hợp vào website 19 quản lý đào tạo trường Đại học Sư phạm - Đại học Đà Nẵng, để hỗ trợ cho người học thông qua gọi web từ người học tới cán phòng Đào tạo để trao đổi, chia sẻ video, gửi tin nhắn dạng văn gửi tập tin trình duyệt web mà không cần phải cài đặt thêm plugin ứng dụng chatnào 3.2.2 Thực trạng Nhằm nâng cao hiệu công tác quản lý đào tạo Thì việc hỗ trợ trực tuyến phần thiếu website quản lý đào tạo Hiện website quản lý đào tạo Trường Đại học Sư phạm – Đại học Đà Nẵng chưa có phần hỗ trợ trực tuyến Người học cần liên lạc với cán phòng Đào tạo để hỏi chi tiết thông tin liên quan tuyển sinh, kế hoạch đào tạo, thời khóa biểu, đăng ký học phần … phải liên hệ trực tiếp phòng Đào tạo nhiều thời gian nhận thông tin phản hồi Chưa hỗ trợ kịp thời thắc mắc người học Hiện nay, sử dụng ứng dụng chat độc lập Yahoo Messenger, Skype Live chat cho việc hỗ trợ trực tuyến Với Yahoo Messenger, Skype nhược điểm người học phải cài đặt ứng dụng chat máy tính phải có tài khoản Yahoo hay Skype để đăng nhập trước chat với cán phòng Đào tạo Với Live chat người học chat với cán phòng Đào tạo qua web Tuy nhiên, khơng hỗ trợ đàm thoại audio, video phải tốn phí sử dụng hàng tháng 3.2.3 Phân tích yêu cầu ứng dụng Ứng dụng hỗ trợ trực tuyến cần đảm bảo yêu cầu sau mặt chức năng: 20 Dễ dàng tích hợp vào website quản lý đào tạo trường Đại học Sư phạm - Đại học Đà Nẵng Cho phép người học kết nối với cán phòng Đào tạo cách nhanh chóng Cho phép người học cán phòng Đào tạo thực đàm thoại audio, video, gửi tin nhắn dạng văn gửi tập tin cho cách dễ dàng Không yêu cầu người học cài đặt thêm ứng dụng plugin để thực đàm thoại với cán phòng Đào tạo qua web Người học sử dụng điện thoại, máy tính bảng máy tính để kết nối 3.3 THIẾT KẾ ỨNG DỤNG 3.3.1 Xác định tác nhân hệ thống Các tác nhân tham gia vào hệ thống bao gồm: Cán phòng Đào tạo, Người học 3.3.2 Biểu đồ ca sử dụng 3.3.3 Biểu đồ 3.3.4 Biểu đồ hoạt động 3.3.5 Thiết kế giao diện 3.4 CÀI ĐẶT ỨNG DỤNG 3.4.1 Chuẩn bị môi trƣờng công cụ phát triển Để tiến hành phát triển ứng dụng WebRTC cần phải chuẩn bị môi trường cài đặt cơng cụ sau đây: Trình duyệt web: Bạn cần cài đặt trình duyệt web có hỗ trợ WebRTC Mơi trường lập trình (dùng Node.js): EasyRTC framework: 21 3.4.2 Xây dựng hàm kết nối Khi người học truy cập vào trang web quản lý đào tạo sau tìm đến mục hỗ trợ trực tuyến Tại người học nhập vào tên bấm vào nút kết nối Khi người dùng bấm vào nút “Kết nối” chương trình gọi đến server thực thi hàm connect() Để sử dụng kênh liệu, hai bên kết nối phải kích hoạt kênh truyền liệu trước gọi (hoặc chấp nhận gọi) Trách nhiệm hàm connect( ) để kết nối tới máy chủ tín hiệu EasyRTC, có tham số đầu vào sau:  applicationName: chuỗi để xác định tên ứng dụng, ứng dụng có tên khác có danh sách người dùng khác  LoginSuccess (easyrtcId): hàm gọi kết nối thành công easyrtcId định danh cho người dùng kết nối  LoginFailure (errorCode, message): hàm gọi kết nối không thành công errorCode mã lỗi trả về, message chuỗi mô tả lỗi trả Chúng ta phải kết nối thành công trước thực gọi người dùng khác Hàm convertListToButtons gọi người dùng khác kết nối ngắt kết nối gọi sau gọi hàm easyrtc.connect( ) 3.4.3 Xây dựng hàm performCall Để thực bắt đầu gọi peer-to-peer, cần gọi phương thức easyrtc.call( ) 22 Hàm easyrtc.getLocalStream( ) dùng để truy cập webcam microphone Nếu truy cập webcam thành công, video stream truy xuất từ webcam gắn vào thẻ video (selfVideo) mà bạn chèn vào trang HTML5 lời gọi hàm easyrtc.setVideoObjectSrc( ) Tiếp đến, cần thiết lập hàm callback để gắn dòng media trả từ người gọi vào thẻ video (callerVideo) Chúng ta cần hàm callback để thực xóa dòng media khỏi thẻ video dòng media đóng lại 3.4.4 Xây dựng hàm gửi tin nhắn Khi kênh liệu mở ra, gửi tin nhắn cách gọi hàm sendStuffWS 3.5 CHẠY THỬ VÀ ĐÁNH GIÁ ỨNG DỤNG 3.5.1 Chạy thử ứng dụng Sau cán phòng Đào tạo đăng nhập vào hệ thống quản lý website tích hợp ứng dụng hỗ trợ trực tuyến, họ nhận gọi đến từ người học Người học truy cập vào trang web quản lý đào tạo tìm đến mục hỗ trợ trực tuyến để kết nối với cán phòng Đào tạo 3.5.2 Đánh giá hiệu ứng dụng a Ưu điểm - Qua việc tích hợp chạy thử ứng dụng hỗ trợ trực tuyến nhận thấy việc tích hợp ứng dụng hỗ trợ trực tuyến vào website nhanh chóng Người học nhanh chóng kết nối với cán phòng Đào tạo trình duyệt web, mà khơng cần phải sử dụng đến plugin ứng dụng chat độc lập Skype Yahoo messenger - Người học cán phòng Đào tạo thực 23 đàm thoại, gọi video, chat chia sẻ file sử dụng ứng dụng chat độc lập Skype Yahoo b Nhược điểm Như ứng dụng đáp ứng yêu cầu đề phần phân tích hệ thống, nhiên số hạn chế sau đây: - Thiết kế hệ thống cho phép cán phòng Đào tạo hỗ trợ người học thời điểm - Ứng dụng chưa cho phép lựa chọn hỗ trợ người học thông qua tin nhắn văn Hiện tại, ứng dụng sử dụng microphone webcam kết nối KẾT LUẬN Trong luận văn này, chúng tơi tìm hiểu kiến trúc, giao thức, API,… WebRTC Đồng thời, chúng tơi tìm hiểu framework sử dụng WebRTC EasyRTC framework, giúp nhà phát triển ứng dụng sử dụng WebRTC dễ dàng Chúng tơi phân tích, thiết kế cài đặt ứng dụng hỗ trợ trực tuyến sử dụng WebRTC EasyRTC framework để tích hợp vào website quản lý đào tạo trường Đại học Sư phạm – Đại học Đà Nẵng nhằm phục vụ cho việc hỗ trợ tư vấn người học Chúng nhận thấy WebRTC tiếp tục phát triển chưa phải phiên thức, việc sử dụng WebRTC tỏ hiệu ứng dụng web Nó cải thiện hiệu năng, giảm độ trễ, tốc độ truyền tải để đáp ứng nhu cầu người dùng sau Như vậy, WebRTC mở kỷ nguyên cho ngành công nghiệp viễn thông thời gian thực, nhà phát triển khắp tự tạo ứng dụng RTC mà trước cơng nghệ RTC 24 phát triển tập đồn lớn có đủ kinh phí, khả chi trả giấy phép đắt đỏ plugin kèm theo WebRTC mở sóng cho ứng dụng phát triển đa tảng Windows, Linux, Mac, Mobie OS … đặc biệt đa thiết bị Smartphone thịnh hành tương lai Smart watch hay tivi đại sử dụng hệ điều hành Để hướng tới việc phát triển thêm ứng dụng mình, chúng tơi cố gắng xây dựng nâng cấp ứng dụng hỗ trợ lúc nhiều người học Bên cạnh chúng tơi phát triển ứng dụng tùy chọn hỗ trợ dạng tin nhắn gọi audio video giống ứng dụng chat Skype hay Yahoo messenger ... Mozilla Firefox Với ưu điểm kể trên, việc tìm hiểu hệ thống truyền thơng đa phương tiện thời gian thực sở giải pháp kỹ thuật WebRTC ứng dụng giải pháp kỹ thuật vào thực tế vấn đề cần thiết Mục... TIỆN 1.1.1 Khái niện truyền thông đa phƣơng tiện Truyền thông đa phương tiện công nghệ truyền thông giúp người dùng trao đổi, chia sẻ thông tin đa phương tiện mạng truyền thông, thông tin gồm: Dữ... 2.2 Nhiệm vụ Đối tƣợng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu 3.2 Phạm vi nghiên cứu Phƣơng pháp nghiên cứu 4.1 Phương pháp nghiên cứu tài liệu 4.2 Phương pháp thực nghiệm Mục đích ý nghĩa

Ngày đăng: 25/05/2019, 13:57

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan