Page 1
Đồ án Xây Dựng Ứng dụng phân tán
Giáo viên hƣớng dẫn : PGS.TS. Nguyễn Thị Hoàng Lan
Đề 11b (UDPT): Xây dựng ứng dụng hỗ trợ triển khai và điều khiển Hội nghị (họp)
qua mạng dựa trên công nghệ Web
- Tìm hiểu các các chức năng hội nghị, mô hình điều khiển Hội nghị video và vai
trò MCU trong mô hình Hội nghị (họp)
- Tìm hiểu và khảo sát ứng dụng triển khai Hội nghị (họp) qua mạng dựa trên công
nghệ Web.
- Xây dựng phần mêm ứng dụng phân tán hỗ trợ vai trò MCU điều khiển và tổ chức
triển khai họp trực tuyến qua mạng dựa trên công nghệ Web và thử nghiệm trên
giải pháp mạng của đề 11.
- Đánh giá so sánh với dịch vụ hiện có trong thực tế.
Sinh viên : Nguyễn Hồng Minh
SHSV: 20081743 Lớp: TTM-K53
Page 2
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 2
Contents
LỜI NÓI ĐẦU ................................................................................................................................ 4
CHƢƠNG 1. TÌM HIỂU VỀ HỘI NGHỊ TRUYỀN HÌNH ........................................................... 5
1. HỘI NGHỊ TRUYỀN HÌNH LÀ GÌ ?........................................................................................... 5
2. MỘT SỐ HÌNH THỨC HỘI NGHỊ TRUYỀN HÌNH : ..................................................................... 5
2.1. Hội nghị truyền hình sử dụng các máy chuyên biệt : ................................................ 5
2.2. Hội nghị truyền hình tích hợp vào máy tính cá nhân :.............................................. 5
2.3. Hội nghị truyền hình trên Web :................................................................................ 6
3. DẠNG HỘI NGHỊ VIDEO DỰA VÀO KHẢ NĂNG ĐÁP ỨNG TÀI NGUYÊN CỦA HỆ THỐNG: .......... 7
3.1. Hội nghị tức thời (Ad hoc) : ...................................................................................... 7
3.2. Hội nghị đặt trước (Sheduled Conference) : ............................................................. 7
4. CÁC MÔ HÌNH KẾT NỐI HỘI NGHỊ TRUYỀN HÌNH : ................................................................. 8
4.1. Hội nghị truyền hình điểm – điểm (Point – to - Point) : ........................................... 8
4.2. Hội nghị truyền hình điểm – đa điểm (Point – to - MultiPoint) : ............................. 8
4.3. Hội nghi truyền hình đa điểm – đa điểm (MultiPoint – to - MultiPoint) : ................ 8
5. CÁC CHỨC NĂNG CỦA HỘI NGHI TRUYỀN HÌNH : .................................................................. 8
6. CÁC MÔ HÌNH ĐIỀU KHIỂN HỘI NGHỊ : .................................................................................. 9
6.1. Mô hình điều khiển tập trung : .................................................................................. 9
6.2. Mô hình điều khiển hội nghị phân tán : .................................................................. 10
7. THÀNH PHẦN & VAI TRÒ CỦA MCU TRONG HỘI NGHỊ ĐA ĐIỂM : ....................................... 10
CHƢƠNG 2. TÌM HIỂU CÁC CÔNG CỤ CÓ HỖ TRỢ WEB CONFERENCE ....................... 12
1. TÌM HIỂU MICROSOFT OFFICE LIVE MEETING: ................................................................. 12
2. TÌM HIỂU CISCO WEBEX: .................................................................................................. 13
3. TÌM HIỂU OPENMEETINGS: ............................................................................................... 14
4. TÌM HIỂU BIGBLUEBUTTON: ............................................................................................. 15
5. ĐÁNH GIÁ CÁC CỘNG CỤ & LỰA CHỌN : ............................................................................ 16
CHƢƠNG 3. TRIỂN KHAI GIẢI PHÁP TỔ CHỨC HỘI NGHỊ TRỰC TUYẾN..................... 17
1. TÌM HIỂU HỆ THỐNG BIGBLURBUTTON: ............................................................................ 17
1.1. Kiến trúc BigBlueButton: ........................................................................................ 17
1.1.1. Kiến trúc tổng quan:............................................................................................ 17
1.1.2. Kiến trúc BBB-APPS:......................................................................................... 18
1.1.3. Kiến trúc Joining và quản lý voice conference: .................................................. 19
1.2. Các thành phần của BBB: ....................................................................................... 20
1.3. Phân tích hoạt động của hệ thống & xác định thành phần MCU :......................... 20
1.3.1. Tƣơng tác ngƣời dùng với hệ thống: .................................................................. 20
1.3.2. BBB-WEB: ......................................................................................................... 21
1.3.3. BBB-APPS:......................................................................................................... 22
2. TRIỂN KHAI HỆ THỐNG BBB: ............................................................................................ 22
Page 3
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 3
2.1. Update your server : ............................................................................................... 23
2.2. Install Ruby : ........................................................................................................... 24
2.3. Cài đặt BigBlueButton: ........................................................................................... 25
2.4. Cài đặt API Demos: ................................................................................................ 26
2.5. Cấu hình hệ thống : ................................................................................................. 28
2.5.1. File config.xml: ................................................................................................... 28
2.5.2. Nginx: ................................................................................................................. 29
2.5.3. Red5: ................................................................................................................... 29
2.5.4. Tomcat6: ............................................................................................................. 30
2.5.5. FreeSWITCH: ..................................................................................................... 30
3. TRIỂN KHAI HỘI NGHỊ TRỰC TUYẾN TRÊN HỆ THỐNG BBB: ............................................... 30
3.1. Xây dựng kịch bản hội nghị trực tuyến : ................................................................. 30
3.2. Thực hiện hội nghị “HopTongKet”: ....................................................................... 32
CHƢƠNG 4. KẾT LUẬN VÀ ĐÁNH GIÁ KẾT QUẢ .............................................................. 37
1. ĐÁNH GIÁ KẾT QUẢ TRIỂN KHAI HỘI NGHỊ TRÊN HỆ THỐNG BBB ...................................... 37
2. HƢỚNG PHÁT TRIỂN ĐỀ TÀI: .............................................................................................. 37
TÀI LIỆU THAM KHẢO ............................................................................................................ 38
Page 4
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 4
Lời nói đầu
Công nghệ ngày càng phát triển hiện đại và đáp ứng nhu cầu của con ngƣời ngày
càng khắt khe, đòi hỏi cao hơn. Từ những bƣớc tiến chậm chững của Internet đến nay, rất
nhiều các giao thức, chuẩn công nghệ chắp cánh cho ƣớc mơ của con ngƣời bay cao hơn,
xa hơn và tới gần nhau hơn. Ngày nay trong một thế giới mở, con ngƣời giao tiếp với
nhau thông qua thƣ điện tử, chat, blog, mạng xã hội nhờ có sự tiến bộ vƣợt bậc của
Internet.
Trƣớc đây để giao tiếp với bạn bè hoặc tham gia các cuộc hội thảo trên mạng,
chúng ta chỉ có thể thấy các dòng chữ hiện lên và không thể biết khung cảnh, môi trƣờng
mà đối tác tham dự. Điều đó khiến cho các cuộc nói chuyện, đối thoại thiếu thân thiện,
sinh động và khiến cho phát sinh chi phí đi lại, thời gian để có các cuộc gặp gỡ, hội thảo
offline, tốn kém mà không hiệu quả ảnh hƣởng đến chất lƣợng công việc.
Chúng ta có thể gửi đi không chỉ các dòng chữ khô khan mà còn là những hình
ảnh, đoạn video sống động, chân thực trên toàn thế giới. Đó chính là nhờ áp dụng công
nghệ video conference, hội thảo trực tuyến. Bên cạnh ứng dụng trong hội họp, hội thảo
video conference còn sử đƣợc sử dụng rất hiệu quả và tiết kiệm trong đào tạo từ xa, khám
chữa bệnh trực tuyến, hệ thống an ninh quốc phòng…
Báo cáo này nhằm mục đích gợi mở những khái niệm cơ bản về lý thuyết và thực
tiễn áp dụng của video conference trong thực tế và đời sống. Một công nghệ gần gũi và
rất cần thiết trong xã hội phát triển hiện đại nhƣ ngày nay.
Em xin gửi lời cảm ơn chân thành tới cô Nguyễn Thị Hoàng Lan đã tận tình
hƣớng dẫn và giúp đỡ em hoàn thành đồ án này
Page 5
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 5
Chương 1. Tìm hiểu về hội nghị truyền hình
1. Hội nghị truyền hình là gì ?
Video Conference (hay hội nghị truyền hình - VC) là một lĩnh vực tuy không mới
nhƣng những công nghệ đƣợc ứng dụng trong lĩnh vực này thì luôn đƣợc đổi mới theo sự
phát triển của thế giới. Các hệ thống Hội nghị truyền hình đã xuất hiện từ những năm 50
của thế kỉ trƣớc , tuy chất lƣợng là vấn đề cần phải bàn tới nhƣng nó cũng đánh dấu một
bƣớc phát triển mới của xã hội.
Hội nghị truyền hình là hệ thống thông tin đa phƣơng tiên thời gian thực (real time).
Hệ thống này cho phép nhiều ngƣời sử dùng ở những nơi khác nhau trao đổi thông tin,
hình ảnh , âm thanh, dữ liệu, tổ chức họp hành, hội thapr, hội nghị từ xa, đào tạo từ xa, tƣ
vấn từ xa…
Việc truyền thông hình ảnh đã thực hiện đƣợc về mặt cơ sở hạ tầng và thiết bị (nhƣng
chỉ là tƣơng tác một chiều – với các hệ thống truyền hình và các hệ thống lớn) còn với hệ
thống Hội nghị truyền hình thì tƣơng tác phải là hai chiều và thực hiện trong môi trƣờng
thời gian thực.
2. Một số hình thức hội nghị truyền hình :
Từ khi hệ thống hội nghị truyền hình đầu tiên đƣợc nghiên cứu và thử nghiệm thành
công đến nay, có 3 loại mô hình hội nghị đã và đang đƣợc sử dụng trên toàn thế giới . Đó
là hệ thống hội nghị truyền hình sử dụng các máy chuyên biệt (Dedicated System) , hệ
thống hội nghị truyền hình tích hợp vào máy tính cá nhân (Desktop Based
VideoConference), và mới đây vào năm 2003, tổ chức IETF đã thiết lập một chuẩn mới
phục vụ hội nghị truyền hình trên nền Web (Web Conference) đó là chuẩn XCON.
2.1. Hội nghị truyền hình sử dụng các máy chuyên biệt :
Hệ thống hội nghị truyền hình sử dụng các máy chuyên biệt , hay còn gọi là hệ
thống phụ thuộc phần cứng , là hệ thống đƣợc xây dựng đầu tiên, từ những năm 80 của
thế kỉ 20. Hệ thống đầu tiên đƣợc xây dựng thành công là hệ thống của công ty
PictureTel với băng thông 1MHz và tốc độ truyền 6Mbps. Hiện nay, đã có rất nhiều hệ
thống phụ thuộc phần cứng đã đƣợc xây dựng & thƣơng mại hóa trên toàn cầu. Có thể kể
tên 1 số hãng cung cấp thiết bị phần cứng phục vụ VC lớn nhƣ Polycom (USA), Cisco
(USA), Sony (Japan)…Các hệ thống này rất đa dạng & phức tạp , nhƣng có 1 điểm chung
là đều phụ thuộc rất nhiều vào phần cứng , là các thiết bị hỗ trợ âm thanh, hình ảnh đƣợc
thiết kế chuyên dụng , đƣợc tích hợp chặt chẽ vào hệ thống điều khiển chính , do đó rất
tiện lợi khi sử dụng nhƣng chi phí triển khai, lắp đặt là rất đắt đỏ.
2.2. Hội nghị truyền hình tích hợp vào máy tính cá nhân :
Page 6
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 6
Đầu những năm 90 , công nghệ IP phát triển mạnh, kèm theo đó là các giải thuật
nén, mã hóa video có hiệu năng cao đã cho phép các máy tính cá nhân có khả năng thực
hiện các cuộc gọi hội nghị truyền hình. Hệ thống này, thực chất là sử dụng những phần
cứng đơn giản, có sẵn hoặc dễ kiếm nhƣ loa máy tính, headphone, webcam kết hợp với
một phần mềm hội nghị truyền hình. Các phần mềm đƣợc sử dụng nhiều hiện nay có thể
liệt kê nhƣ: Skype, Yahoo chat voice, Asterisk Voice Conference , MS Exchange Video
Conferencing, Lotus,…Tuy nhiên , do phần cứng đơn giản và hầu hết không phải để phục
vụ mục đích chính là hội nghị truyền hình , nên khả năng điều khiển, chất lƣợng âm
thanh, hình ảnh lúc thu và phát đều kém hơn các hệ thống sử dụng máy chuyên dụng.
Chính vì vậy các hội nghị kiểu này thƣờng đƣợc sử dụng với quy mô nhỏ hơn và không
yêu cầu cao quá về chất lƣợng.
2.3. Hội nghị truyền hình trên Web :
Hội nghị truyền hình trên web đƣợc dùng để thực hiện các cuộc gặp trực tuyến,
đào tạo từ xa hoặc thuyết trình thông qua mạng Internet. Trong một hội nghị web, các
thành viên ngồi ở máy của mình và kết nối với các thành viên khác thông qua Internet .
Mỗi ngƣời có thể download một phần mềm hội nghị truyền hình nào đó, hoặc sử dụng
ứng dụng hội nghị truyền hình tích hợp sẵn vào website để kết nối.
Một hội nghị truyền hình trên web đƣợc sử dụng nhiều nhất với mục đích nhƣ là 1
khóa học trực tuyến – Web Training Seminar (gọi tắt Webinar). Thƣờng thì loại hội nghị
này chỉ diễn ra theo 1 chiều, từ ngƣời nói đến ngƣời nghe , từ giảng viên đến học viên, về
cơ bản , giống nhƣ là một webcast (web quảng bá). Khi đó giảng viên sẽ trình bày bài
giảng của mình thông qua một micro , bài giảng sẽ đƣợc trình chiếu trên trình duyệt Web,
học viên có nhu cầu hỏi có thể sử dụng ngay chính microphone của mình để đạt đƣợc sự
thuận tiên tối đa.
Hình 1. Ví dụ dịch vụ Web Conference của Cisco
Do hệ thống đƣợc xây dựng trên nền web và chạy trên máy tính cá nhân ,nên rất
dễ dàng xấy dựng , hoặc sử dụng những phần mềm có sẵn trong hội nghị , cũng dễ dàng
điều khiển đƣợc khả năng tƣơng tác của mỗi thành viên vào hệ thống. Ví dụ , giảng viên
có thể sử dụng ngay MS Power Point hay Keynote để trình bày bài giảng của mình đến
Page 7
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 7
các học viên. Học viên có thể sử dụng phần mềm WhiteBoard để đánh dấu, hoặc ghi chú
những lƣu ý trên slide của mình.
Trở lại với khả năng tƣơng tác, trong khi các hệ thống hội nghị truyền hình dựa trên
phần cứng hoặc dựa trên phần mềm rất cứng nhắc trong khẳ năng tƣơng tác giữa các
điểm. Thì hệ thống hội nghị truyền hình trên Web có ƣu thế hơn rất nhiều về mặt này.
Thực tế chỉ có giảng viên cần phải tƣơng tác nhiều nhất vào hệ thống, các học viên có
một số ngƣời muốn tham gia vào bài giảng, một số khác chỉ muốn xem và không có nhu
cầu tƣơng tác. Sử dụng VC trên Web sẽ khắc phục đƣợc hạn chế này và tiết kiệm đƣợc
rất nhiều băng thông.
3. Dạng hội nghị video dựa vào khả năng đáp ứng tài nguyên của hệ thống:
3.1. Hội nghị tức thời (Ad hoc) :
Hội nghị Ad hoc là mô hình cơ bản và ít tính năng nhất. Tuy nhiên, nó là mô hình
dễ thực hiện và thực hiện nhanh nhất cho bất kỳ một ngƣời dùng cuối nào.
Hội nghị Ad hoc không đặt trƣớc tài nguyên , nên khuyết điểm lớn nhất của nó là
có thể sẽ không đủ tài nguyên để tiến hành tổ chức cuộc họp.
Hội nghị Ad hoc hầu hết chỉ là cuộc họp “Dial-out”. Các thành viên ở ngoài không
thể gọi vào cuộc họp đƣợc (dial into the meeting), bởi vì hội nghị kiểu này không có số
điện thoại cụ thể nào để gọi vào.
Hơn nữa, khi các thành viên có thể tham gia vào cuộc họp , họ sẽ không nhận
đƣợc thông báo là đã tham gia thành công, cũng nhƣ các thành viên khác không đƣợc
thông báo có ngƣời mới tham gia vào cuộc họp. Nghĩa là các thành phần điều khiển hội
nghị không đƣợc hỗ trợ.
3.2. Hội nghị đặt trước (Sheduled Conference) :
Hội nghị đặt trƣớc (Sheduled Conference) cho phép ngƣời tổ chức cuộc họp quyết
định một số thông số cụ thể liên quan đến cấp phát tài nguyên ví dụ nhƣ số lƣợng thành
viên , độ dài của cuộc họp…thông qua giao diện ngƣời dùng đƣợc cung cấp bởi hệ thống.
Sau đó đặt thời gian cuộc họp và gửi thƣ mời đến các thành viên.
Hội nghị đặt trƣớc có thể đƣợc tích hợp vào trình duyệt web để tiện cho các thành
viên tìm kiếm và tham gia vào hội nghị . Ngoài ra, một số hội nghị còn cung cấp một giao
diện điện thoại (TUI – Telephone User Interface) cho phép thành viên tham gia hội nghị
thông qua chính điện thoại của họ.
Một tính năng quan trọng khác của dạng hội nghị này là nó đƣợc tích hợp với các hệ
thống lịch (Calendar), ví dụ nhƣ Microsoft Outlook. Sự tích hợp này cung cấp cho ngƣời
dùng tổ chức nhiều tiện ích trong việc tạo hội nghị, mời các thành viên và đặt trƣớc tài
nguyên cho hội nghị.
Page 8
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 8
4. Các mô hình kết nối hội nghị truyền hình :
Có 3 loại phổ biến nhất hiên nay.
4.1. Hội nghị truyền hình điểm – điểm (Point – to - Point) :
Là dạng hội nghị truyền hình tƣơng đối phổ biến.
Chỉ có 2 điểm trực tiếp tham gia.
Có thể tổ chức với mọi quy mô khác nhau.
Quá trình kết nối do một đầu chủ động quay số.
Các thông số kết nối đƣợc quy định trƣớc tại 2 đầu hoặc một đầu đặt chế độ Auto
Accept.
Hội nghị truyền hình dạng này thƣờng sử dụng dƣới dạng các phần mềm (Vd:
Skype, Yahoo Chat Voice, Asterisk…) chạy trên máy tính các nhân với ƣu điểm
nhỏ, gọn, dễ cấu hình , giá thành thấp. Tuy nhiên ở một số công ty lớn, khi kết nối
cuộc họp giữa hai phòng họp với nhau, cần có yêu cầu cao hơn về chất lƣợng cũng
nhƣ các tính năng đặc biệt, vẫn sử dụng hệ thống máy riêng biệt.
4.2. Hội nghị truyền hình điểm – đa điểm (Point – to - MultiPoint) :
Có nhiều điểm trực tiếp tham gia.
Có một điểm đóng vai trò trung tâm giữ quyền chủ tọa.
Các điểm khác tham gia vào mạng dƣới sự kiểm soát của điểm chủ tọa.
Loại hội nghị này thƣờng thấy nhất là Webinar, với một giảng viên nói và các học
viên ở tại nhà mình kết nối vào để học tập. Để nghiên cứu sâu về loại hội nghị này,
ta có thể lấy WebEx của Cisco là ví dụ.
4.3. Hội nghi truyền hình đa điểm – đa điểm (MultiPoint – to - MultiPoint) :
Là dạng hội nghị truyền hình có quy mô tổ chức phức tạp nhất.
Có ít nhất 3 điểm cùng tham gia.
Trung tâm xử lý cho hội nghị truyền hình đa điểm thƣờng bao gồm MCU,
Gateway, Gatekeeper, hoặc các server điều khiển…
Có thể kiên lạc bằng Voice hoặc Video , mục đích là tiết kiệm chi phí.
Sản phẩm thƣờng đƣợc sử dụng nhất tại các hội nghị này có thể kể đến các dòng
sản phẩm PCS-G50 hay PCS-G70 của Sony, hay dòng sản phẩm RPX HD 400 của
Polycom…
5. Các chức năng của hội nghi truyền hình :
Hội nghị truyền hình bao gồm các chức năng sau :
Thiết lập kết nối đa điểm (Multipoint Connection Set up) : cho phép nhiều bên có
thể cùng tham gia hội nghị, nghĩa là có kết nối đa điểm, thông qua hạ tầng mạng
hiện có. Các kết nối này đƣợc đảm bảo thiết lập thông suốt trong quá trình diễn ra
hội nghị truyền hình.
Page 9
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 9
Điều khiển phiên làm việc động (Dynamic Session Control): khởi tạo phiên làm
việc khi kết nối đa điểm đƣợc thiết lập, điều khiển phiên trong quá trình hoạt động.
Cấp phát tài nguyên , quản lý hội nghị và lên lịch họp, định tuyến cuộc gọi. Cung
cấp cơ chế kiểm soát, khắc phục khi có lỗi xảy ra trong phiên làm việc. Đảm bảo
chất lƣợng hoạt động của hội nghị , các vấn đề xử lý thời gian thực, tốc độ truyền,
băng thông, xử lý dữ liệu đa phƣơng tiên…
Điều độ hội nghị tự động (Automatic Conference Scheduling): Kiểm soát quá
trình tham gia , thoát khỏi hội nghị của ngƣời dùng, cũng nhƣ khả năng kiểm soát
tại trung tâm điều hành, nhƣ hạn chế quyền tham gia, quyền hoạt động của từng cá
nhân tham gia hội nghị…tƣớc quyền tham gia vào hội nghị khi có vấn đề…
Cung cấp dịch vụ thƣ mục hội nghị : cung cấp các tính năng cho ngƣời sử dụng
cuối, tƣơng tác trực tiếp với nhau. Tăng tính trực quan cho hội nghị truyền hình.
Kết thúc hội nghị (Conference Close) : kết thúc phiên làm việc, đóng kết nối, giải
phóng tài nguyên sử dụng.
6. Các mô hình điều khiển hội nghị :
Một hội nghị truyền hình có thể theo mô hình điều khiển tập trung hoặc phân tán.
6.1. Mô hình điều khiển tập trung :
Trong mô hình này, tất cả các thành phần của hôi nghị video đƣợc tích hợp trong
một máy chủ độc lập. Có thể thấy, một mô hình tập trung bao gồm rất nhiều module phần
mềm. Những module phần mềm này sẽ tƣơng tác lẫn nhau thông qua những phƣơng thức
truyền thông giữa các quá trình (Interprocess communication method) đƣợc cung cấp bởi
hệ điều hành chạy trên máy tính đó.
Hình 5. Mô hình hội nghị video điều khiển tập trung
Page 10
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 10
Lớp điều khiển hội nghị (Conference Control) hay còn gọi là điều khiển gọi (Call
Control) có chứa năng xử lý các tín hiệu đƣợc gửi đến từ ngƣời dùng thông quan VUI và
Scheduler , quyết định xem cuộc gọi tới có đƣợc phép tham gia vào hội nghị hay không .
Giao diện điều khiển dữ liệu (Media Control Interface) cung cấp API cho module điều
khiển hội nghị để truy cập vào những dịch vụ xử lý dữ liệu nhƣ các bộ Audio Mixer và
Video Processing.
6.2. Mô hình điều khiển hội nghị phân tán :
Trong mô hình này, mỗi chức năng lại đƣợc cung cấp bởi một thiết bị riêng biệt.
Một hội nghị video theo mô hình điều khiển phân tán phải bao gồm rất nhiều các thành
phần khác nhau, mỗi cái là một máy khác nhau và có thể đặt rời nhau. Để thực hiện đƣợc
đúng chức năng của một hội nghị, các thành phần này phải đƣợc liên kết với nhau để hoạt
động cùng với nhau nhƣ một thể thống nhất.
Tuy nhiên, trên thực tế, ta vẫn thƣờng gặp các hệ phân tán có cấu tạo nhƣ một thiết bị
duy nhất. Thực ra , đó là một hệ thống các thiết bị và các liên kết giữa chúng đƣợc đặt
trong cùng 1 vỏ mà thôi.
7. Thành phần & vai trò của MCU trong hội nghị đa điểm :
MCU là 1 thành phần không thể thiếu trong trong hội nghị tƣơng tác đa điểm. Thành
phần MCU có nhiệm vụ quản lý quá trình thiết lập cuộc gọi , tài nguyên cũng nhƣ cho
phép nhiều thành viên tham gia vào trong hội nghị. Với khả năng hoạch định, quản lý,
giám sát và phân quyền đối với tất cả các điểm hội nghị- thiết bị MCU sẽ làm cho khả
năng tƣơng tác cũng nhƣ khả năng quản lý trở nên mềm dẻo hơn rất nhiều.
Tùy thuộc vào hình thức hội nghị truyền hình mà thành phần MCU có khác nhau.
Tuy nhiên, hiện nay có 2 loại chính, một là thành phần MCU đƣợc tích hợp trên các thiết
bị phần cứng chuyên dụng, đƣợc sử dụng kèm trong hội nghị. Các thiết bị chuyên dụng
này đều có đặc điểm chung là tiên lợi, dễ sử dụng, nhƣng lại rất đắt tiền, không phù hợp
với quy mô hội nghị vừa & nhỏ. Loại thứ 2 là thành phần MCU đƣợc thiết kế dƣới dạng
các phần mềm hỗ trợ hội nghị truyền hình & độc lập với phần cứng. Loại này thƣờng có
ƣu điểm là giá thành rẻ, dễ dàng cài đặt, nhƣng lại yêu cầu có ngƣời giám sát và triển
khai, hiểu rõ về hệ thống. Hơn thế nữa, các chức năng của phần mềm có vai trò MCU
cũng bị hạn chế so với thiết bị phần cứng MCU.
Dù ở dƣới dạng nào, thì MCU luôn bao gồm 2 thành phần chính :
Bộ điều khiển đa điểm (MC – Multipoint Control) : MC là bộ phận không thể
thiếu trong MCU , có thể điều khiển hội nghị điểm – điểm , hoặc hội nghị đa điểm.
MC thiết lập các giao thức chung cho tất cả các đầu cuối muốn tham gia vào hội
nghị và quyết định hội nghị theo kiểu truyền đa hƣớng (Multicast) hay đơn hƣớng
(Unicast)…MC không trực tiếp xử lý các chuỗi âm thanh , hình ảnh hoặc dữ liệu
trong hội nghị đa điểm.
Page 11
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 11
Bộ xử lý đa điểm (MP - Multipoint Processor) : MP là phần tử tùy chọn trong
MCU. Nó thực hiện xử lý trộn, đồng bộ, chuyển các tín hiệu âm thanh, hình ảnh
hoặc dữ liệu cho MCU điều khiển. Tùy thuộc vào loại hội nghị mà MP có thể xử
lý một hay nhiều chuỗi tín hiệu.
Page 12
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 12
Chương 2. Tìm hiểu các công cụ có hỗ trợ Web Conference
1. Tìm hiểu Microsoft Office Live Meeting:
Microsoft Office Live Meeeting là một dịch vụ hội thảo đƣợc đăng tải trên Web là
kết nối và giúp khán giả tham gia vào các buổi họp, đào tạo và các sự kiện trực tuyến qua
một dịch vụ tin cậy, hạng daonh nghiệp đƣợc lƣu trữ. Với những ngƣời họp tham gia từ
chiếc máy tính của họ , bạn có thể chuyển bài thuyết trình, khởi động một dự án , thảo
luận các ý tƣởng, soạn thảo các tệp tài liệu, cộng tác trên các bẳng trắng và thƣơng thảo
các vụ làm ăn với một phần nhỏ chi phí mà không gặp vấn đề rắc rối về đi lại.
Dịch vụ có thể đƣợc truy cập qua một trình duyệt để có một kinh nghiệm họp nhẹ
nhàng hơn, hoặc với một ứng dụng máy khách Live Meeting (họp trực tuyến) đƣợc lƣu
trên máy tính của ngƣời dùng cuối để đạt đƣợc tính chính xác đầy đủ hơn. Một khác, các
đơn hàng của khách hàng đã đƣợc xử lý , Microsoft sẽ trực tiếp cung cấp, và quản lý dịch
vụ hội thảo của khách hàng. Điều này đảm bảo hiệu quả, thời gian hoạt động, sự hỗ trợ
đạt cấp thế giới và một kinh nghiệm khách hàng tổng quan hơn, trong khi giải phóng cho
khách hàng khỏi trách nhiệm và chi phí quản lý và duy trì các dịch vụ hội thảo.
Page 13
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 13
2. Tìm hiểu Cisco WebEx:
Cisco WebEx có thể hoạt động trên những đƣờng truyền băng thông hạn chế với hình
ảnh video độ nét cao, tiết kiệm chi phí, bảo mật thông tin chặt chẽ. Đây là dịch vụ khá lý
tƣởng trong việc chia sẻ, trình diễn tài liệu hoặc xem trực tiếp màn hình của các thành
viên tham gia hoặc ghi lại toàn bộ hình ảnh và nội dung cuộc họp, các dữ liệu trong cuộc
họp đƣợc kiểm soát một cách nghiêm ngặt và an toàn.
Cisco WebEx cũng cung cấp hình ảnh trực tuyến, chủ cuộc họp có thể theo dõi màn
hình ngƣời tham dự cuộc họp, liệt kê các công việc cần thực hiện và phân việc ngay trên
cuộc họp trực tuyến, ghi chép và lƣu lại mọi tài liệu chia sẻ qua lại trong buổi họp để theo
dõi và hoàn thành. Bên cạnh đó Cisco WebEx Meeting tích hợp tính năng nhắc nhở cuộc
họp thông qua Microsoft Outlook Calendar.
Cisco WebEx đáp ứng nhiều nhu cầu truyền thông đa phƣơng tiện nền web khi cho ra
đời nhiều dịch vụ khác nhƣ đào tạo trực tuyến, hỗ trợ khách hàng, quản lý bán hàng hiệu
quả. Ngoài ra, Cisco WebEx còn nhiều ứng dụng phong phú với những trải nghiệm tuyệt
vời cho khách hàng: Cisco WebEx Telepresence,Cisco WebEx Connect IM, Cisco
WebEx Social.
Page 14
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 14
3. Tìm hiểu OpenMeetings:
OpenMeeting là một open source cung cấp dịch vụ web conference, với tập hợp các
tính năng hữu ích cho ngƣời sử dụng. Các tính năng có thể kể đến nhƣ : Ứng dụng hội
nghị truyền web mã nguồn mở. Xem các máy tính để bàn của ngƣời tham gia bất kỳ.
Video và âm thanh tích hợp. Một trong những tốt nhất các công cụ mã nguồn mở hội
nghị web. Gửi lời mời và liên kết trực tiếp đến phòng hội nghị. Hỗ trợ đa ngôn ngữ . Tích
hợp với các dịch vụ LDAP. Mã nguồn tự do có sẵn. Tin text chat. Tải nội dung trƣớc khi
các cuộc họp. Hỗ trợ lên đến 4 ngƣời dùng tƣơng tác, chƣơng trình phát sóng cho ngƣời
sử dụng không giới hạn. Hoàn toàn miễn phí. Hỗ trợ Windows, Mac và Linux
Page 15
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 15
4. Tìm hiểu BigBlueButton:
Đây là một open source có cung cấp dịch vụ web conference, với mục đích ban đầu là
hỗ trợ E-Learning, nhƣng càng ngày càng đƣợc ứng dụng với nhiều mục đích khác nhau.
Có thể kể đến một số tính năng hệ thống cung cấp cho ngƣời dùng cuối nhƣ : cho phép
họp online qua giao diện web, có thể trình bày slide với các định dạng đƣợc upload lên hệ
thống. Cho phép ngƣời dùng có thể trao đổi qua chat, voice , share webcam, desktop.
Page 16
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 16
5. Đánh giá các cộng cụ & lựa chọn :
Các cộng cụ của các nhà cung cấp dịch vụ lớn trên thế giới có đặc điểm chung là đều
cung cấp các dịch vụ một cách hoàn chỉnh, dể dàng hỗ trợ cho ngƣời sử dụng, nhiều tính
năng, dễ triển khai, sử dụng, bảo trì. Tuy nhiên, chúng cũng gặp phải một số nhƣợc điểm
nhƣ : giá thành đắt đỏ, chi phí triển khai, bảo trì tốn kém, hơn thế nữa, đây là hệ thống
đóng, việc can thiệp vào hệ thống để thay đổi các chức năng là không thể. Các vấn đề về
bản quyền.
Trong khi các công cụ mã nguồn mở thì có ƣu điểm là chi phí triển khai, bảo trì là rẻ,
có thể can thiệp sâu vào hệ thống, tuy nhiên nó lại là một sản phẩm chƣa hoàn chỉnh,
chƣa cung cấp đầy đủ các tính năng, cũng nhƣ khó khăn cho ngƣời sử dụng ở một mức
độ nào đó.
Phân tích tùy thuộc vào hiện trạng hiện có, về chi phí , cũng nhƣ các yêu cầu ngƣời sử
dụng của tổ chức, hay cá nhân , mà ta sẽ lựa chọn giải pháp thích hợp. Ở đây, với yêu cầu
triển khai trên phạm vi hẹp, tính phực tạp của bài toán không cao, cũng nhƣ số lƣợng
ngƣời sử dụng thấp, không yêu cầu quá cao về mặt chức năng hoạt động , ta sẽ lựa chọn
giải pháp mã nguồn mở. Mà cụ thể là lựa chọn giải pháp sử dụng công cụ BigBlueButton.
Page 17
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 17
Chương 3. Triển khai giải pháp tổ chức hội nghị trực tuyến
1. Tìm hiểu hệ thống BigBlurButton:
1.1. Kiến trúc BigBlueButton:
1.1.1. Kiến trúc tổng quan:
Sơ đồ dƣới đây cho thấy các thành phần chính của kiến trúc BBB cũng nhƣ sự tƣơng tác
qua lại giữa chúng:
Giải thích :
1) Nginx đóng vai trò máy chủ proxy cho bbb-web và bbb-apps để cung cấp
RTMPT Server ra bbb-client.
2) Ứng dụng Grails xử lý việc tạo ra hội nghị, lập lịch cho hội nghị và xử lý
Login/logout khi có sự kiên tham gia hội nghị.
3) Chịu trách nhiệm chuyển đổi slide trình bày từ dạng PDF sang dạng Flash.
4) Chịu trách nhiệm chuyển đổi slide trình bày từ dạng PDF sang dạng Flash trong
trƣờng hợp SWFTools không thể chuyển đổi, và thêm nhiệm vụ thu nhỏ bài trình
bày.
5) Message trao đổi qua lại giữa 2 module chính bbb-web và bbb-apps.
Page 18
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 18
6) Ứng dụng Red5 chịu trách nhiệm đồng bộ tất cả bên tham gia vào hội nghị.
7) Lắng nghe các sự kiện của ngƣời sử dụng (joined/left mute/ unmute/talk) và ra
các lệnh(mute/unmute/kick user) đến FreeSWITCH.
8) Voice conference server (máy chủ xử lý dữ liệu voice)
9) Một ứng dụng voice kết nối đến asterisk.
10) Ứng dụng cho việc chia sẻ desktop
11) Ứng dụng cho voice conference.
1.1.2. Kiến trúc BBB-APPS:
Hệ thống sử dụng Red5 nhƣ 1 máy chủ lõi để xử lý tất cả các tƣơng tác thời gian thực với
client. Hình bên dƣới cho thấy kiến trúc BBB-APPS
Giải thích :
1) Điểm truy cập chính vào BBB apps
2) Các ứng dụng khác nhau trong BBB
3) Xử lý joined/leaving cho client, cài đặt ứng dụng , recoders và notifiers.
Page 19
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 19
4) Xử lý các phƣơng thức gọi từ xa từ client.
5) Đồng bộ tất cả các client bằng cách sử dụng SharedObject.
6) Các ứng dụng voice sử dụng AMI để lắng nghe các sự kiện và ra lệnh đến
FreeSWITCH.
7) Ƣng dụng presentation lắng nghe các thông điệp cập nhật chuyển đổi của
presentation từ phía bbb-web
8) Ứng dụng video conferencing.
9) Ứng dụng Voice conferencing
10) ứng dụng Desktop sharing conferencing.
1.1.3. Kiến trúc Joining và quản lý voice conference:
Giải thích :
1) Ngƣời sử dụng gọi cuộc gọi sử dụng điện thoại thông thƣờng hoặc softphone.
1a) Ngƣời sử dụng gọi cuộc gọi sử dụng điện thoại voice nhúng trên client.
2) Đặt ngƣời gọi vào hội nghị thoại. Gửi sự kiện tham gia ra ngoài. Gửi cả sự kiện
ngƣời dùng thay đổi trạng thái (mute/talk/left)
Page 20
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 20
3) Hiện thị trên client ngƣời dùng đã tham gia vào voice conference.
4) Ví dụ , ngƣời điều hành mutes 1 ngƣời tham gia hội nghị.
5) Nói cho FreeSWITCH mutes ngƣời dùng. FreeSWITCH gửi sự kiện ngƣời dùng
đã bị mute.
1.2. Các thành phần của BBB:
BigBlueButton bao gồm các thành phần sau :
Flex SDK: Là 1 open source framework cho việc xây dựng và bảo trì các ứng
dụng web, cái mà triển khai nhất quán trên tất cả các trình duyệt chính, desktop và
OS
Ghostscript : Là 1 trình thông dịch cho ngôn ngữ Post Script và PDF.
Grails: Grails là 1 framework application web mã nguồn mở thúc đẩy ngôn ngữ
Groovy và bổ sung phát triển Java Web.
ActiveMQ : Là mã nguồn mở của nhà cung cấp dịch vụ nhắn tin và hội nhập.
Image Magick: Image magick là một bộ sƣu tập các công cụ đƣợc thiết kế để xem,
chỉnh sửa và thao tác hình ảnh cho gần 70 định dạng hình ảnh khác nhau. Nó cho
phép bạn tạo ra hình ảnh động, nó thích hợp cho các ứng dụng web.
MySQL: hệ quản trị CSDL mã nguồn mở.
Nginx: Là một máy chủ HTTP và máy chủ mail prox.
Red5: Red5 là một mã nguồn mở Flash Server viết bằng Java.
SwfTools: Là một bộ sƣu tập các tool làm việc với tập tin Adobe Flash (SWF file)
Tomcat: Apache Tomcat là 1 thể hiện của công nghệ Java Servlet và JavaServer
Pages.
Open Office: Là một phần mềm văn phòng mã nguồn mở xử lý văn bản, bảng tính,
thuyết trình, cơ sở dữ liệu …
FreeSWITCH: Một platform telephony mã nguồn mở đƣợc thiết kế để tạo điều
kiện thuận lợi cho việc tạo sản phẩm tiếng nói và chò truyện theo định hƣớng.
Redis: Nó thƣờng đƣợc coi nhƣ một máy chủ cấu trúc dữ liệu từ keys. Có thể chứa
các chuỗi , hashs, lists, bộ & bộ sắp xếp.
1.3. Phân tích hoạt động của hệ thống & xác định thành phần MCU :
1.3.1. Tương tác người dùng với hệ thống:
BigBlueButton là 1 hệ thống phức tạp, bao gồm nhiều thành phần khác nhau, đƣợc
làm việc cùng nhau nhƣ một mạng lớn. Chúng ta sẽ bắt đầu tìm hiểu từ những tƣơng tác
với hệ thống.
Page 21
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 21
Ngƣời dùng tƣơng tác với hệ thống thông qua trình duyệt với Flash Player (cần cài
đặt trƣớc khi cài đặt BBB). Flash đƣợc chọn bởi nó là một trong những ngôn ngữ cho dễ
dàng cho phép gửi và nhận streams audio và video.
Khi ngƣời dùng giao tiếp với hệ thống, hệ thống sẽ gửi yêu cầu đến máy chủ web,
bằng cách sử dụng giao thức RTMP hoặc HTTP. HTTP là giao thức rất phổ biến, và đƣợc
hỗ trợ trên tất cả các trình duyệt, sử dụng để tƣơng tác giữa browser và server. Còn giao
thức RTMP viết tắt của “ Real Time Messageing Protocol ”. Trong BBB, RTMP đƣợc sử
dụng để chuyển các đoạn video, audio và data bằng cách sử dụng Flash Player từ ngƣời
dùng đến các máy chủ web. Nó rất quan trọng vì sự tƣơng tác giữ user-server đƣợc thực
hiện thông qua Flash, và chủ yếu là bao gồm các dữ liệu nhị phân (nhƣ upload slide trình
bày), requests video, audio. HTTP đóng gói dữ liệu trong RTMP và tunnel của nó đến
máy chủ web qua cổng 80. Ở đầu bên kia của tƣơng tác này là môt máy chủ web
“Nginx”.
Nginx có vai trò rất quan trọng, nó sẽ gửi thông tin nhận đƣợc từ ngƣời sử dụng
đến 1 trong 2 proxy là : bbb-web hoặc bbb-aps. Nói cách khác , nhiệm vụ chính của
Nginx là để hƣớng các request RTMP tới bbb-aps và HTTP đến bbb-web.
Nhìn vào biểu đồ kiến trúc tổng quan của BBB đƣợc hiện thị ở trên, bạn có thể
thấy rằng ngƣời sử dụng có thể tƣơng tác với hệ thống không chỉ thông qua trình duyệt
/flash player, mà có thể thông qua softphone bằng cách sử dụng VoIP hoặc đƣờng dây
điện thoại thƣờng thông qua PSTN. Sau khi tín hiệu thoại đƣợc gửi đi, nó đƣợc nhận bởi
FreeSWITCH, là một free opent-source communication server, cho phép xử lý dữ liệu
voice và hoạt động trên các dữ liệu đó. Nhƣ trong BBB, Voice đƣợc truyền đến
freeswitch-esl (bbb-web), nó sẽ lắng nghe các sự kiện ngƣời dùng và chuyển tiếp đến
bbb-web và bbb-apps, sau đó gửi nó vào trình duyệt để ngƣời dùng khác có thể nghe
thấy.
1.3.2. BBB-WEB:
BBB-WEB đƣợc sử dụng cho các hoạt động không liên quan đến audio hoặc video
trong BBB. Ví dụ nhƣ , nó đƣợc sử dụng cho việc lập lịch hội nghị , login/logout, lấy/lƣu
dữ liệu vào database, chỉ làm việc với dữ liệu đƣợc tải lên. Nó là ứng dụng Grails.Grails
là một web-app framework cơ sở của Java. “bbb-web” đứng ở đầu tiên của container
servlet Tomcat. bbb-web chỉ sử dụng cơ sở dữ liệu MySQL để lƣu giữ thông tin về tất cả
dữ liệu đƣợc sử dụng trong BBB. (ví dụ nhƣ thời gian diễn ra hội nghị, thông tin ngƣời sử
dụng…)
BBB-web sử dụng 2 bộ chuyển đổi là “SWFtools”. Swf tool đƣợc sử dụng để
chuyển đổi file thuyết trình định dạng PDF hoặc PNG sang định dạng SWF, nếu không
thì ngƣời tham gia không thể xem đƣợc bài trình bày. Các bản thuyết trình đƣợc show
trên trang web đƣợc thực hiện bởi bbb-web chính là các file Flash SWF, sau khi chuyển
đổi định dạng từ file PDF or PNG.
Page 22
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 22
Các công cụ đƣợc sử dụng để tạo ra các hình thu nhỏ của bài trình bày là
Imagemagic và GhostScript. Ngoài ra , Imagemagic còn có chức năng thứ 2 là làm việc
nhƣ SwiftTools trong trƣờng hợp hệ thống không chuyển đổi đƣợc bản trình bày upload
lên.
Công cụ Redis là một máy chủ cấu trúc dữ liệu từ keys, sẽ gửi thông tin về tình
trạng chuyển đổi bbb-web và bbb-aps. Nó là cần thiết để theo dõi các lỗi và làm cho các
thông tin liên lạc giữa 2 thành phần thiết yếu trên của BBB.
1.3.3. BBB-APPS:
Bbb-apps chứa các ứng dụng , nhiệm vụ chính của nó là để load các ứng dụng theo
yêu cầu của khách hàng, để thông báo cho khách hàng về những thay đổi đang xảy ra bên
trong các yêu cầu của ứng dụng, và cũng có thể để xử lý các kết nối giữa khách hàng và
các ứng dụng.
Có 4 ứng dụng làm việc trong BBB. Đó là Chat, Voice, Participants , Presentation.
Các ứng dụng này sẽ tùy thuộc vào tùy chọn mà có hiện thị bên phía client hay không.
Dựa vào biểu đồ kiến trúc ta thấy các ứng dụng Voice đƣợc kết nối đến máy chủ
FreeSWITCH, máy chủ này nhận dữ liệu thoại từ phía client gửi đến.
Ứng dụng Presentation nhận thông tin từ Redis về sự thành công hay thất bại của
việc chuyển đổi các slide dạng PDF, PNG sang SWF.
Ngoài ra nó còn 1 kho lƣu trữ, nó ghi lại bất kỳ sự kiện nào bên trong ứng dụng.
Có thể kết luận bbb-apps là tập các module cho các ứng dụng của BBB, có chức
năng điều khiển kết nối, hiển thị kết quả cho trình duyệt, thông báo về lỗi, nhận và gửi
các yêu cầu, lƣu trữ lại các sự kiện trong các ứng dụng. BBB-APPS chính là đóng vai trò
MC trong hệ thống BBB.
Thành phần FreeSWITCH đóng vai trò MP trong hệ thống BBB.
2. Triển khai hệ thống BBB:
Cài đặt BigBlueButton v0.8 trên Ubuntu server 10.04 LTS
Cần chắc chắn là cấu hình máy chạy server của bạn đáp ứng đƣợc yêu cầu cấu hình thiết
bị khi chạy hệ thống.
Đầu tiên , trƣớc khi tiến hành cài đặt hệ thống, ta có 1 bƣớc kiểm tra các thông số server
của bạn để chắc chắn rằng các gói cài đặt của bạn là mới nhất, và đƣợc hỗ trỡ , cũng nhƣ
tƣơng thích nhất với hệ thống.
Trƣớc hết kiểm tra phiên bản OS chạy server :
Page 23
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 23
Tiếp theo, kiểm tra phông chữ & chắc chắn không có soft nào chiếm dụng cổng 80:
Cuối cùng là chắc chắn các gói phần mềm chạy trên server của bạn đã đƣợc update &
upgrade:
2.1. Update your server :
You first need to give your server access to the BigBlueButton package repository for 0.8
# Add the BigBlueButton key
wget http://ubuntu.bigbluebutton.org/bigbluebutton.asc -O- | sudo apt-key add -
# Add the BigBlueButton repository URL and ensure the multiverse is enabled
echo "deb http://ubuntu.bigbluebutton.org/lucid_dev_08/ bigbluebutton-lucid main" |
sudo tee /etc/apt/sources.list.d/bigbluebutton.list
echo "deb http://us.archive.ubuntu.com/ubuntu/ lucid multiverse" | sudo tee -a
/etc/apt/sources.list
Sau đó , để chắc chắn lại , ta chạy lại lệnh
sudo apt-get update
sudo apt-get dist-upgrade
Page 24
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 24
Sau đó , bạn nên resart lại server trƣớc khi cài đặt các bƣớc tiếp theo.
2.2. Install Ruby :
Trƣớc hết bạn cần cài đặt các thành phần cần thiết để biên dịch ruby :
sudo apt-get install zlib1g-dev libssl-dev libreadline5-dev libyaml-dev build-essential
bison checkinstall libffi5 gcc checkinstall libreadline5 libyaml-0-2
tiếp theo, tạo 1 file “install-ruby.sh” và copy đoạn script sau vào file đó:
#!/bin/bash
cd /tmp
wget http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-preview1.tar.gz
tar xvzf ruby-2.0.0-preview1.tar.gz
cd ruby-2.0.0-preview1
./configure --prefix=/usr\
--program-suffix=2.0.0\
--with-ruby-version=2.0.0\
--disable-install-doc
make
sudo checkinstall -D -y\
--fstrans=no\
--nodoc\
--pkgname='ruby2.0.0'\
--pkgversion='2.0.0'\
--provides='ruby'\
--requires='libc6,libffi5,libgdbm3,libncurses5,libreadline5,openssl,libyaml-0-
2,zlib1g'\
[email protected]
sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.2 500 \
--slave /usr/bin/ri ri /usr/bin/ri1.9.2 \
--slave /usr/bin/irb irb /usr/bin/irb1.9.2 \
--slave /usr/bin/erb erb /usr/bin/erb1.9.2 \
--slave /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.2
sudo update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.9.2 500
Tiếp theo, gõ lệnh run script :
chmod +x install-ruby.sh
./install-ruby.sh
Sau khi quá trình cài đặt kết thúc, gõ lệnh sau để xem phiên bản ruby đã cài đặt:
Page 25
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 25
Tƣơng tự với gem:
Cuối cùng, để chắc chắn bạn đã cài đặt gem, thực hiện câu lênh sau :
Quá trình chuẩn bị trƣớc khi cài đặt hệ thống BBB đến đây là hoàn thành, bạn cần chắc
chắn rằng không có lỗi nào sảy ra trƣớc khi cài đặt hệ thống BBB, nếu không, hệ thống sẽ
báo lỗi trong quá trình cài đặt.
2.3. Cài đặt BigBlueButton:
Trên hệ điều hành Ubuntu ta chỉ cần gõ lệnh sau là hệ thống sẽ tiến hành cài đặt tự động
các module của hệ thống BBB:
Chọn “y” và quá trình cài đặt sẽ diễn ra tự động.
Page 26
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 26
2.4. Cài đặt API Demos:
Để tiến hành test BBB server của bạn vừa cài đặt, bạn cần cài đặt API demos. Sử dụng
lênh sau :
Quá trình cài đặt thành công, bạn có thể join vào một phòng họp từ trang welcome trên
giao diện web của mình.
Sau khi cài đặt xong, bạn có thể khởi động server của mình. Để chắc chắn khởi động
cleany, gõ lệnh sau:
Quá trình cài đặt hoàn tất, ta sẽ có kết quả nhƣ bên dƣới.
Page 27
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 27
Sau khi join vào 1 hội nghị:
Page 28
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 28
2.5. Cấu hình hệ thống :
Có 1 số file cấu hình quan trọng trong hệ thống, cung cấp các chức năng cho phép
quản lý cuộc họp. Ta có thể cấu hình lại các thông số theo mong muốn, cũng nhƣ yêu cầu
của từng cuộc họp cụ thể.
2.5.1. File config.xml (file cấu hình thực thi client):
Theo mặc định thì nó nằm trong thƣ mục : “/var/bigbluebutton/client/conf/config.xml”
Một số trƣờng quan trọng :
Chat module :
privateEnabled : thiết lập là true cho phép chò truyện private.
Viewers Module :
allowKickUser : xác định xem ngƣời điều hành (Moderators) có thể kick một user đang
tham gia hội nghị hay không. Nếu thiết lập là true thì ngƣời điều hành sẽ thêm tùy chọn
kick ngƣời sử dụng đƣợc lựa chọn từ hội nghị bằng cách nhấn vào tên của họ và nhấn nút
kick bên trong cửa sổ ngƣời xem
Page 29
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 29
windowVisible : cửa sổ ngƣời xem có đƣợc hiện thị hay không.
Desktop Module :
autoStart : thiết lập = true để tự động start các module chia sẻ desktop.
Phone Module :
AutoJoin : thiết lập = true để ngƣời dùng tự động join vào voice conference.
enabledEchoCancel: thiết lập = true cho phép hủy bỏ âm vang.
Videoconf Module:
presenterShareOnly: nếu thiết lập = true, chỉ có ngƣời trình bày hiện tại sẽ có tùy chọn
chia sẻ webcam của họ. Nó rất hữu ích cho cuộc họp 1-n, nơi có 1 ngƣời trình bày mà tất
cả mọi ngƣời cần tập trung vào, chẳng hạn nhƣ 1 webcast.
publishWindowVisible: hiện thị các cửa sổ public Webcam. Nếu bạn thiết lập = false thì
autoStart phải thiết lập = true, Nếu không bạn sẽ không thể start camera.
camKeyFrameInterval, camModeFps, camQualityBandwidth, camQualityPicture : cấu
hình chất lƣợng và tốc độ khung hình của webcam
Present Module:
showWindowControls: thiết lập để hiện thị các điều khiển cửa sổ trình bày.
2.5.2. Nginx:
Nằm trong thƣ mục : /etc/nginx/sites-enabled/bigbluebutton
Log file :
/var/log/nginx/bigbluebutton.access.log : web log của các truy cập vào trang BBB
HTML
/var/log/nginx/error.log : web log của các đăng nhập lỗi đƣợc tạo ra bởi nginx dựa
trên các cấu hình trình duyệt.
2.5.3. Red5:
/ Usr/share/red5/webapps/bigbluebutton/WEB-INF/bigbluebutton.properties :
properties cho bbb-apps , module lõi cho BBB red5
/ Usr/share/red5/webapps/sip/WEB-INF/bigbluebutton-sip.properties : properties
cho bbb-apps-sip, xác định phạm vi của các cổng để kết nối với Asterisk hoặc máy
chủ FreeSWITCH. Đƣơc sử dụng với bbb-sip.conf.
Page 30
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 30
2.5.4. Tomcat6:
/var/lib/tomcat/webapps/bigbluebutton/WEB-INF/classes/bigbluebutton.properties
: đây là 1 trong những fle cấu hình chính cho các ứng dụng BBB.
/var/log/bigbluebutton/bbb-web.log :chứa Bigbluebutton Grails app
2.5.5. FreeSWITCH:
Trên 1 máy chủ sản xuất, tập tin này mặc định nằm trong:
/opt/freeswitch/conf.VAR.xml
Conference.conf.xml : để thay đổi các thuộc tính hội nghị
Public.xml : để thay đổi định dạng số hội nghị , thay đổi bbb-conferences
3. Triển khai hội nghị trực tuyến trên hệ thống BBB:
3.1. Xây dựng kịch bản hội nghị trực tuyến :
Mô hình tương tác :Đa điểm.
Mô hình điều khiển : Tập trung.
Chức năng :
Tƣơng tác thời gian thực , trực tuyến đa điểm, có tổ chức qua hạ tầng mạng IP.
Bao gồm các chức năng cụ thể sau :
a) Thiết lập kết nối đa điểm :
Chủ tọa thiết lập phòng họp mới, với meeting name: HopTongKet. Lấy địa
chỉ URL của phòng họp.
Gửi email mời họp cho các thành viên: bao gồm thông báo địa chỉ URL
phòng họp, thời gian họp, lịch trình cuộc họp. Ghi chú cho từng thành
viên…
Đến thời gian họp , thuê Lease line từ ISP : time 1h30’ , quy mô cuộc họp
từ 5-10 người tham gia.
b) Điều khiển phiên họp động :
Cho phép ngƣời dùng tham gia vào phiên họp với vai trò thành viên view.
Truyền video , audio.
Làm việc theo lịch trình cuộc họp đã thông báo : vai chủ tọa (center) cho
phép đến lượt báo cáo phát biểu. Tại 1 thời điểm chỉ có 1 thành viên phát
biểu.
Page 31
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 31
Center cấp quyền cho ngƣời dùng phát biểu có thể chia sẻ tài liệu (với định
dạng file có hỗ trợ trên hệ thống) lên hệ thống cho tất cả mọi ngƣời xem
hoặc chỉ chủ tọa xem (ban giám đốc). Share file or share Desktop !
Các thành viên có thể trao đổi với nhau thông qua chức năng : chat
Message (chế độ public or private tùy thuộc vào người sử dụng).
c) Điều độ thời gian thực :
Một thành viên đến phiên mình phát biểu chỉ đƣợc sử dụng 1 khoảng thời
gian định sẵn trong thời gian cuộc họp diễn ra. Hết thời gian đó, chủ tọa sẽ
nhắc nhở hoặc cắt vai trò phát biểu của thành viên.
Khi có 1 thành viên muốn phát biểu : có thể sử dụng chat public hoặc xin
phép chủ tọa (qua chat private). Chủ tọa sẽ xem xét & quyết định (cắt
quyền phát biểu hiện tại & cấp quyền phát biểu mới)
Chủ tọa có quyền thiết lập & kết thúc cuộc họp.
Chủ tọa có thể theo dõi tất cả các trao đổi (public & private) có thể nhắc
nhở các thành viên làm việc riêng (qua chat message) hoặc có thể thu quyền
tham gia hội nghị của thành viên vi phạm.
Khi có thành viên xin thoát khỏi hội nghị chủ tọa thu hồi tài nguyên cấp
phát cho ngƣời dùng đó.
Thành viên trình bày xong trƣớc thời gian cho phép chủ tọa thu quyền
phát biểu và cấp cho ngƣời mới.
d) Kết thúc hội nghị :
Thu hồi tài nguyên cấp phát.
Ghi lại biên bản hội nghị vai trò của thƣ ký hội nghị (báo cáo giấy !!!)
Cấu trúc hệ thống :
Trung tâm :
Đặt tại site 1.
Đặt hệ thống BBB, MCU.
Vai trò chủ tọa (Ban kỹ thuật)
Các thành viên tham gia:
o Kỹ thuật. (1 ngƣời )
o Giám đốc. (1 ngƣời)
o Kế toán (1 ngƣời)
Thành viên Site 2:
Ban Thiết kế : 3 ngƣời
Ban Marketing : 2 ngƣời
Lịch trình cuộc họp : (có thể thay đổi ):
Time họp : 9h – 10h30’ . Đầu tuần (thứ 2)
Page 32
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 32
Time Công việc
Ghi chú
Trước 9h Mời thành viên tham gia cuộc họp
Kỹ thuật : điều tiết cuộc họp
& hỗ trợ kỹ thuật trong quá
trình họp. 9h – 9h5 Điểm danh (List các thành viên)
9h5 – 9h15 Chủ tọa Giám đốc phát biểu phổ biến
cuộc họp
9h15 – 9h45 Ban Marketing : lên báo cáo dự án mới
Có thể phát biểu , thảo
luận trong khi nhóm báo
cáo(1 thành viên nhóm
trưởng trình báy trước,
các thành viên nhóm sẽ
tham gia sau khi có ý
kiến)
Có thể share file or share
desktop lên hệ thống
trong quá trình trình bày.
9h45 – 10h15 Ban Thiết kế báo cáo tiến độ làm dự án
cũ & đề xuất dự án mới
10h15 – 10h30 Kế toán giải trình báo cáo tài chính của
công ty cho giám đốc.
Chia sẻ file với Giám đốc.
10h30 – 10h35 Kết thúc cuộc họp
Viết biên bản cuộc họp
3.2. Thực hiện hội nghị “HopTongKet”:
Bƣớc đầu tiên, chủ tọa tạo phòng họp trên hệ thống, lấy địa chỉ URL của phòng họp và
gửi mail thông báo cho các thành viên tham gia.
Page 33
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 33
Page 34
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 34
Lấy URL của phòng họp :
http://192.168.68.149/demo/create.jsp?action=invite&meetingID=HopTongKet%27s+me
eting
Chủ tọa gửi mail mời họp cho các thành viên. Các thành viên tham gia phòng họp từ link
trên :
Page 35
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 35
Quá trình họp bắt đầu theo kịch bản đã đƣợc xây dựng :
Page 36
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 36
Page 37
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 37
Chương 4. Kết luận và đánh giá kết quả
1. Đánh giá kết quả triển khai hội nghị trên hệ thống BBB
Trƣớc hết việc triển khai tổ chức hội nghị họp trực tuyến đã tuân thủ đúng quy trình tổ
chức, triển khai, hội nghị diễn ra thành công. Tuy nhiên, qua quá trình diễn ra có những
điểm rút ra , số lƣợng thành viên tham gia đồng thời không đƣợc quá lớn so với hạ tầng
mạng có thể cung cấp, hiệu năng hoạt động của hệ thống chƣa đáp ứng tốt, có xuất hiện
độ trễ nhất định trong quá trình hoạt động.
Trong quá trình diễn ra cuộc họp, các thành viên không nên đồng thời chia sẻ
webcome, sẽ ảnh hƣởng hiệu năng hoạt động của hệ thống. Khi có ngƣời phát biểu nên
mute các thành viên khác để tránh tình trạng lỗi âm thanh nghe đƣợc.
Với hệ thống , việc tổ chức quản lý cuộc họp còn khá thủ công, chất lƣợng dịch vụ
còn chƣa đƣợc đảm bảo.
Với mục tiêu tìm hiểu quá trình triển khai một hệ thống cung cấp dịch vụ đến ngƣời
dùng cuối, cùng tìm hiểu về hội nghị trực tuyến trên nền công nghệ web, với sự hƣớng
dẫn tận tình của cô Nguyễn Thị Hoàng Lan, nhƣng do kiến thức có hạn, nên không tránh
khỏi sai sót, em mong cô sẽ có những nhận xét góp ý cho đề tài của em. Em xin chân
thành cảm ơn cô.
2. Hướng phát triển đề tài:
Có thể tham gia vào cộng đồng phát triển dự án BBB, viết thêm các module mới,
cung cấp cho cộng đồng phát triển. Cung cấp thêm các chức năng mới, hữu dụng cho hệ
thống, theo hƣớng thân thiện hơn với ngƣời dùng.
Page 38
Đồ án Xây dựng ứng dụng phân tán-Web Conference
Nguyễn Hồng Minh Page 38
Tài liệu tham khảo
1. Slide Truyền thông đa phƣơng tiện & ứng dụng .PGS.TS.Nguyễn Thị Hoàng Lan
2. http://www.bigbluebutton.org/
3. http://code.google.com/p/bigbluebutton/
4. http://en.wikipedia.org/wiki/BigBlueButton
5. https://github.com/bigbluebutton/bigbluebutton
6. http://www.webex.com/
7. http://www.microsoft.com/en-us/office365/lync-online.aspx
8. http://code.google.com/p/openmeetings/