Mô hình kiến trúc của chƣơng trình

Một phần của tài liệu Xây dựng ứng dụng truyền video trên thiết bị cầm tay (PDA) qua môi trường mạng không dây (Trang 85)

Kiến trúc của chƣơng trình thử nghiệm đƣợc thể hiện trong hình sau đây:

PocketVideo

Thƣ viện Open H.323

Thƣ viện PWLib

Hình 3-8: Mô hình kiến trúc chƣơng trình thử nghiệm

Ngôn ngữ thể hiện

Chƣơng trình thử nghiệm đƣợc xây dựng cho thiết bị cầm tay chạy hệ điều hành Windows mobile phiên bản 2002 trở lên với mã nguồn Visual C++, công cụ phát triển Visual C++ Embedded, có nhiệm vụ kết nối với các thiết bị cầm tay khác qua môi trƣờng mạng không dây WLAN để truyền hình ảnh video thời gian thực.

Giao thức chuẩn H.323

Chƣơng trình đƣợc xây dựng trên giao thức chuẩn H.323. Hiện nay, giao thức chuẩn H.323 đã đƣợc một số các tổ chức trên thế giới phát triển một cách hoàn thiện. Một dự án về H.323 mã nguồn mở rất nổi tiếng là OpenH323 (tham khảo tại địa chỉ www.openH323.org), vì vậy luận văn sẽ sử dụng OpenH323 và bộ thƣ viện chuẩn PWLib trong xây dựng chƣơng trình thử nghiệm của mình.

Thƣ viện OpenH323 là thƣ viện tích hợp các thành phần tƣơng tự nhƣ mô hình giao thức chuẩn nhƣ mã hoá âm thanh, video, kiểm tra gateway, thiết lập kết nối thông qua các tín hiệu bắt tay, v.v...

Thƣ viện PWLib viết tắt của Portable Windows Library – cho phép chuyển đổi dễ dàng giữa các nền tảng hệ điều hành. Bao gồm PTCLib, PTLib, PWCLib, PWLib. Trong đó:

- PTCLib: là thƣ viện các thành phần văn bản khả chuyển giữa các nền hệ điều hành;

- PWCLib: là thƣ viện thành phần của windows; - PWLib: thƣ viện các đối tƣợng của windows;

- PTLib: thƣ viện các thành phần dạng văn bản khả chuyển.

Là thƣ viện mã nguồn mở để phát triển các trình ứng dụng sử dụng giao thức H.323 cho kết nối đa phƣơng tiện. Thƣ viện này đƣợc đóng gói các lớp tƣơng ứng nhƣ các thành phần trong mô hình giao thức H.323 đã đề cập ở trên.

Lớp H323Endpoint.

Trong thƣ viện này, đối tƣợng chính kế thừa toàn bộ các thành phần là lớp H323Enpoint đây là lớp cho phép thực hiện khởi tạo cuộc gọi hoặc nhận cuộc gọi. Một trình ứng dụng thông thƣờng sẽ có thể hiện kế thừa lớp này. Thể hiện này sẽ có các tham số H323 khởi tạo ban đầu, trong số các khởi tạo đó thì quan trọng nhất là bảng xác định năng lực mã hoá các kiểu kênh truyền dẫn mà chƣơng trình có thể quản lý.

Hình 3-9: Mô hình kế thừa của lớp H.323

Lớp Kết nối H323

Trình ứng dụng thƣờng khởi tạo một thể hiện của lớp Kết nối H323 mỗi khi thực hiện một cuộc gọi đi hay nhận cuộc gọi đến. Lớp này cung cấp nhiều phƣơng thức

ảo cho phép nạp chồng. Các phƣơng thức ảo này là các hàm “callback” cho phép trình ứng dụng kết xuất thông tin hoặc thay đổi các hoạt động theo nhiều cách khác nhau.

Lớp Kênh H323

Lớp H323Channel cho phép trình ứng dụng có thể tạo ra các kênh truyền logic cho phép mở các kênh truyền dữ liệu âm thanh đã đƣợc mã hoá.

Hình 3- 10: Cây kế thừa của lớp Kênh H323

Lớp H323Codec

Dây là lớp cơ sở cho toàn bộ các bộ mã hoá/giải mã âm thanh hay Video.

Hình 3-11: Cây kế thừa của lớp H323Codec

H323SignalPDU là lớp cơ sở của tất cả các giao thức liên quan đến dữ liệu.

Hình 3-12: Cây kế thừa của lớp H323SignalPDU

3.4.2.2 Thư viện PWLib

PWLib là thƣ viện cho phép trình ứng dụng có thể dễ dàng chuyển đổi từ hệ điều hành Microsoft Windows sang hệ điều hành Unix và ngƣợc lại.

Từ khi xuất hiện các bộ xây dựng giao diện đa hệ điều hành nhƣ KDE và xWindows, và sự phát triển của dự án OpenH323 tập trung vào hệ thống mạng, chuyển đổi đầu vào/đầu ra, đa luồng và đa hệ điều hành. Thƣ viện PWLib đƣợc sử dụng để tạo ra các trình ứng dụng hiệu suất cao và dễ dàng chuyển đổi ở các môi trƣờng mạng khác nhau.

Các lớp “chứa” chính của thƣ viện gồm mảng, danh sách tuyến tính, danh sách sắp xếp và các từ điển dạng bảng băm..., các lớp này đƣợc chia làm hai nhóm chính các lớp cơ sở và thành phần giao.

