Tình hình triển khai IPTV của VNPT

Một phần của tài liệu Nghiên cứu IP multicast và các ứng dụng (Trang 67)

Cùng với sự phát triển của dịch vụ thuê bao băng rộng, việc xây dựng các nội dung phong phú cho mạng xDSL là vô cùng cần thiết. Việc xây dựng và hoạch định tốt mạng xDSL cho phép cung cấp tới thuê bao các đƣờng kết nối tốc độ cao, ổn định và nhờ đó cho phép cung cấp các dịch vụ gia tăng giá trị cao. Nhƣ vậy ngoài các dịch vụ

Nguyễn Văn Hưng – D06VT2 65 Internet tốc độ cao truyền thống, việc cung cấp các dịch vụ về Video và IPTV đã trở nên dễ dàng hơn nhiều. Dự báo trƣớc nhu cầu phát triển này trong mạng lƣới của mình, VNPT đã đƣa ra yêu cầu xây dựng mạng IPTV và VoD trong đấu thầu xây dựng mạng xDSL Pha 1 từ năm 2001.

Trong giai đoạn 2005-2006, thấy rõ đƣợc nhu cầu phát triển nội dung cho mạng xDSL, VNPT đã lựa chọn Siemens, nhà cung cấp giải pháp mạng NGN tổng thể cho VNPT từ lớp truy nhập đến mạng lõi, thực hiện thử nghiệm dịch vụ giải trí băng rộng (Broardband Entertainment Solution) tại công ty VASC. Ngoài các dịch vụ IPTV và VoD theo yêu cầu của VNPT, giải pháp giải trí tại gia đình thử nghiệm tại VASC của Siemens còn cung cấp thêm nhiều các dịch vụ khác nhƣ kết nối Internet trên TV, Walled Garden, v.v nhờ vào giải pháp sử dụng Midlleware chuyên dụng cho các nhà khai thác lớn. Ngoài ra vấn đề về bảo mật cho nội dung cũng đƣợc thử nghiệm với phần mềm của hệ thống DRM.

Ngày 07 tháng 08 năm 2009, VNPT đã đƣợc Bộ Thông tin và Truyền thông cấp giấy phép số 1104/GP-BTTTT về việc thử nghiệm kỹ thuật và cung cấp dịch vụ IPTV. Dịch vụ IPTV của VNPT mang thƣơng hiệu MyTV.

Nguyễn Văn Hưng – D06VT2 66

CHƢƠNG III

XÂY DỰNG ỨNG DỤNG GROUP CHAT 3.1 Giới thiệu

Hiện nay, trong môi trƣờng kinh doanh có một lƣợng rất lớn các thông tin cần phải chuyển tiếp đến nhiều nơi trong cùng một thời gian. Cùng thời điểm đó, các doanh nhân và các nhà nghiên cứu cần lấy một lƣợng lớn thông tin và thống kê trong cùng một ngày. Mạng hiện nay đƣợc sử dụng và phát triển để đáp ứng nhu cầu này, với sự phát triển đó thì các dịch vụ mới lại đƣợc thêm vào để phục vụ tốt hơn cho nhu cầu sử dụng.

Các ứng dụng hiện nay trên mạng Internet đều dựa vào giao thức truyền theo điểm, giống nhƣ là các ứng dụng trong mạng LAN truyền thống. Sử dụng IP multicast giúp cho mạng tiết kiệm đƣợc băng thông và có thể giảm tải cho mạng. Ví dụ một ứng dụng về tài chính cần phải gửi thông tin báo cáo cho hàng trăm máy trong mạng của một công ty. Mỗi máy nếu sử dụng theo giao thức unicast thì thông tin cần phải nhân bản lên hàng trăm lần và di chuyển trên cùng một liên kết mạng. Với phƣơng thức truyền IP multicast các gói tin chỉ đƣợc nhân bản khi gặp một nhánh rẽ trên cây chuyển tiếp.

3.1.1 Giới thiệu ngôn ngữ lập trình Java

