Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
3,82 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VIẾT THẮNG NGHIÊN CỨU ỨNG DỤNG CÔNG NGHỆ WEBRTC CHO GIẢI PHÁP CỘNG TÁC VÀ CHIA SẺ DỮ LIỆU ĐA PHƯƠNG TIỆN TẠI TRUNG TÂM MVAS-TCT VIỄN THÔNG MOBIFONE LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà nội - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VIẾT THẮNG NGHIÊN CỨU ỨNG DỤNG CÔNG NGHỆ WEBRTC CHO GIẢI PHÁP CỘNG TÁC VÀ CHIA SẺ DỮ LIỆU ĐA PHƯƠNG TIỆN TẠI TRUNG TÂM MVAS-TCT VIỄN THÔNG MOBIFONE Ngành Chuyên ngành Mã số : : Công nghệ thông tin Truyền liệu & Mạng máy tính : LUẬN VĂN THẠC SĨ CƠNG NGHỆ THƠNG TIN GIÁO VIÊN HƯỚNG DẪN KHOA HỌC: TS.HỒNG XN TÙNG Hà nội - 2016 LỜI CẢM ƠN Luận văn Thạc sĩ thực Đại học Công nghệ - Đại học Quốc gia Hà Nội hướng dẫn TS Hoàng Xuân Tùng Xin gửi lời cảm ơn sâu sắc đến thầy Hoàng Xuân Tùng ý kiến quý báu liên quan đến định hướng khoa học, liên tục quan tâm, tạo điều kiện thuận lợi cho tơi suốt q trình nghiên cứu hồn thành luận văn Tơi xin gửi lời cảm ơn đến thầy, cô Bộ môn Truyền liệu Mạng máy tính Khoa Công nghệ Thông tin mang lại cho kiến thức vơ q giá bổ ích q trình theo học trường Tơi xin gửi lời cảm ơn tới đồng chí lãnh đạo đơn vị nơi công tác tạo điều kiện thời gian để tơi hồn thành chương trình học Bên cạnh tơi xin gửi lời cám ơn tới đồng nghiệp Mobifone tạo điều kiện giúp đỡ tơi hồn thành khóa luận cách tốt Cuối xin chân thành cảm ơn đến học viên cao học khóa K19, K20, K21 giúp đỡ suốt thời gian học tập Do thời gian kiến thức có hạn nên luận văn không tránh khỏi thiếu sót định Tơi mong nhận góp ý q báu thầy bạn Hà Nội, ngày tháng năm 2016 Nguyễn Viết Thắng LỜI CAM ĐOAN Tôi Nguyễn Viết Thắng xin cam đoan nội dung luận văn cơng trình nghiên cứu sáng tạo tơi thực hướng dẫn TS Hoàng Xuân Tùng Số liệu, kết trình bày luận văn hồn tồn trung thực chưa công bố công trình khoa học trước Nếu hình ảnh lấy từ nguồn bên ngồi, tơi có trích dẫn nguồn rõ ràng đầy đủ Hà Nội, ngày … tháng … năm 2016 Học viên Nguyễn Viết Thắng MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ CHƯƠNG MỞ ĐẦU 1.1 Đặt vấn đề 1.2 Phạm vi mục tiêu luận văn 1.3 Phương pháp bố cục nghiên cứu 10 CHƯƠNG TỔNG QUAN VỀ WEBRTC 11 2.1 Quá trình phát triển 11 2.2 Kiến trúc WebRTC 14 2.3 Các APIs WebRTC 18 2.4 Các tầng giao thức WebRTC 22 CHƯƠNG BÁO HIỆU TRONG WEBRTC 30 3.1 Vai trò báo hiệu 30 3.2 Giao thức vận chuyển báo hiệu 31 3.3 Giao thức báo hiệu 33 3.4 Các trình báo hiệu 36 CHƯƠNG ỨNG DỤNG WEBRTC CHO GIẢI PHÁP CỘNG TÁC VÀ CHIA SẺ DỮ LIỆU ĐA PHƯƠNG TIỆN TẠI TRUNG TÂM MVAS 42 4.1 Thư viện WebRTC hướng tiếp cận 42 4.1.1 Các thư viện WebRTC 42 4.1.2 Các hướng tiếp cận sử dụng WebRTC 44 4.2 Ứng dụng WebRTC thử nghiệm cho việc cộng tác, chia sẻ liệu đa phương tiện Trung tâm MVAS - Mobifone 47 4.2.1 Hiện trạng cộng tác chia sẻ liệu Mobifone 47 4.2.2 Yêu cầu hệ thống cộng tác Trung tâm MVAS – TCT viễn thông Mobifone 49 4.2.3 Thiết kế kiến trúc hệ thống 49 4.2.4 Phân tích chức người dùng 51 4.2.5 Phân tích luồng kiện 52 4.2.6 Phát triển ứng dụng 55 4.2.7 Kết thử nghiệm đánh giá 66 CHƯƠNG KẾT LUẬN CHUNG 71 5.1 Các đóng góp luận văn 71 5.2 Một số hướng phát triển 71 TÀI LIỆU THAM KHẢO 73 DANH MỤC CÁC TỪ VIẾT TẮT TT 10 11 12 13 14 15 16 17 18 19 20 Từ viết tắt HTTP URI URL CSS NAT STUN TURN WEBRTC W3C IETF API UDP HTML P2P FTP SIP PSTN CORS JSON JSEP Cụm từ tiếng anh Hypertext Transfer Protocol Uniform Resource Identifier Uniform Resource Locator Cascading Style Sheets Network Address Translation Session Traversal Utilities for NAT Traversal Using Relays around NAT Web Realtime Communication World Wide Web Consortium Internet Engineering Task Force Application Programming Interface User Datagram Protocol Hyper-Text Markup Language Peer-to-Peer File Transfer Protocol Session Initiation Protocol Public switched telephone network Cross Origin Resource Sharing JavaScript Object Notation Javascript Session Establishment Protocol DANH MỤC CÁC BẢNG Bảng 2.1: Những tính WebRTC (tổng hợp theo [1]) 13 Bảng 2.2: So sánh WebSocket DataChannel [4] Bảng 2.3: So sánh tính giao thức TCP, UDP SCTP Bảng 4.1: Thư viện WebRTC Javascript Bảng 4.2 Cơ chế hoạt động chung thư viện WebRTC Javascript Bảng 4.3 Thống kê ứng viên trình thiết lập kết nối P2P với Firefox Bảng 4.4: So sánh ứng dụng chat chia sẻ file 21 23 42 43 68 69 DANH MỤC CÁC HÌNH VẼ Hình 2.1: Kiến trúc ứng dụng Web cổ điển 14 Hình 2.2: Truyền thơng thời gian thực trình duyệt (nguồn [1]) Hình 2.4: RTCPeerConnection API [Nguồn 4] Hình 2.5: MediaStream mang nhiều tracks đồng Hình 2.6: Protocol stack WebRTC [Nguồn 4] Hình 2.7: Mơ hình hoạt động STUN Hình 2.8: Luồng Media qua TURN server Hình 2.9: Quy trình hoạt động ICE mức cao Hình 2.10: Sơ đồ chuyển trạng thái ICE Hình 3.1: HTTP Transport cho báo hiệu Hình 3.2 Vận chuyển báo hiệu Data Channel Hình 3.3: Giao thức báo hiệu SIP WebSocket Hình 3.4: Báo hiệu Jingle over WebSockets cho WebRTC Hình 3.5 Các thực thể tham gia trình báo hiệu Hình 3.6: Quá trình khởi tạo báo hiệu WebRTC Hình 3.7 Quá trình ICE Negotiation báo hiệu WebRTC Hình 3.8: Q trình xử lý thơng điệp ICE phía người dùng xa Hình 3.9: Quá trình xử lý thơng điệp SDP phía người dùng xa Hình 3.10: Q trình xử lý thơng điệp SDP, ICE nhận phản hồi từ người dùng xa báo hiệu WebRTC Hình 3.11: Quá trình xử lý B đồng ý ứng dụng truy cập camera/microphone Hình 4.1: Mơ hình cộng tác Mobifone Hình 4.2: Kiến trúc hệ thống cộng tác chia sẻ liệu mChat Hình 4.3: Biểu đồ phân rã chức người dùng hệ thống Hình 4.5: Biểu đồ trình xác thực tài khoản Email Mobifone Hình 4.6 Biểu đồ tuần module gửi/nhận text message Hình 4.7 Biểu đồ tuần thiết lập gọi audio – voice chat Hình 4.8: Biểu đồ tuần chia sẻ file Hình 4.9: Biểu đồ chức quản lý nhóm Hình 4.10: Giao diện login Hình 4.11: Giao diện Private Chat Hình 4.12: Giao diện group chat Hình 4.13: Giao diện voice-chat 15 19 20 22 24 26 26 28 31 32 34 35 36 37 38 39 40 40 41 47 50 51 59 60 61 62 63 63 64 65 65 CHƯƠNG MỞ ĐẦU 1.1 Đặt vấn đề Cùng với bùng nổ công nghệ, người dùng Internet, nhu cầu giao tiếp, chia sẻ thông tin, trao đổi liệu ngày lớn Về chia sẻ thông tin liệu, giới có nhiều hình thức với cơng nghệ, giao thức, ứng dụng khác nhau, từ FTP, Email đến hình thức chia sẻ P2P (Peer-to-Peer) Bitorrent, ứng dụng dịch vụ cloud Dropbox, OneDrive, Google Drive Về giao tiếp thời gian thực có ứng dụng messenger thành công người dùng chào đón Skype, Viber, Whatsapp, Line, Hangouts…Tuy nhiên, nhiều lý từ tốc độ, bảo mật an tồn thơng tin đặc biệt tiện dụng, tiếp tục có nghiên cứu để đơn giản hóa việc giao tiếp, chia sẻ liệu, hỗ trợ người dùng cách nhanh mà khơng địi hỏi phải thao tác nhiều hay cài đặt thêm plugin ứng dụng máy Cụ thể hơn, mong muốn sử dụng trình duyệt khơng để lướt web, check mail mà công cụ hỗ trợ tất nhu cầu từ chia sẻ file đến giao tiếp thời gian thực từ lâu nhen nhóm thực phát triển mạnh từ năm 2009 Ý tưởng ban đầu từ Google với dự án mã nguồn mở browser-based real-time communication, gọi WebRTC, mục đích tạo khả giao tiếp thời gian thực trình duyệt Đến WebRTC thiết kế để tích hợp với hệ thống truyền thơng VoIP, SIP client khác nhau, chí mạng PSTN WebRTC tiếp tục phát triển, tổ chức tiêu chuẩn giới bàn thảo để chuẩn hóa giao thức, APIs trình duyệt để hỗ trợ WebRTC WebRTC vendor trình duyệt lớn hỗ trợ việc phát triển, đảm bảo trình duyệt kết nối trực tiếp với thực yêu cầu thời gian thực giao tiếp Điều mở giai đoạn Web, thực mang Web đến với giới viễn thông 1.2 Phạm vi mục tiêu luận văn Luận văn tập trung tìm hiểu cơng nghệ WebRTC, APIs trình duyệt, giao thức WebRTC sử dụng để chia sẻ truyền liệu trực tiếp thời gian thực trình duyệt mơi trường mạng Luận văn phân tích yêu cầu tính chất “thời gian thực” truyền liệu media cách thức WebRTC xây dựng để giải quyết, cách thức vượt NAT, Firewall để thiết lập kết nối Peer to Peer Luận văn sâu vào nghiên cứu phần báo hiệu (phần quan trọng khơng chuẩn hóa WebRTC), luồng tiến trình trình báo hiệu Dựa kết nghiên cứu WebRTC đến thời điểm tại, luận văn hướng tiếp cận với WebRTC để phục vụ phát triển ứng dụng web giao tiếp thời gian thực Cuối trạng Trung tâm dịch vụ Đa Phương tiện giá trị gia tăng Mobifone – Tổng Công ty viễn thông Mobifone, luận văn đưa ứng dụng demo cho giải pháp cộng tác giúp chia sẻ liệu đa Phương tiện Trung tâm nền tảng WebRTC EasyRTC 10 1.3 Phương pháp bố cục nghiên cứu Luận văn chia thành ba chương với nội dung sau: Chương – Lời mở đầu Chương – Tổng quan WebRTC Chương giới thiệu chung lịch sử, tiện lợi, APIs giao thức sử dụng WebRTC Chương – Báo hiệu, thiết lập phiên WebRTC Chương sâu vào tìm hiểu, phân tích việc sử dụng báo hiệu kênh báo hiệu để thiết lập phiên kết nối Peerto-peer WebRTC Chương – Ứng dụng WebRTC giải pháp cộng tác chia sẻ liệu đa Phương tiện Trung tâm MVAS – TCT Viễn thông Mobifone Chương giới thiệu cách tiếp cận sử dụng WebRTC xây dựng ứng dụng, giới thiệu framework EasyRTC sử dụng EasyRTC demo ứng dụng cộng tác Trung tâm MVAS – TCT viễn thông Mobifone Chương - Kết luận: Kết đạt hướng phát triển 60 Module quản lý, hỗ trợ gửi/nhận message P2P mChat client Việc chat hay gửi nhận thông điệp mChat client bắt đầu hàm easyrtc.call() Hàm có nhiệm vụ khởi tạo đối tượng RTCPeerConnection thiết lập thông số cần thiết trước hai bên trao đổi thơng điệp Q trình báo hiệu bắt đầu thực với việc gửi thông điệp offer, answer Sau kết thúc trình báo hiệu, kết nối peer thiết lập, việc gửi nhận message thơng qua hàm gửi sendDataP2P() phía người gửi xử lý listener onChannelMsg phía người nhận Hình 4.6 Biểu đồ tuần module gửi/nhận text message Module quản lý, hỗ trợ gọi nhận hay ngắt gọi audio P2P client Việc thực voice-chat bắt đầu lời gọi hàm easyrtc.connect() Hàm connect() kết nối đến máy chủ mChat qua WebSocket, giúp mChat server biết có người dùng sẵn sàng kết nối cho chức voice-chat Hàm connect() khởi động nguồn media, cụ thể trường hợp xin phép người dùng truy cập vào microphone để sẵn sàng cho voice-chat Sau kết nối tới máy chủ, hàm easyrtc.call() thực gọi đến người dùng đầu xa, đầu xa đồng ý kết nối đối tượng RTCPeerConnection thiết lập phù hợp, dòng audio truyền qua mạng truyền loa nhờ vào xử lý kiện onaddstream getRemoteStream đối tượng RTCPeerConnection 61 Người dùng mChat client mChat Server Người dùng mChat client Ấn Connect Ấn Connect easyrtc.connect() easyrtc.connect() Kết nối đến mChat Signaling Server Chọn đối tượng, click Call easyrtc.call() form đồng ý Ấn Accept Gửi thông điệp Accept Gửi thông điệp Accept PeerConnection.onaddstream() PeerConnection.onaddstream() PeerConnection.getRemoteStream() PeerConnection.getRemoteStream() Hình 4.7 Biểu đồ tuần thiết lập gọi audio – voice chat Module gửi file: Cho phép người dùng gửi file P2P trình duyệt, hỗ trợ người dùng gửi file liệu lớn Gửi file bắt đầu thao tác lựa chọn người chat kéo thả file giao diện Lựa chọn người dùng tương tự phần gửi thơng điệp, gọi đến hàm easyrtc.call(), mục đích khởi tạo đối tượng RTCPeerConnection thiết lập thơng số cần thiết trước hai bên trao đổi thông điệp Khi người dùng kéo thả file cần có xác nhận từ phía đầu xa đồng ý nhận file Khi đồng ý trình gửi file thực nhờ easyrtc.sendData() Hàm sendData() kiểm tra kết nối Peer, có có kết nối P2P gửi file trực tiếp qua kênh DataChannel, khơng có kết nối P2P client gửi qua mChat server WebSocket Dưới đoạn code mô tả hàm sendData lớp EasyRTC: this.sendData = function(destUser, msgType, msgData, ackHandler) { if (peerConns[destUser] && peerConns[destUser].dataChannelReady) { self.sendDataP2P(destUser, msgType, msgData); } else { self.sendDataWS(destUser, msgType, msgData, ackHandler); } 62 Hình 4.8: Biểu đồ tuần chia sẻ file Module quản lý nhóm hay room cộng tác: Cho phép người dùng chủ động tạo nhóm với mật khẩu, mời người khác tham gia nhóm cộng tác qua link Để tạo nhóm, hay join nhóm, easyrtc cung cấp hàm joinroom Để rời nhóm, easyrtc cung cấp hàm leaveroom Cơng việc hàm gửi thơng tin joinroom, leaveroom cho mChat serer cập nhật thông tin nhóm thời gian thực Tất mChat client update thông tin nhờ vào hàm processRoomData cập nhập 0.1 giây (sử dụng timer) 63 Hình 4.9: Biểu đồ chức quản lý nhóm 4.2.6.4 Thiết kế giao diện Giao diện hệ thống thiết kế theo chuẩn “Responsive Design” giúp tự động dàn trang, hiển thị kích cỡ hình khác (PC, smartphone, tablet ) Thiết kế sử dụng Bootstrap framework, framework phổ biến cho việc thiết kế html, css, JavaScrip cho web tương tác Luận văn sử dụng EJS, ngơn ngữ mẫu phía client, cho phép kết hợp liệu mẫu template để tạo HTML Giao diện login hệ thống, cho phép xác thực tài khoản LDAP tài khoản Facebook: Hình 4.10: Giao diện login 64 Giao diện sau người dùng xác thực thành công qua Microsoft AD qua Facebook: Hình 4.11: Giao diện Private Chat Giao diện group Collaboration, cho phép người dùng tạo nhóm, tham gia nhóm, rời nhóm: 65 Hình 4.12: Giao diện group chat Giao diện voice-chat, cho phép người dùng thiết lập gọi P2P với người khác: Hình 4.13: Giao diện voice-chat 4.2.6.5 Các thách thức Trong phạm vi đề tài, tác giả không tập trung xây dựng ứng dụng cộng tác với nhiều tính thực với EasyRTC chat video, chia sẻ hình 66 (screen sharing), hay nhóm chat audio, video (số lượng tham gia nhỏ) việc phát triển chúng tương tự Ứng dụng cộng tác demo chưa hỗ trợ khả lưu trữ, hiển thị lịch sử trao đổi mChat client Vấn đề khơng gặp thách thức kỹ thuật, giải cách bổ sung thêm Database phía máy chủ, message gửi P2P đồng thời gửi đến mChat server lưu trữ qua WebSocket Vì tính chất tập trung vào tương tác thời gian thực nên yếu tố cần thiết Tuy nhiên, có tính quan trọng tính push notification, hay gửi thông báo cho mChat client A biết có mChat client B muốn tương tác qua chat text, qua gọi Với ứng dụng demo luận văn trình bày, địi hỏi người dùng muốn cộng tác phải sử dụng trình duyệt truy cập vào ứng dụng web gần thời điểm Đây điểm hạn chế lớn cộng tác khung thời gian hoạt động người dùng khác khơng có chế thơng báo Gửi thơng báo hữu ích người dùng mở trình duyệt chưa truy cập ứng dụng chí khơng mở trình duyệt biết thơng tin có người muốn tương tác để truy cập ứng dụng bắt đầu phiên cộng Đây thách thức nói chung với tất ứng dụng cộng tác với WebRTC môi trường desktop (Môi trường mobile gửi tin nhắn thơng báo từ ứng dụng đến máy chủ Google/Apple notification, từ gửi đến thiết bị) Trình duyệt Chrome từ phiên version 42, cung cấp Push API Notification API cho nhà phát triển Bản chất Chrome thông qua Extension hỗ trợ cho file JavaScript chạy ngầm lắng nghe kết nối WebRTC Khi có kết nối WebRTC thông báo Giải pháp không yêu cầu người dùng vào ứng dụng phải chạy trình duyệt Chrome Tương tự Firefox từ phiên 44 hỗ trợ Web Push, trình duyệt Firefox hoạt động nhận tin nhắn đóng tab ứng dụng Ngồi nỗ lực Google, Firefox W3C IETF bắt đầu nghiên cứu bàn thảo tiêu chuẩn việc “push” thông điệp từ năm 2012 Hiện tại, W3C công bố Push API working draft cập nhật gần vào 15/12/2015, cịn IETF có dự thảo WebPush protocol (nhóm IETF WEBPUSH) cập nhật gần vào 17/10/2015 Vì vậy, lúc chưa chuẩn hóa, muốn xây dựng ứng dụng có tính “push” thông báo cần dựa cung cấp, API nhà phát triển trình duyệt riêng 4.2.7 Kết thử nghiệm đánh giá Môi trường thử nghiệm mChat server: Hệ điều hành: Windows 10 Pro, Windows Pro, Ubuntu 16.04x64 Máy chủ web (http) cài đặt qua Node.JS phiên 4.6.0 máy chủ Windows Node.JS phiên 4.2.6 máy chủ Ubuntu, kết hợp với module http module express 67 Máy chủ báo hiệu (sử dụng WebSockets cho báo hiệu) cài đặt qua Node.JS phiên 4.6.0 máy chủ Windows Node.JS phiên 4.2.6 máy chủ Ubuntu, kết hợp với module socket.io Máy chủ hỗ trợ xác thực sử dụng module passport Node.JS (Các dịch vụ phần báo hiệu, web, hỗ trợ xác thực cài chung máy vật lý) Máy chủ LDAP: máy chủ Windows Server 2012 R2, cài đặt dịch vụ Active Directory Domain Services Đây máy chủ chạy thật Mobifone, phục vụ quản lý tất tài khoản người dùng cán công nhân viên Mobifone Máy chủ STUN: kết nối đến máy chủ STUN public Google địa stun.l.google.com:19302 Trong trường hợp không kết nối STUN Google kết nối đến STUN miễn phí khác địa stun.sipgate.net:10000; Môi trường thử nghiệm mChat client: Hệ điều hành Windows 10 Pro, Window Pro; trình duyệt thử nghiệm Firefox phiên 47.0.2, 49.0.2; Chrome phiên 54.0.2840.71m, 54.0.2840.99m; Microsoft Edge 38.14393.0.0 Hệ điều hành Android 6.0.1, cài đặt trình duyệt Chrome 54.0.2840.85, Firefox 49.0.2… Hệ điều hành IOS 10.1.1, cài đặt trình duyệt Chrome 54.0.2840.91, trình duyệt Firefox 5.3 (2) Các máy tính, thiết bị mobile kết nối vào mạng Trung tâm MVAS Mobifone (cùng lớp mạng 10.151.181.0/24) Kết thử nghiệm: Kết thử nghiệm nội mạng Trung tâm dịch vụ Đa Phương tiện giá trị gia tăng (MVAS) Mobifione số kịch sau: Chức xác thực: xác thực qua LDAP Mobifone xác thực qua Facebook hoạt động tốt với tất trình duyệt, mơi trường client thử nghiệm Chức chat text Peer to Peer: hoạt động tốt với trình duyệt Chrome, Firefox tảng Windows, Android Chưa hoạt động với Chrome, Firefox cài đặt IOS Chức gửi file: hoạt động tốt với trình duyệt Chrome, Firefox desktop Chia sẻ file từ tảng desktop sang tảng mobile Android với trình duyệt Chrome, Firefox hoạt động tốt Tuy nhiên thực thao tác chia 68 sẻ file, người dùng đóng trình duyệt mở tab làm việc khác, trình gửi/nhận bị dừng lại mà không tự phục hồi (thiếu chức resumable) Chức quản lý nhóm: hoạt động tốt với tất trình duyệt, phần chủ yếu quản trị liệu nhóm Chức voice-chat: o Với người dùng sử dụng Firefox desktop: hoạt động tốt o Với người dùng Chrome desktop: gặp lỗi PermissionDeniedError truy cập vào local media, cụ thể truy cập vào microphone máy Lỗi khắc phục Node.JS dựng máy chủ https thay http phần thử nghiệm o Với người dùng tảng mobile Android IOS: chưa hoạt động với Firefox, Chrome Chức gửi text nhóm: hoạt động tốt với trình duyệt Firefox, Chrome tảng Desktop Mobile Trong q trình thử nghiệm, để có thơng tin kết nối Peer Peer trình duyệt, sử dụng công cụ Firefox Chrome tích hợp sẵn trình duyệt Với Firefox truy cập about:webrtc, với Chrome truy cập chrome://webrtc-internals Bảng 4.3 Thống kê ứng viên trình thiết lập kết nối P2P với Firefox Local Candidate Remote Candidate ICE State Priority 92.168.194.1:57925/udp 192.168.100.11:49742/ failed (host) udp(host) 192.168.68.1:57926/udp 192.168.100.11:49742/ failed (host) udp(host) 192.168.100.9:57927/udp 192.168.100.11:49742/ succeeded (host) udp(host) 192.168.194.1:57925/udp (host) 113.190.150.184:4974 2/udp (serverreflexive) cancelled 7.20E+18 192.168.68.1:57926/udp (host) 113.190.150.184:4974 2/udp (serverreflexive) cancelled 7.20E+18 192.168.100.9:57927/udp (host) 113.190.150.184:4974 2/udp (serverreflexive) cancelled 7.20E+18 Nominated Select ed TRUE TRUE 9.07E+18 9.07E+18 9.07E+18 Bảng 4.3 thể thông tin session thiết lập với Firefox, hai ứng viên thiết lập P2P có địa transport 192.168.100.9:57927/udp 192.168.100.11:49742/udp Đánh giá ứng dụng Qua việc xây dựng ứng dụng demo phần cộng tác chia sẻ liệu cho thấy việc sử dụng EasyRTC thật dễ dàng, giúp nhanh chóng triển khai ứng dụng tương 69 tác thời gian thực trình duyệt đặc biệt tảng Desktop Với ứng dụng web đơn giản này, cán công nhân viên Trung tâm MVAS dễ dàng trao đổi thơng tin, tài liệu với trực tiếp, theo nhóm mà tương đối tiện lợi, đảm bảo an toàn bảo mật Chất lượng voice thử nghiệm desktop cho chất lượng tương đối tốt, hai đầu nghe rõ, độ trễ thấp Ứng dụng đáp ứng yêu cầu đặt Tuy nhiên, ứng dụng số hạn chế chưa thể giải thời điểm chưa hỗ trợ trình duyệt IE, Safari; ứng dụng chưa hoạt động hết chức tảng mobile kết thử nghiệm Giao diện chưa thực tối ưu hướng đến thuận tiện cho người dùng sử dụng ứng dụng OTT Về tính năng, Bảng 4.4 so sánh số khía cạnh khả phát triển ứng dụng demo với ứng dụng OTT, web khác: Bảng 4.4: So sánh ứng dụng chat chia sẻ file Tính Chat text Chat nhóm Chat offline Lưu lịch sử chat Cảnh báo (Notification) Nền tảng hỗ trợ Windows MAC OS X Linux Unix IOS Android Web Live Video Streaming Voice chat Chia sẻ Upload tập tin Upload ảnh Upload Video Chia sẻ hình Cần cài đặt Bảo mật Mã hóa text gửi Skype Viber Facebook Khả ứng dụng demo WebRTC x x x x x x x x X x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Ghi Tính chưa kịp demo Hiện có phát triển áp dụng cho Chrome 70 Tính Skype Mã hóa text đảm bảo nhà cung cấp khơng thể đọc Mã hóa file gửi x x Viber x Facebook N/A Khả ứng dụng demo WebRTC x x x Ghi So với nhiều dự án mã nguồn mỡ hỗ trợ text/voice/video chat miễn phí WebRTC public mạng https://Sharefest.vn, https://hubl.in, https://talky.io , ứng dụng tương tác Trung tâm MVAS có điểm khác biệt sau: Tích hợp xác thực với hệ thống quản trị tài nguyên mạng tập trung Microsoft Active Directory Mobifone Phần xác thực phần WebRTC không định tiêu chuẩn, mà chuyển cho ứng dụng quản lý Hỗ trợ tạo nhóm cộng tác quản lý mật đảm bảo truy nhập an tồn cho nhóm Tuy nhiên, so với ứng dụng OTT phổ biến, ứng dụng demo có ưu điểm việc đơn giản sử dụng, không cần cài đặt plugin, an tâm bảo mật mà không địi hỏi đầu tư hạ tầng mạnh Để triển khai áp dụng rộng rãi Mobifone, ứng dụng cần bổ sung thêm tính cịn chưa hoạt động mobile, đặc biệt phần cảnh báo phân tích mục 4.2.6.5 71 CHƯƠNG KẾT LUẬN CHUNG 5.1 Các đóng góp luận văn Với yêu cầu đề tài luận văn nghiên cứu ứng dụng WebRTC việc xây dựng giải pháp cộng tác chia sẻ liệu đa phương tiện Trung tâm MVAS – Mobifone, luận văn thu số kết sau: Tìm hiểu nội dung WebbRTC như: chuẩn giao thức, APIs WebRTC, cách thức vượt NAT WebRTC Nghiên cứu sâu báo hiệu, vai trò báo hiệu trình báo hiệu WebRTC Khảo sát đánh giá thư viện WebRTC, hướng tiếp cận sử dụng thư viện WebRTC Nghiên cứu sử dụng thư viện EasyRTC việc xây dựng ứng dụng Peerto-Peer tương tác thời gian thực Phân tích yêu cầu, thiết kế ứng dụng, cài đặt thử nghiệm hệ thống cộng tác mạng nội Trung tâm dịch vụ Đa phương tiện giá trị gia tăng Mobifone Tổng công ty Viễn thông Mobifone đạt kết đáng khích lệ 5.2 Một số hướng phát triển Qua nghiên cứu WebRTC thử nghiệm ứng dụng, nhận thất WebRTC công nghệ tiềm năng, đặc biệt hiệu triển khai nhanh ứng dụng đòi hỏi tương tác thời gian thực tình duyệt với tính đơn giản cài đặt, dễ sử dụng với người dùng Các hạn chế WebRTC chưa hỗ trợ trình duyệt IE Microsoft, Safari Apple có giải pháp cài đặt thêm WebRTC plugin, dù khơng theo tiêu chí khơng plugin mà WebRTC hướng đến Vì vậy, WebRTC tiếp tục nghiên cứu chuẩn hóa (bản update vào tháng 9/2016), tiếp tục phát triển, tương lai ứng dụng WebRTC có tác động khơng nhỏ đến ngành cơng nghiệp web, chí thay ứng dụng cộng tác Với phân tích đánh giá kết thử nghiệm ứng dụng cộng tác, hướng phát triển đề tài nghiên cứu, phát triển tiếp công việc sau: Hồn thiện tính tương tự OTT hỗ trợ lưu thông tin chat office, cảnh báo notification Hồn thiện tính voice tảng mobile Bổ sung khả resumable cho việc gửi/nhận file Nghiên cứu khả phát triển tính chia sẻ hình – screen sharing Đến thời điểm có trình duyệt Chrome hỗ trợ để ứng dụng phát triển tính này, chất chụp ảnh hình liên tục gửi cho trình duyệt đầu xa 72 Nghiên cứu cách cài đặt tối ưu hiệu chức máy chủ EasyRTC, máy chủ báo hiệu, lựa chọn phương án tối ưu trường hợp số lượng người dùng lên đến 5000 cán công nhân viên Hồn thành việc nghiên cứu ứng dụng cộng tác chia sẻ liệu đa Phương tiện Trung tâm MVAS ứng dụng cho khơng TCT Viễn thơng Mobifone nói riêng mà cho tất doanh nghiệp, tổ chức nói chung, đảm bảo người dùng đón nhận 73 TÀI LIỆU THAM KHẢO TIẾNG ANH Alan B.Johnson, Daniel C.Burnett (2014), APIs and RTCWEB Protocols of the HTML5 Real-Time Web, Digital Codex LLC Salvatore Loreto, Simon Pietro Romano (2014), Real-time Communication with WebRTC, O’Reilly, USA Andrii Sergiienko (2014), WebRTC Blueprints, Packt Publishing Ltd, UK Ilya Grigorik (2015), High Performance Browser Networking, O’Reilly Media Altanai (2014), WebRTC Intergrator’s Guide, Packt Publishing Ltd, UK WebRTC for Enterprises Tsahi Levent-Levi (2013), WebRTC for Business People: Unraveling the challenges and opportunities of the WebRTC ecosystem Dan Ristic (2015), Learning WebRTC, Packt Publishing Ltd, UK Rob Manson (2013), Getting Started with WebRTC, Packt Publishing Ltd, UK 10 WebRTC Architecture, https://webrtc.org/architecture, Thời gian truy cập: 11-092016 11 RFC 1631 - The IP Network Address Translator (NAT), 1994, https://tools.ietf.org/html/rfc1631 12 RFC 6716 - Definition of the Opus Audio Codec, 2012 https://tools.ietf.org/html/rfc6716 13 RFC 5245, Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols, 2012, https://tools.ietf.org/html/rfc5245 14 RFC 5389, Session Traversal Utilities for NAT (STUN), 2008, https://tools.ietf.org/html/rfc5389 15 RFC 4960, Stream Control Tranmission Protocol (SCTP), 2007, https://tools.ietf.org/html/rfc4960 16 RFC 4347, Datagram Transport Layer Security (DTLS), 2006 https://tools.ietf.org/html/rfc4347 17 RFC 3711, The Secure Real-time Transport Protocol (SRTP), 2004, https://www.ietf.org/rfc/rfc3711.txt 18 RFC 4566, SDP: Session Description Protocol, 2006, https://tools.ietf.org/html/rfc4566 19 RFC 5246, The Transport Layer Security (TLS) Protocol Version 1.2, 2008, https://tools.ietf.org/html/rfc5246 20 RFC 5128, State of Peer-to-Peer (P2P) Communication across Network Address Translators (NATs), 2008, https://tools.ietf.org/html/rfc5128 74 21 22 23 24 25 26 27 28 29 30 RFC 5766, Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN), 2010, https://tools.ietf.org/html/rfc5766 EasyRTC website, https://easyrtc.com/docs/browser/easyrtc.php, Thời gian truy cập: 11-09-2016 https://www.pkcsecurity.com/blog Thời gian truy cập 11-10-2016 RFC 3264, An Offer/Answer Model with the Session Description Protocol (SDP), 2002, https://tools.ietf.org/html/rfc3264 Javascript Session Establishment Protocol draft-ietf-rtcweb-jsep version 16, 2009-2016, https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-16 https://en.wikipedia.org/wiki/WebRTC https://webrtchacks.com/signalling-options-for-webrtc-applications/, thời gian truy cập 10-2016 RFC 6749, The OAuth 2.0 Authorization Framework, 2012, https://tools.ietf.org/html/rfc6749 RFC 5762, Multiplexing RTP Data and Control Packets on a Single Port, 2010, https://tools.ietf.org/html/rfc5761 RFC 6120, Extensible Messaging and Presence Protocol (XMPP): Core, 2011, https://tools.ietf.org/html/rfc6120 ... 4 .ỨNG DỤNG WEBRTC CHO GIẢI PHÁP CỘNG TÁC VÀ CHIA SẺ DỮ LIỆU ĐA PHƯƠNG TIỆN TẠI TRUNG TÂM MVAS Với công nghệ tích hợp WebRTC, ứng dụng WebRTC việc xây dựng ứng dụng cộng tác, chia sẻ file thời gian... NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN VIẾT THẮNG NGHIÊN CỨU ỨNG DỤNG CÔNG NGHỆ WEBRTC CHO GIẢI PHÁP CỘNG TÁC VÀ CHIA SẺ DỮ LIỆU ĐA PHƯƠNG TIỆN TẠI TRUNG TÂM MVAS- TCT VIỄN THƠNG MOBIFONE Ngành Chun... cận sử dụng WebRTC 44 4.2 Ứng dụng WebRTC thử nghiệm cho việc cộng tác, chia sẻ liệu đa phương tiện Trung tâm MVAS - Mobifone 47 4.2.1 Hiện trạng cộng tác chia sẻ liệu Mobifone