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
2,21 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNGNGHỆ NGUYỄN VIẾT THẮNG NGHIÊN CỨU ỨNGDỤNGCÔNGNGHỆWEBRTCCHOGIẢIPHÁPCỘNGTÁCVÀCHIASẺDỮLIỆUĐAPHƯƠNGTIỆNTẠITRUNGTÂM MVAS-TCT VIỄNTHÔNGMOBIFONE LUẬN VĂN THẠC SĨ CÔNGNGHỆTHÔNG TIN Hà nội - 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNGNGHỆ NGUYỄN VIẾT THẮNG NGHIÊN CỨU ỨNGDỤNGCÔNGNGHỆWEBRTCCHOGIẢIPHÁPCỘNGTÁCVÀCHIASẺDỮLIỆUĐAPHƯƠNGTIỆNTẠITRUNGTÂM MVAS-TCT VIỄNTHÔNGMOBIFONE Ngành Chuyên ngành Mã số : : : Côngnghệthông tin Truyền liệu & Mạng máy tính LUẬN VĂN THẠC SĨ CÔNGNGHỆTHÔNG TIN GIÁO VIÊN HƯỚNG DẪN KHOA HỌC: TS.HOÀNG XUÂN TÙNG Hà nội - 2016 LỜI CẢM ƠN Luận văn Thạc sĩ thực Đại học Côngnghệ - Đạ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 suốt trình nghiên cứu hoà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ôngnghệThông tin mang lại cho kiến thức vô quý giá bổ ích 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ôngtác tạo điều kiện thời gian để hoàn thành chương trình học Bên cạnh xin gửi lời cám ơn tới đồng nghiệp Mobifone tạo điều kiện giúp đỡ hoà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 ý quý báu thầy cô 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 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 hoàn toà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 ngoà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ươngphá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 ỨNGDỤNGWEBRTCCHOGIẢIPHÁPCỘNGTÁCVÀCHIASẺDỮLIỆUĐAPHƯƠNGTIỆNTẠITRUNGTÂMMVAS 42 4.1 Thư việnWebRTC hướng tiếp cận 42 4.1.1 Các thư việnWebRTC 42 4.1.2 Các hướng tiếp cận sử dụngWebRTC 44 4.2 ỨngdụngWebRTC thử nghiệm cho việc cộng tác, chiasẻliệuđaphươngtiệnTrungtâmMVAS - Mobifone 47 4.2.1 Hiện trạng cộngtácchiasẻliệuMobifone 47 4.2.2 Yêu cầu hệ thốngcộngtácTrungtâmMVAS – TCTviễnthôngMobifone 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 ứngdụ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ÀILIỆ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] 21 Bảng 2.3: So sánh tính giao thức TCP, UDP SCTP 23 Bảng 4.1: Thư việnWebRTC Javascript 42 Bảng 4.2 Cơ chế hoạt động chung thư việnWebRTC Javascript 43 Bảng 4.3 Thống kê ứngviên trình thiết lập kết nối P2P với Firefox 68 Bảng 4.4: So sánh ứngdụng chat chiasẻ file 69 DANH MỤC CÁC HÌNH VẼ Hình 2.1: Kiến trúc ứngdụ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]) 15 Hình 2.4: RTCPeerConnection API [Nguồn 4] 19 Hình 2.5: MediaStream mang nhiều tracks đồng 20 Hình 2.6: Protocol stack WebRTC [Nguồn 4] 22 Hình 2.7: Mô hình hoạt động STUN 24 Hình 2.8: Luồng Media qua TURN server 26 Hình 2.9: Quy trình hoạt động ICE mức cao 26 Hình 2.10: Sơ đồ chuyển trạng thái ICE 28 Hình 3.1: HTTP Transport cho báo hiệu 31 Hình 3.2 Vận chuyển báo hiệu Data Channel 32 Hình 3.3: Giao thức báo hiệu SIP WebSocket 34 Hình 3.4: Báo hiệu Jingle over WebSockets choWebRTC 35 Hình 3.5 Các thực thể tham gia trình báo hiệu 36 Hình 3.6: Quá trình khởi tạo báo hiệu WebRTC 37 Hình 3.7 Quá trình ICE Negotiation báo hiệu WebRTC 38 Hình 3.8: Quá trình xử lý thông điệp ICE phía người dùng xa 39 Hình 3.9: Quá trình xử lý thông điệp SDP phía người dùng xa 40 Hình 3.10: Quá 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 40 Hình 3.11: Quá trình xử lý B đồng ý ứngdụng truy cập camera/microphone 41 Hình 4.1: Mô hình cộngtácMobifone 47 Hình 4.2: Kiến trúc hệ thốngcộngtácchiasẻliệu mChat 50 Hình 4.3: Biểu đồ phân rã chức người dùng hệ thống 51 Hình 4.5: Biểu đồ trình xác thực tài khoản Email Mobifone 59 Hình 4.6 Biểu đồ tuần module gửi/nhận text message 60 Hình 4.7 Biểu đồ tuần thiết lập gọi audio – voice chat 61 Hình 4.8: Biểu đồ tuần chiasẻ file 62 Hình 4.9: Biểu đồ chức quản lý nhóm 63 Hình 4.10: Giao diện login 63 Hình 4.11: Giao diện Private Chat 64 Hình 4.12: Giao diện group chat 65 Hình 4.13: Giao diện voice-chat 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, chiasẻthông tin, trao đổi liệu ngày lớn Về chiasẻthông tin liệu, giới có nhiều hình thức với công nghệ, giao thức, ứngdụng khác nhau, từ FTP, Email đến hình thức chiasẻ P2P (Peer-to-Peer) Bitorrent, ứngdụng dịch vụ cloud Dropbox, OneDrive, Google Drive Về giao tiếp thời gian thực có ứngdụ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 toà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, chiasẻ 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 ứngdụ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ừ chiasẻ 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ợ WebRTCWebRTC 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ễnthô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ôngnghệ WebRTC, APIs trình duyệt, giao thức WebRTC sử dụng để chiasẻ 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 ứngdụng web giao tiếp thời gian thực Cuối trạng Trungtâm dịch vụ ĐaPhươngtiện giá trị gia tăng Mobifone – Tổng Công ty viễnthông Mobifone, luận văn đưa ứngdụng demo chogiảiphápcộngtác giúp chiasẻliệuđaPhươngtiệnTrungtâm nền tảng WebRTC EasyRTC 10 1.3 Phươngphá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ụngWebRTC 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 – ỨngdụngWebRTCgiảiphápcộngtácchiasẻliệuđaPhươngtiệnTrungtâmMVAS – TCTViễnthôngMobifone Chương giới thiệu cách tiếp cận sử dụngWebRTC xây dựngứng dụng, giới thiệu framework EasyRTC sử dụng EasyRTC demo ứngdụngcộngtácTrungtâmMVAS – TCTviễnthôngMobifone 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 Quá 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 mChat client Ấn Connect Người dùng Ấ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, 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 chiasẻ 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ộngtá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ứngdụngcộngtác với nhiều tính thực với EasyRTC chat video, chiasẻ 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ự Ứngdụngcộngtá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 ứngdụng demo luận văn trình bày, đòi hỏi người dùng muốn cộngtác phải sử dụng trình duyệt truy cập vào ứngdụng web gần thời điểm Đây điểm hạn chế lớn cộngtác khung thời gian hoạt động người dùng khá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 ứngdụ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 ứngdụng bắt đầu phiên cộng Đây thách thức nói chung với tất ứngdụngcộngtác với WebRTC môi trường desktop (Môi trường mobile gửi tin nhắn thông báo từ ứngdụ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 WebRTCthông báo Giảipháp không yêu cầu người dùng vào ứngdụ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 ứngdụng Ngoà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, 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ứngdụ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ênMobifone 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 TrungtâmMVASMobifone (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 Trungtâm dịch vụ ĐaPhươngtiệ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 Chiasẻ 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ácchia 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 trình thử nghiệm, để có thông tin kết nối Peer Peer trình duyệt, sử dụngcô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ê ứngviê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 (host) 192.168.68.1:57926/udp (host) 192.168.100.9:57927/udp (host) 192.168.194.1:57925/udp (host) 192.168.100.11:49742/ udp(host) 192.168.100.11:49742/ udp(host) 192.168.100.11:49742/ udp(host) 113.190.150.184:4974 2/udp (serverreflexive) failed 9.07E+18 failed 9.07E+18 succeeded 9.07E+18 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 Bảng 4.3 thể thông tin session thiết lập với Firefox, hai ứngviên thiết lập P2P có địa transport 192.168.100.9:57927/udp 192.168.100.11:49742/udp Đánh giá ứngdụng Qua việc xây dựngứngdụng demo phần cộngtácchiasẻliệucho thấy việc sử dụng EasyRTC thật dễ dàng, giúp nhanh chóng triển khai ứngdụng tương 69 tác thời gian thực trình duyệt đặc biệt tảng Desktop Với ứngdụng web đơn giản này, cán công nhân viênTrungtâmMVAS dễ dàng trao đổi thông tin, tàiliệ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 Ứngdụng đáp ứng yêu cầu đặt Tuy nhiên, ứngdụng số hạn chế chưa thể giải thời điểm chưa hỗ trợ trình duyệt IE, Safari; ứngdụ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ệncho người dùng sử dụngứngdụng OTT Về tính năng, Bảng 4.4 so sánh số khía cạnh khả phát triển ứngdụng demo với ứngdụng OTT, web khác: Bảng 4.4: So sánh ứngdụng chat chiasẻ 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 Chiasẻ Upload tập tin Upload ảnh Upload Video Chiasẻ hình Cần cài đặt Bảo mật Mã hóa text gửi Skype Viber Facebook Khả ứngdụ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 Ghi Tính chưa kịp demo Hiện có phát triển áp dụngcho Chrome x x 70 Tính Skype Mã hóa text đảm bảo nhà cung cấp đọc Mã hóa file gửi x x Viber x Facebook N/A Khả ứngdụ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 , ứngdụng tương tácTrungtâmMVAS 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ứngdụng quản lý Hỗ trợ tạo nhóm cộngtác quản lý mật đảm bảo truy nhập an toàn cho nhóm Tuy nhiên, so với ứngdụng OTT phổ biến, ứngdụ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, ứngdụng cần bổ sung thêm tính 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 ứngdụngWebRTC việc xây dựnggiảiphápcộngtácchiasẻliệuđaphươngtiệnTrungtâmMVAS – 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ệnWebRTC Nghiên cứu sử dụng thư viện EasyRTC việc xây dựngứngdụ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ốngcộngtác mạng nội Trungtâm dịch vụ Đaphươngtiện giá trị gia tăng Mobifone Tổng công ty ViễnthôngMobifone đạ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 WebRTCcôngnghệ tiềm năng, đặc biệt hiệu triển khai nhanh ứngdụ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ảiphá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 ứngdụngWebRTC có tác động không nhỏ đến ngành công nghiệp web, chí thay ứngdụngcộngtác Với phân tích đánh giá kết thử nghiệm ứngdụngcộ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: Hoàn thiện tính tương tự OTT hỗ trợ lưu thông tin chat office, cảnh báo notification Hoà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 chiasẻ hình – screen sharing Đến thời điểm có trình duyệt Chrome hỗ trợ để ứngdụ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 Hoàn thành việc nghiên cứu ứngdụngcộngtácchiasẻliệuđaPhươngtiệnTrungtâmMVASứngdụngcho không TCTViễnthôngMobifone 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ÀILIỆ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: 1109-2016 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 ... 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... 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. .. 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