Java là một công nghệ xây dựng các ứng dụng phần mềm đƣợc phát triển bởi tập đoàn Sun Mirco Systems. Java có vị trí rất lớn trong những năm cuối thế kỉ 20, đầu thế kỉ 21. Nó đƣợc coi là công nghệ mang tính cách mạng và khả thi nhất trong việc tạo ra các ứng dụng có khả năng chạy thống nhất trên nhiều nền tảng mà chỉ cần biên dịch một lần. Ngày nay, Java là một nền tảng tất yếu của các ứng dụng quy mô lớn của các doanh nghiệp nhờ vào khả năng mở rộng cũng nhƣ những nền tảng vô cùng phong phú mà nó cung cấp.

Một số đặc điểm của Java:

 Đơn giản: Java đơn giản vì, mặc dù dựa trên cơ sở C++ nhƣng Sun đã cẩn thận lƣợc bỏ các tính năng khó nhất của C++ để làm cho ngôn ngữ này dễ sử dụng hơn. Là một ngôn ngữ lập trình hoàn toàn mới, nó buộc phải có dáng vẻ và sự cảm nhận tƣơng tự nhƣ các ngôn ngữ phổ biến hiện hành đồng thời đòi hỏi khoảng thời gian tìm hiểu tối thiểu và thân thiện hơn đối với các nhà phát triển.

 Hƣớng đối tƣợng (Object Oriented): Hƣớng đối tƣợng trong Java tƣơng tự nhƣ C++ nhƣng Java là một ngôn ngữ lập trình hƣớng đối tƣợng hoàn toàn. Tất cả

Nguyễn Văn Hưng – D06VT2 67 mọi thứ đề cập đến trong Java đều liên quan đến các đối tƣợng đƣợc định nghĩa trƣớc, thậm chí hàm chính của một chƣơng trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp. Hƣớng đối tƣợng trong Java không có tính đa kế thừa (multi inheritance) nhƣ trong C++ mà thay vào đó Java đƣa ra khái niệm interface để hỗ trợ tính đa kế thừa.

 Hiểu mạng (network-savvy): Java đƣợc phát triển để hoạt động trên mạng và có các thủ tục để có thể quản lý các giao thức mạng nhƣ TCP/IP, FTP và HTTP. Nói cách khác, Java đƣợc xây dựng để thực hiện hoàn toàn thích hợp trên Internet. Chƣơng trình Java thậm chí có thể xâm nhập vào các đối thƣợng khác thông qua Internet bằng cách sử dụng URL (địa chỉ Web) để định vị chúng.

 Mạnh mẽ (robust): Khả năng mạnh phải phù hợp với thiết kế của ngôn ngữ, và hƣớng nó vào việc khắc phục những hƣ hỏng bộ nhớ và đảm bảo tính toán vẹn dữ liệu. Ví dụ, Java có tính năng "automatic garbage collection" (tự động thu gom rác) - có nghĩa là bộ nhớ đƣợc giải phóng một cách tự động - nên lập trình viên không phải bận tâm về việc quản lý bộ nhớ và nhờ đó ít có xu hƣớng làm những việc gây hỏng bộ nhớ.

 An toàn (secure): Khả năng hƣớng mạng của Java tự động đƣa ra yêu cầu về an toàn. Đặc tính an toàn của ngôn ngữ lập trình này bắt nguồn từ việc nó có những phần hạn chế đƣợc cài sẵn nhằm đề phòng các chƣơng trình Java thực hiện những chức năng nhƣ ghi vào ổ cứng của ngƣời dùng hay cho phép virus từ mạng hoặc từ môi trƣờng phân tán thâm nhập vào.

 Độc lập nền tảng: Đây là thuộc tính đặc sắc nhất của Java. Java đƣợc tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA)). Tính năng biên dịch một lần và chạy nhiều nền có thể đạt đƣợc nhờ just-in-time compiler (JIT), chuyển mã bytecode của Java sang mã máy khi chƣơng trình đang chạy. Chƣơng trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trƣờng thực thi với điều kiện có máy ảo java thích hợp hỗ trợ nền tảng đó. Môi trƣờng thực thi của Sun Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac OS, FreeBSD, Windows và nhiều hệ thống cài đặt trên các thiết bị di động.

 Di động (portable): Đối với một phạm vi rộng, Java là loại có thể di chuyển nhờ khả năng độc lập với hệ máy. Đồng thời, các loại dữ liệu, giao diện, cũng nhƣ

