Công nghệ WebRTC tiềm năng và cơ hội mới cho “Họp trực tuyến nền web”.
Hãy tưởng tượng một ngày mà điện thoại, máy tính, tivi, có thể kết nối trực tiếp với nhau và thực hiện được các cuộc gọi thông qua một nền tảng chung. Việc giao tiếp của chúng ta sẽ dễ hàng hơn và điều này có thể thay thế các phương phức liên lạc hiện có. Đó là mục tiêu của dự án WebRTC mà Google đang theo đuổi, WebRTC được kỳ vọng sẽ tạo bước ngoặt lớn trong cách mà chúng ta giao tiếp.
Định nghĩa
WebRTC (Web Real Time Communication) là tập hợp các tiêu chuẩn và giao thức cho phép các trình duyệt Web thực hiện trực tiếp các tính năng truyền thông đa phương tiện thời gian thực như gọi điện, chat, truyền dữ liệu bằng các API Javacript.
Lịch sử WebRTC
Ý tưởng về WebRTC được đưa ra bởi nhóm phát triển Google Hangoutstừ năm 2009. Tại thời điểm đó, để thực hiện truyền thông đa phương tiện trên nền Web, người sử dụng phải cài đặt Flash và các plugin khác. Năm 2010, Google mua lại hai công ty là On2 và Global IP Solutions (GIPS). Sau đó họ chuyển các công nghệ liên quan đến RTC của hai công ty này thành mã nguồn mở và kết hợp với IETF và W3C để đưa ra WebRTC vào năm 2011.
Tính phổ biến và tiềm năng phát triển
Điểm đột phá của WebRTC là ta có thể tham gia cuộc hội thoại ngay trên trình duyệt mà không cần cài thêm bất cứ một phần mềm hay plugin nào khác. Nó đang được chuẩn hóa ở cấp độ API của W3C và cấp độ giao thức của IETF, được hỗ trợ bởi các trình duyệt Google Chrome, Mozilla Firefox và Opera trên PC và Android. Ngoài ra WebRTC còn được hỗ trợ trên Chrome OS.
Tính đến thời điểm hiện tại, đã có trên 1 tỷ thiết bị đầu cuối hỗ trợ WebRTC, dự báo tăng lên 4 tỷ vào năm 2016, trong đó có khoảng 1,5 tỷ người dùng thường xuyên. WebRTC có thể hoạt động trên bất cứ thiết bị nào có cài một trong các trình duyệt hỗ trợ WebRTC.
Lợi ích mà WebRTC mang lại
Ở góc độ người lập trình, nếu không có WebRTC, việc tạo ra ứng dụng RTC đòi hỏi phải mất nhiều công sức từ việc lấy dữ 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ả công việc để tạo ra một cuộc hội thoại chỉ nằm trong vài chục dòng code. Việc phát triển ứng dụng với chức năng gọi điện, video chat và chia sẻ file,.. là rất đơn giản khi dùng WebRTC kết hợp giữa JavaScript và HTML5.
Ở góc độ người sử dụng, sử dụng WebRTC chỉ cần thông qua trình duyệt Web. Tính sẵn sàng cao cho phép thực hiện cuộc gọi mà không cần đăng ký tài khoản hay cài đặt thêm thành phần nào ngoài một trình duyệt có hỗ trợ WebRTC. Ví dụ, hai người dùng chỉ cần truy cập vào cùng một đường dẫn web để gọi video với nhau sử dụng trình duyệt Google Chrome hay Mozilla Firefox.
Đặc điểm kỹ thuật và khả năng tích hợp
WebRTC cung cấp 3 API JavaScript :
- GetUserMedia: cho phép trình duyệt truy cập vào camera và microphone để thu dữ liệu
- RTCPeerConnection: tạo và truyền dữ liệu cho cuộc gọi audio/video
- RTCDataChannels: kênh truyền dữ liệu bất kỳ cho text, gaming,…
Để viết một ứng dụng WebRTC ta sử dụng 3 API này để lấy được dữ liệu từ camera, microphone, thiết lập phiên truyền thông và truyền tải dữ liệu audio, video cũng như dữ liệu bất kỳ. Ngoài ra, bước quan trọng là báo hiệu cho phiên truyền thông được thực hiện bên ngoài WebRTC bằng một phương thức do người lập trình lựa chọn.
Cũng giống như các hệ thống VoIP, WebRTC bị cản trở khi tạo kết nối peer-to-peer bởi tường lửa và NAT. WebRTC sử dụng kỹ thuật ICE để tạo kênh giao tiếp giữa các peer nhờ STUN và TURN server. Đầu tiên, ICE sẽ ưu tiên thử kết nối trực tiếp giữa 2 peer, STUN server được sử dụng để xác định địa chỉ public của peer nếu có mặt của NAT. Nếu STUN cũng không hoạt động được do peer nằm trong NAT đối xứng, tín hiệu sẽ được truyền qua server trung gian là TURN relay server.
WebRTC tạo ra kết nối peer-to-peer giữa các trình duyệt mà không có một cơ chế báo hiệu (signaling) nào được cài đặt sẵn. Người lập trình sẽ quyết định sử dụng cơ chế báo hiệu cho phù hợp với nhu cầu và với hệ thống sẵn có. Do đó việc khởi tạo, quản lý, định danh, xác thực sẽ được thực hiện theo các phương thức bất kỳ. Đây là thiết kế hợp lý của WebRTC, nó cho phép kết nối WebRTC với các hệ thống sẵn có như SIP. Ngoài ra, tất cả các luồng tín hiệu và dữ liệu truyền qua WebRTC đều được mã hóa sử dụng DTLS và SRTP.
Chính vì vậy ta có thể tích hợp WebRTC với sản phẩm Cloudmeeting của Haproinfo thông qua giao thức SIP từ đó giúp tăng tính linh hoạt của Cloudmeeting để mở rộng thêm nhiều kênh kết nối hơn nữa. Ví dụ các ứng dụng trên Mobile, Web và Desktop.
Các ứng dụng
Với các ưu điểm kể trên, ta có thể sử dụng WebRTC trong rất nhiều ứng dụng khác nhau để mang tới một cách kết nối đơn giản tiện lợi. WebRTC có thể tạo ra các webphone, ứng dụng hội nghị trực tuyến, chăm sóc khách hàng, hướng dẫn trực tuyến, giáo dục, chăm sóc sức khỏe, tư vấn bảo hiểm, game,…
Ngày nay, hầu hết các công ty đều có Website cung cấp các thông tin và thường là điểm đầu tiên giúp khách hàng liên hệ với doanh nghiệp. Nếu khách hàng không tìm thấy đủ thông tin trên Website hoặc cần phản ánh một vấn đề liên quan đến sản phẩm thì họ chỉ có cách gọi điện thoại. Tuy nhiên, cách này có thể làm mất các ngữ cảnh trên website hay không mô tả rõ ràng được vấn đề. WebRTC có thể ứng dụng để giúp thực hiện cuộc gọi ngay trên Website và cho phép chia sẻ màn hình của khách hàng, từ đó các nhân viên hỗ trợ có thể nhanh chóng nhận ra và giải quyết vấn đề của khách hàng.
Một ví dụ khác, WebRTC được dùng trong chăm sóc sức khỏe, trang www.wello.com cung cấp kênh thông tin cho việc giảng dạy cũng như tham gia vào các khóa học rèn luyện sức khỏe tại nhà thông qua hướng dẫn trực tiếp bằng video. Giảng viên hướng dẫn trực tiếp cho các học viên, có thể quan sát họ thực hiện các động tác và chỉnh sửa khi họ thực hiện sai. WebRTC giúp việc luyện tập trở nên thoải mái và tiện lợi hơn.
Kết luận
WebRTC vẫn đang trong giai đoạn hoàn thiện và cần được cải thiện nhiều hơn nữa để đáp ứng được rất nhiều kỳ vọng đặt vào nó. Hy vọng rằng những nỗ lực của Google với WebRTC có thể làm nên cuộc cách mạng mới trong truyền thông vào một ngày không xa.