Lớp cơ sở bao gồm tất cả các lớp hỗ trợ cho việc kiến tạo nhƣ là lớp container, lớp thread và lớp socket, những lớp này đƣợc sử dụng tuỳ thuộc vào hệ điều hành nền mà chƣơng trình chạy trên nó.

Thành phần giao tiếp thực thi các chức năng độc lập với hệ điều hành và không bắt buộc phải khai báo với các chƣơng trình sử dụng. Một vài hệ điều hành (đặc biệt là Windows), lớp cơ sở và thành phần điều khiển đƣợc chia thành hai thƣ viện kế thừa rời rạc. Các hệ điều hành khác (nhƣ Unix) tổ hợp tất cả mã nguồn vào trong cùng một thƣ viện và dựa vào các liên kết để loại bỏ các mã nguồn không cần thiết.

Các lớp cơ sở.

- Các lớp đối tƣợng cơ bản:

 PObject – Lớp cơ sở cho tất cả các lớp trong PWLib.

 PContainer – lớp cơ sở cho tất cả các lớp có kiểu liệt kê. Về cơ bản, một đối tƣợng container cho phép chứa nhiều đối tƣợng khác. Lớp này hỗ trợ hai vùng, vùng thứ nhất đơn giản chỉ chứa số lƣợng các đối tƣợng đƣợc chứa trong nó, vùng thứ hai hỗ trợ cho các tham chiếu đến các thành phần.

 PAbstractArray – lớp cơ sở cho mảng của các đối tƣợng.  PAbstractList – lớp cơ sở cho danh sách các đối tƣợng.  PAbstractDictionary – lớp cơ sở cho từ điển.

 PString – lớp cơ sở cho các khai báo trừu tƣợng (abstraction) cho kiểu chuỗi.

- Các lớp thiết lập kênh đầu vào/đầu ra.

 PChannel – lớp cơ sở cho tất cả kênh vào ra.

 PIndirectChannel – một kênh cho phép đóng gói các kênh khác.  PConsoleChannel – kênh truy nhập điều khiển hệ thống.

 PPipeChannel – thực thi chƣơng trình và truy nhập đầu vào, đầu ra – tƣơng tự nhƣ lớp Pchannel.

 PSerialChannel – định nghĩa kênh vào ra kết nối với cổng serial – RS-232.

 PFile – truy nhập file trên hệ điều hành máy chủ. Lớp này biểu thị một file trên đĩa.

 PVideoChannel – ghi/đọc dữ liệu từ một thiết bị video. Lớp này cung cấp chủ yếu chức năng phát lại và ghi tín hiệu video trên hệ thống.

 PSoundChannel - đọc/ghi dữ liệu từ thiết bị âm thanh. - Lớp socket.

Hình 3-13: Cây kế thừa lớp PSocket  PSocket – lớp cơ sở cho tất các các socket.

 PIPSocket – lớp cơ sở cho tất các các socket sử dụng giao thức IP.  PUDPSocket – Socket sử dụng giao thức UDP.

 PTCPSocket - socket sử dụng giao thức TCP/IP.  PICMPSocket - socket sử dụng giao thức ICMP.

 PIPXSocket – lớp cơ sở cho socket sử dụng giao thức IPX.  PEthSocket – giao diện socket cho giao diện Ethernet thô. - Lớp tiến trình và luồng.

 PServiceProcess – thực thi một tiền trình nền (trong UNIX) hoặc tiến trình hệ thống (trong Windows).

 PThread – trừu tƣợng một luồng của điều khiển hoặc ngữ cảnh thực thi.

- Một số lớp khác..

 PArgList – hỗ trợ phân tích tập các tham số truyền vào cho chƣơng trình.

 PConfig – cung cấp bộ nhớ thứ cấp cho cấu hình của chƣơng trình sử dụng phƣơng thức tƣơng thích hệ điều hành.

 PTime – lớp trừu tƣợng biểu thị đồng hồ thời gian và ngày tháng.

Các thành phần giao tiếp.

- Các lớp HTTP.

 PHTTP – lớp cơ sở cho giao thức HTTP.

 PHTML – một luồng string định dạng thông tin HTML.  PHTTPForm – cho phép tạo các thẻ form HTTP.

- Các lớp giao thức.

 PInternetProtocol – lớp cơ sở cho tất cả các giao thức internet dựa vào kiểu văn bản.

 PPOP3 – lớp cơ sở cho giao thức POP3.

 PSMTMP – lớp cơ sở cho các lớp giao thức SMTP.  PFTP – lớp cơ sở cho các lớp FTP.

 PTelnetSocket – cho phép thực thi giao thức TELNET.  PSocksProtocol – lớp cơ sở cho giao thức SOCKS .  PSNMP – lớp cơ sở cho thực thi giao thức SNMP.

- Các lớp khác.

 PModem – lớp kế thừa của lớp PserialChannel, lớp này đã đƣợc thay đổi để dành riêng cho các modem tuân theo tập lệnh chuẩn AT.

 PIpAccessControlList – một tập các đầu vào các đặc tả cho phép truy nhập, tập này là danh sách các địa chỉ IP hoặc các mạng.  PRandom – bộ sinh số ngẫu nhiên.

 PCypher – thực thi nhiều đoạn mã hoá dữ liệu nhƣ MD5, SHA ...  PWAVFile – cho phép thao tác với một file wave theo định dạng

AIFF.

 PMemoryFile – cho phép thao tác với một đối tƣợng của lớp kế thừa PFile để lƣu trữ số liệu trong bộ nhớ.

Một phần của tài liệu Xây dựng ứng dụng truyền video trên thiết bị cầm tay (PDA) qua môi trường mạng không dây (Trang 85)