Nguyễn Văn Hưng – D06VT2 68 dáng vẻ và cảm nhận của Java đều giống nhau trên mọi hệ máy. Hệ thống các thành phần của java cũng có tính di động cao - nó đƣợc viết bằng Java.

 Tốc độ thực thi: Khi Sun Microsystems mô tả Java có tốc độ cao, có lẽ họ muốn nói về mã bytecode đƣợc thông dịch hiệu quả nhƣ thế nào ( Java thƣờng chạy nhanh hơn những ngôn ngữ lập trình thông dịch khác nhƣ Python, Perl, PHP...). Về tốc độ các applet hay chƣơng trình Java thì nói chung đều chậm hơn các chƣơng trình Java thì nói chung đều chậm hơn các chƣơng trình đƣợc biên dịch viết bằng C++, vì chƣơng trình này đã đƣợc tối ƣu hoá từ trƣớc cho hệ máy nhất định. Java đã phải trả giá về hiệu suất cho tính không phụ thuộc hệ của nó.

 Đa luồng (multithreaded): Đa luồng có nghĩa là ngôn ngữ Java cho phép xây dựng trình ứng dụng, trong đó, nhiều quá trình có thể xảy ra đồng thời. Tính đa luồng cho phép các nhà lập trình có thể biên soạn phần mềm đáp ứng tốt hơn, tƣơng tác tốt hơn, và thực hiện theo thời gian thực.

 Tính động (dynamic): Java động vì nó đƣợc thiết kế để đáp ứng với môi trƣờng tác nghiệp luôn trong tình trạng thay đổi. Khi có yêu cầu mới xuất hiện trên thị trƣờng, các loại đối tƣợng mới có thể đƣợc bổ sung vào ngay.

3.1.2 IP multicast trong Java

Java hỗ trợ truyền thông IP multicast với lớp java.net.MulticastSocket. Việc join vào một nhóm multicast hầu hết đƣợc thực hiện theo cách thiết lập kết nối UDP giữa các trạm. Mỗi trạm muốn liên lạc với các thành viên trong nhóm, nó cần lắng nghe một địa chỉ multicast bằng cách tạo một MulticastSocket và sau đó join vào phiên truyền thông multicast bằng việc gọi phƣơng thức joinGroup() trong lớp MulticastSocket.

Một khi kết nối với một phiên truyền thông multicast đã đƣợc thiết lập, dữ liệu có thể đƣợc gửi tới tất cả các trạm đang lắng nghe trong nhóm bằng cách sử dụng phƣơng thức send trong lớp MulticastSocket.

MulticastSocket ms = new MulticastSocket();

//data là phần dữ liệu cần gửi đi

DatagramPacket dp = new DatagramPacket(data,data.length,ia,port);

//Kết nối vào nhóm multicast với địa chỉ ia thuộc lớp D

ms.joinGroup(ia);

Nguyễn Văn Hưng – D06VT2 69

ms.send(dp);

Trạm cũng có thể nhận dữ liệu đƣợc broadcast trong nhóm multicast.

MulticastSocket ms = new MulticastSocket(port);

//tạo một đối tƣợng DatagramPacket

DatagramPacket dp = new DatagramPacket(data,length);

//Kết nối vào nhóm multicast với địa chỉ ia trùng với địa chỉ của máy gửi

ms.joinGroup(ia);

//nhận dữ liệu

ms.receive(dp);

Một khi không muốn tham gia nhóm nữa , một trạm có thể dừng việc lắng nghe địa chỉ multicast bằng cách sử dụng phƣơng thức leaveGroup(). Phƣơng thức này giúp trạm ngắt kết nối với phiên truyền thông trong nhóm.

ms.leaveGroup(sesAddr);

Để hỗ trợ việc đóng gói dữ liệu gửi đi, java hỗ trợ lớp DatagramPacket. Dƣới đây là một số phƣơng thức thƣờng đƣợc sử dụng để thao tác với dữ liệu gửi/nhận qua lớp MulticastSocket.

 public DatagramPacket(byte[] b, int n)

- Là phƣơng thức khởi tạo, cho phép tạo ra một DatagramPacket chứa n bytes dữ liệu đầu tiên của mảng b. (n phải nhỏ hơn chiều dài của mảng b)

- Phƣơng thức trả về một đối tƣợng thuộc lớp DatagramePacket.

 public DatagramPacket(byte[] b, int n, InternetAddress ia, int port)

- Phƣơng thức này cho phép tạo một DatagramPacket chứa dữ liệu và cả địa chỉ của máy nhận dữ liệu.

- Phƣơng thức trả về một đối tƣợng thuộc lớp DatagramePacket.

3.2 Phân tích thiết kế ứng dụng Group Chat 3.2.1 Mô tả ứng dụng 3.2.1 Mô tả ứng dụng

Chƣơng trình Group Chat dùng để trò chuyện cũng nhƣ trao đổi thông tin giữa các máy trong mạng LAN. Chƣơng trình hoạt động theo kiến trúc multicast peer-to-peer nhƣ hình 3.1. Khi khởi chạy chƣơng trình trên một máy trạm, đồng nghĩa với việc máy đó đã tham gia nhóm multicast. Tất cả các trạm trong nhóm multicast có quyền ngang nhau trong nhóm. Theo đó, mỗi thành viên tham gia nhóm có thể gửi tin nhắn trực tiếp tới tất cả các thành viên khác.

Nguyễn Văn Hưng – D06VT2 70

Hình 3.1: Kiến trúc multicast peer-to-peer

Ứng dụng Group Chat có giao diện đồ họa mà có thể thực hiện các chức năng sau:

 Đăng nhập vào nhóm chat. Dể tham gia một nhóm, cần lựa chọn một nhóm chat và nhập vào một user name, và user name này phải khác với tất cả các user name đang tồn tại trong nhóm.

 Có thể rời khỏi nhóm khi không còn muốn tham gia chat nhóm nữa.

 Sau khi tham gia nhóm, có thể nhập liệu tin nhắn để gửi tới tất cả các thành viên trong cả nhóm.

3.2.2 Mô hình chức năng và hoạt động của chƣơng trình

Hình 3.2 mô tả mô hình chức năng của chƣơng trình Group Chat.

Hình 3.2: Mô hình use case của ứng dụng Group Chat

Phân tích chức năng:

 Join Group: Khi nhập use name, lựa chọn phòng chat (nhóm multicast) và nhấn vào ô “Join Group” thì use case hoạt động. Khi chƣa có thành viên nào trong nhóm, use case này cũng giống nhƣ là trƣờng hợp tạo một phòng chat (một nhóm multicast) mới.

 Leave Group: Use case này sử dụng khi một trạm không còn muốn truyền thông với các thành viên trong nhóm nữa. Khi đó, ngƣời dùng chỉ việc nhấn

Actor1 User

Join Group

Leave Group

Nguyễn Văn Hưng – D06VT2 71 vào ô “Leave Group”, lập tức use case đƣợc kích hoạt. Sau khi kết thúc use case này, use case Join Group mới có thể hoạt động trở lại.

 Send Message: use case này chỉ hoạt động khi use case Join Group đã kết thúc. Sau khi gõ một tin nhắn muốn gửi đi, kích vào ô “Send” use case này sẽ đƣợc kích hoạt. Kết thúc use case này, tin nhắn sẽ đƣợc gửi đi tới tất cả các thành viên trong nhóm.

Hình 3.3 mô tả hoạt động của chƣơng trình Group Chat:

Hình 3.3: Mô tả hoạt động của ứng dụng Group Chat

3.3 Kết quả

Sau quá trình tìm hiểu multicast cũng nhƣ qua việc phân tích thiết kế chƣơng trình, em đã code xong ứng dụng Group chat bằng Java và kết quả nhƣ sau:

-Giao diện chƣơng trình: Chƣơng trình có giao diện nhƣ hình 3.4 Sử dụng chƣơng trình có thể truyền thông giữa các trạm trong cùng một máy hay các trạm trong nhiều máy trên cùng một mạng LAN.

-Hoạt động: để sử dụng chƣơng trình, cần điền tên bất kỳ vào ô "Your Name" và lựa chọn phòng chat (nhóm multicast) rùi kích vào Button "Join Chat". Để rời phòng chat sử dụng Button "End Chat". Bảng "Ongoing Chat" có chức năng hiển thị

Đăng nhập Đăng xuất Cập nhập thành viên Cập nhập tin nhắn Nhập và gửi bản tin Hiển thị Yêu cầu nhập lại Không trùng username Đăng nhập thành công Kiểm tra username

Nguyễn Văn Hưng – D06VT2 72 tin nhắn đồng thời thông báo có một thành viên mới tham gia nhóm hay vừa rời khỏi nhóm.

Hình 3.4: Ứng dụng Group Chat viết bằng Java

Textbox "Message Input" dùng để nhập thông điệp muốn gửi tới các thành viên trong nhóm.

-Hạn chế: Do thời gian có hạn nên chƣơng trình của em còn nhiều hạn chế nhƣ: giao diện còn đơn giản, chƣa hỗ trợ chức năng chia sẻ file giữa các thành viên, chức năng tạo nhóm, và đặc biệt là chức năng Emoticon (biểu tƣợng cảm xúc),...

Nguyễn Văn Hưng – D06VT2 73

KẾT LUẬN

IP multicast đã ra đời từ khá lâu nhƣng nó chỉ thực sự đƣợc chú ý khi mà các dịch vụ ngày càng đƣợc phát triển và mở rộng nhƣ IPTV, VoD,… Việc tìm hiểu sâu rộng về IP multicast sẽ giúp chúng ta nghiên cứu, phát triển những dịch vụ, ứng dụng mới trong tƣơng lai.

Với các ý nghĩa nhƣ vậy, đồ án tốt nghiệp đã trình bày khá là tri tiết về cơ chế hoạt động, cách thức triển khai cũng nhƣ các giao thức định tuyến trong IP multicast tại chƣơng 1.

Chƣơng 2: Trình bày dịch vụ truyền hình IPTV, một ứng dụng mang tính thƣơng mại cao của IP multicast, đã và đang đƣợc triển khai mạnh ở nƣớc ta. Mô tả cấu trúc hạ tầng, cũng nhƣ các thiết bị phần cứng trong mạng IPTV.

Chƣơng 3: Xây dựng một ứng dụng Group Chat dựa theo cơ chế IP multicast bằng ngôn ngữ lập trình java. Mặc dù ứng dụng còn đơn giản và không có tính thƣơng mại, tuy nhiên nó giúp chúng ta có cái nhìn trực quan hơn về các ứng dụng trên nền tảng IP multicast. Qua đó sẽ có những ý tƣởng mới về việc phát triển các ứng dụng, dịch vụ mang tính thƣơng mại.

Do thời gian và lƣợng kiến thức của bản thân còn hạn chế nên nội dung của đồ án vẫn chƣa đƣợc đầy đủ và chính xác. Với mong muốn nắm chắc các kiến thức về Mạng nói chung và IP multicast nói riêng để mở ra một cơ hội về nghề nghiệp. Hƣớng phát triển tiếp theo của đồ án là hoàn thiện các vấn đề còn thiếu xót và áp dụng lý thuyết vào thực tế để phát triển các ứng dụng, dịch vụ dựa trên kỹ thuật IP multicast. Vì thế rất mong sự quan tâm và đóng góp ý kiến của thầy cô và các bạn để nội dung đồ án đƣợc hoàn thiện hơn.

Một lần nữa em xin chân thành cám ơn thầy giáo TS. Nguyễn Chiến Trinh, cùng gia đình, bạn bè đã giúp đỡ em hoàn thành đồ án này.

Một phần của tài liệu Nghiên cứu IP multicast và các ứng dụng (Trang 67)

Tải bản đầy đủ (PDF)

(77 trang)