Luận văn Lập trình trên thiết bị di động

MỤC LỤC

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

LỜI CẢM ƠN 1

MỤC LỤC 2

KÍ HIỆU VÀ VIẾT TẮT 5

TÓM TẮT – ABSTRACT – TỪ KHÓA 6

CHƯƠNG I – TỔNG QUAN 7

1.1 ỨNG DỤNG GIAO TIẾP GIỮA HAI ĐIỆN THOẠI SỬ DỤNG MẠNG WIFI 8

1.2 ỨNG DỤNG KARAOKE TRÊN ĐIỆN THOẠI DI ĐỘNG 10

CHƯƠNG II – CƠ SỞ LÝ THUYẾT 12

2.1 NỀN TẢNG SYMBIAN S60 3rd 12

2.1.1 Tổng quan về hệ điều hành Symbian 12

2.1.2 Đôi nét về sự phát triển của hệ điều hành Symbian S60 3rd 15

2.1.3 Cơ chế bảo mật và quản lí ứng dụng trên Symbian S60 18

2.2 NGÔN NGỮ LẬP TRÌNH PYTHON DÀNH CHO S60 v2.0.0 21

2.2.1 Giới thiệu chung về Python 21

2.2.2 Giới thiệu sơ lược về PyS60 21

2.2.3 Thông tin và dịch vụ của hệ điều hành 22

2.2.4 Đồ họa và giao diện người dùng 22

2.2.5 Âm thanh và các dịch vụ giao tiếp 23

2.3 DỮ LIỆU ĐA PHƯƠNG TIỆN 25

2.3.1 Dữ liệu video mp4 trên thiết bị S60 3rd 25

2.3.2 Kỹ thuật âm thanh Audio FullDuplex trên thiết bị S60 3rd 29

2.4 BỘ PHÁT TRIỂN PHẦM MỀM SDK S60 3rd for SYMBIAN OS 31

2.4.1 Giới thiệu về SDK S60 3rd FP1 31

2.4.2 Thiết bị mô phỏng S60 3rd FP1 của SDK 33

2.4.3 Thư viện hàm API của bộ SDK S60 3rd 35

2.5 TỔNG QUAN VỀ WIRELESS LAN (WLAN) 35

2.5.1 Lịch sử ra đời 35

2.5.2 Các mô hình mạng WLAN 36

2.5.3 Các thành phần trong mạng WLAN 38

2.5.4 Ưu điểm và nhược điểm của mạng Wifi 38

2.6 TỔNG QUAN VỀ LẬP TRÌNH MẠNG (NETWORK PROGRAMMING) 39

2.6.1 Mô hình tham khảo OSI 39

2.6.2 Mạng TCP/IP 41

2.6.3 Tìm hiểu về Socket 42

2.6.4 Chế độ giao tiếp 42

CHƯƠNG III - XÂY DỰNG ỨNG DỤNG 44

PHẦN THỨ NHẤT - ỨNG DỤNG KARAOKE PRO v1.0 44

3.1 CÁC THIẾT BỊ ĐÃ SỬ DỤNG TRONG LUẬN VĂN 44

3.1.1 Yêu cầu phần cứng 44

3.1.2 Cấu hình thiết bị 44

3.2 PHÂN TÍCH YÊU CẦU PHẦN MỀM VÀ HƯỚNG GIẢI QUYẾT 45

3.2.1 Yêu cầu phần mềm 45

3.2.2 Hướng giải quyết 46

3.3 MÔ HÌNH HÓA ỨNG DỤNG 47

3.4 LẬP TRÌNH ỨNG DỤNG 48

3.4.1 Module tìm kiếm file mp4 và duyệt file 48

3.4.2 Module Audio Full Duplex 48

3.4.3 Đóng gói cài đặt ứng dụng 53

3.5 MÔ TẢ ỨNG DỤNG 54

3.6 KẾT QUẢ ĐẠT ĐƯỢC 55

3.7 NHỮNG VẤN ĐỀ PHÁT SINH VÀ CHƯA GIẢI QUYẾT TRONG ĐỀ TÀI 55

3.7.1 Vấn đề phát sinh 55

3.7.2 Vấn đề chưa giải quyết được 56

3.7.3 Hướng giải quyết bằng kỹ thuật phần cứng 58

3.8 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 58

3.8.1 Tích hợp Module Audio Fullduplex vào phần mềm 58

3.8.2 Xây dựng ứng dụng Karaoke Pro dựa trên ngôn ngữ Symbian C++ 58

3.8.3 Module Audio Fullduplex với khả năng chạy ngầm 59

3.8.4 Tích hợp nhạc không lời (nhạc beat) và xử lý lời bài hát (lyric) 59

3.8.5 Tính năng download nhạc, ghi âm, chấm điểm tượng trưng. 59

PHẦN THỨ HAI - ỨNG DỤNG WIFI CONNECTOR v1.0 60

3.9 PHÂN TÍCH PHẦN MỀM VÀ HƯỚNG GIẢI QUYẾT 60

3.9.1 Phân tích phần mềm 60

3.9.2 Hướng giải quyết 61

3.10 MÔ HÌNH HÓA ỨNG DỤNG 62

3.11 LẬP TRÌNH ỨNG DỤNG 63

3.11.1 Module khởi tạo kết nối “create connection” 63

3.11.2 Module kết nối “connect” 65

3.11.3 Module “Chat” 66

3.12 MÔ TẢ ỨNG DỤNG 67

3.13 KẾT QUẢ ĐẠT ĐƯỢC 75

3.14 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 75

TÀI LIỆU THAM KHẢO 76

 

 

docx72 trang | Chia sẻ: netpro | Lượt xem: 2304 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Lập trình trên thiết bị di động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
nhưng định dạng của nó lúc này là *.mp4. Đây là tập tin video chúng ta cần và video này có thể play tốt trên thiết bị S60. Kỹ thuật âm thanh Audio FullDuplex trên thiết bị S60 3rd Thuật ngữ Full Duplex ở đây được hiểu là việc truyền dữ liệu theo cả hai hướng: hướng dữ liệu vào và hướng dữ liệu ra. Từ thuật ngữ trên ta giải thích được thuật ngữ Audio Fullduplex: Audio Fullduplex trên thiết bị S60 được hiểu như sau: tại cùng một thời điểm ta có thể thực hiện ghi âm và phát lại âm thanh đang ghi âm đó. Tức là record và playback âm thanh nhận được trong thời gian tức thì. Một ứng dụng Audio Fullduplex phải có được khả năng cho phép âm thanh được nhận từ Microphone của điện thoại và phát ra ở Speaker (Loa) của điện thoại, việc này cần sự hỗ trợ của phần cứng trên thiết bị di động mà hai thiết bị quan trọng nhất được sử dụng đó lầ microphone và speaker. Cụ thể hơn về khía cạnh lập trình để có thể đạt được tính năng audio fullduplex chúng ta cần sự hỗ trợ của thư viện hàm DevSound. Đôi nét về APIs DevSound Mục đích của thư viện hàm này là cung cấp một giao diện giữa Symbian OS và các phần cứng xử lý âm thanh nhằm đạt được những tính năng âm thanh mong muốn của người lập trình. DevSound chịu trách nhiệm cho việc truy cập đến các phần cứng âm thanh như microphone và speaker nhằm các mục đích cấu hình phần cứng, thực hiện ghi âm và phát lại. Dưới đây là hình minh họa mối quan hệ giữa các thành phần của Devsound, Symbian OS và phần cứng âm thanh. Hình 22: Các thành phần của DevSound DevSound sử dụng các thành phần chính sau: Client: DevSound có thể có các client khác nhau nhưng phổ biến là 2 loại sau: Application. Một ứng dụng độc lập nào đó. Third party/licensee library: một tiến trình thứ ba hoặc một thư viện hàm nào khác. MMF Controller Framework: phục vụ các tính năng playing(phát lại),recording(ghi âm), conversion(chuyển đổi). Controller Plug-in: tùy theo các tính năng yêu cầu từ phía client mà MMF Controller Framework sẽ tải các Controller plug-in thích hợp. Các Controller Plug-in này sẽ thực hiện các thao tác yêu cầu bằng cách giao tiếp với bộ mã của DevSound hoặc DevVideo và phần cứng. Audio Policy: quản lí các yêu cầu truy cập phần cứng âm thanh. Ví dụ như DevSound có yêu cầu phần cứng playback một đoạn audio, lúc này nó sẽ yêu cầu thành phần Audio Policy, phụ thuộc vào độ ưu tiên của yêu cầu này mà Audio Policy cho phép truy cập hoặc là ngăn cản lại. Vì thế DevSound bắt buộc phải tuân theo Audio Policy. Codecs: DevSound sử dụng bảng mã này để chuyển đổi qua lại giữa các loại âm thanh có các cách thức mã hóa khác nhau. Hai lớp chính của DevSound: CMMFDevSound: Đây là một giao diện cho được cung cấp từ hệ điều hành Symbian, cho phép thực hiện các tính năng về âm thanh trên các thiết bị phần cứng liên quan như : Ghi và phát lại âm thanh từ hai thiết bị là microphone và speaker. Điều chỉnh âm lượng của speaker, tạo âm thanh Stereo, balance, … Phát các âm thanh chuông, điều chỉnh hiệu ứng trên nhạc chuông như: tạo hiệu ứng 3D, hiệu ứng lặp lại, … MDevSoundObserver: Bao gồm các phương thức giao tiếp giữa client và DevSound. Các phương thức của nó được đóng gói và sẽ được gọi một khi có một sự kiện chỉ định xảy ra ví dụ như tiến trình khởi tạo và playing/recording một đoạn âm thanh, hoặc playing một đoạn nhạc chuông. Các thành thành phần của MDevSoundObServer: BufferToBeEmptied(CMMFBuffer*) Xử lý sự kiện yêu cầu dữ liệu của đối tượng CMMFDevSound. BufferToBeFilled(CMMFBuffer*) Xử lý sự kiện yêu cầu dữ liệu của đối tượng CMMFDevSound. ConvertError(TInt) Xử lý hoàn thành chuyển đổi mã hoặc bỏ qua sự kiện. DeviceMessage(TUid,constTDesC8&) Xử lý sự kiện xảy ra trên thiết bị. InitializeComplete(TInt) Xử lý sau khi khởi tạo hoàn thành. PlayError(TInt) Xử lý play âm thanh lỗi hoặc bỏ qua sự kiện này. RecordError(TInt) Xử lý record âm thanh lỗi hoặc bỏ qua sự kiện này. SendEventToClient(constTMMFEvent&) Xử lý các yêu cầu chính sách của Audio Policy. ToneFinished(TInt) Xử lý nhạc chuông sau khi được khởi tạo xong. Hình 23: Module Audio FullDuplex sau khi đã cài đặt Đôi nét về module Audio FullDuplex Được xây dựng dựa trên 2 lớp quan trọng nhất của DevSound là CMMFDevSound và MDevSoundObserver, module audio fullduplex được xây dựng hoàn toàn bằng ngôn ngữ Symbian C++. Với Module này chúng ta có thể thực hiện thao tác ghi âm thanh fullduplex trên thiết bị Symbian S60 (nhận âm thanh từ microphone và play lại trực tiếp qua speaker của điện thoại mà không cần phải dùng bộ nhớ đệm hay phải ghi âm thanh lên file). Nó sẽ tạo thành một vòng lặp âm thanh, nhận và phát liên tục. Với độ trễ gần như bằng 0. Cách thức xây dựng module cũng như các thành phần chính của module sẽ được trình bày chi tiết hơn trong phần xây dựng ứng dụng. BỘ PHÁT TRIỂN PHẦM MỀM SDK S60 3rd for SYMBIAN OS Giới thiệu về SDK S60 3rd FP1 Software Development Kit SDK là một tập hợp các công cụ cho phép các lập trình viên có thể phát triển ứng dụng cho mình. Và với SDK S60 3rd FP1 chúng ta có thể phát triển kiểm thử và thực thi các ứng dụng chạy trên thiết bị di động sử dụng nền tảng Symbian S60. SDK được phát triển dựa trên nền tảng S60 và hệ điều hành Symbian OS, bộ SDK này bao gồm tất cả các tính năng chính cần thiết cho việc phát triển ứng dụng như sau: Thư viện hàm APIs (Application Programming Interfaces) của S60. Thiết bị mô phỏng Emulator S60. Các công cụ GCCE. (GNU C Complier – GCC EABI - Embedded Application Binary Interface ). Tài liệu hướng dẫn. Các ứng dụng minh họa. Cụ thể có rất nhiều bộ SDK khác nhau do Nokia Corporation cung cấp. Theo đó chúng ta lựa chọn bộ SDK nào là tùy vào ngôn ngữ chúng ta chọn dùng để phát triển ứng dụng. Hiện tại các bộ SDK sau đây được sử dụng phổ biến nhất: Với ngôn ngữ Python và C++ chúng ta có bộ SDK S60 Platform SDKs for Symbian OS, for C++ bao gồm các phiên bản sau đây: S60 3rd Edition, Feature Pack 1. S60 3rd Edition. S60 2nd Edition, Feature Pack 2 (formerly 2.2). S60 2nd Edition, Feature Pack 1 (formerly 2.1). S60 2nd Edition (formerly 2.0). S60 1st Edition, Feature Pack 1 (formerly 1.2). S60 1st Edition (formerly 0.9). Các tính năng chính của bộ SDK này: Thiết bị mô phỏng dùng để chạy thử ứng dụng và tháo gỡ lỗi. Môi trường chạy ứng dụng và công cụ xây dựng ứng dụng cho thiết bị mô phỏng (WINSCW UDEB). Môi trường chạy ứng dụng và công cụ xây dựng ứng dụng cho thiết bị thật (GCCE, RVCT). (RVCT là một trình biên dịch không được tích hợp trong SDK.) Tài liệu trợ giúp về Symbian OS và S60 bao gồm: Mục Help. Hướng dẫn cài đặt. Tài liệu về thư viện hàm API. Bộ công cụ cho S60 bao gồm: SimPSY. Tạo ra các vị trí mô phỏng. Svg2Svgt – nén định dạng ảnh SVG thành định dạng ảnh SVGT dùng làm logo hoặc icon của ứng dụng. Task manager. Theo dõi các tiến trình đang hoạt động trên thiết bị mô phỏng. HTTP monitoring. Theo dõi quản lí hoạt động giao thức HTTP. System event generator. Hệ thống phát sinh và nhận dạng các sự kiện. Emulator configuration tool. Cấu hình thiết bị mô phỏng. Command-line interface - Giao diện dòng lệnh dành cho các nhà phát triển nội dụng. Remote Logging API. Thư viện hàm điều khiển đăng nhập. Emulator TCP/IP support using Winsock. Thiết bị mô phỏng TCP/IP hỗ trợ sử dụng Winsock. Emulator supports localization plug-ins for English, Chinese . Thiết bị mô phỏng hỗ trợ ngôn ngữ địa phương, như tiếng Hoa, tiếng Nhật. Web Runtime debug support. Hỗ trợ cho việc gỡ lỗi trên môi trường chạy Web Web Developer Library 1.0 supported.Thư viện hỗ trợ cho các nhà lập trình Web. Ngôn ngữ Java ta có SDK S60 Platform SDKs for Symbian OS, for Java™ bao gồm các phiên bản sau: Series 40 6th Edition, Feature Pack 1. Series 40 6th Edition. Series 40 5th Edition, Feature Pack 1. Series 40 5th Edition, Feature Pack 1 Lite. Series 40 5th Edition. Series 40 3rd Edition, Feature Pack 2. Series 40 3rd Edition, Feature Pack 1. Series 40 3rd Edition. Series 40 2nd Edition (Series 40 2.0) Các SDK này có các thành phần chính sau: Java API Emulation: tập hàm APIs hỗ trợ cho mỗi thiết bị mô phỏng Emulator, cung cấp đầy đủ tính năng cho Emulator để có thể chạy được các ứng dụng MIDP và CDLC. Seamless Java apps development: cung cấp khả năng tích hợp SDK lên các IDE thông dụng như Eclipse và NetBeans, nhằm làm thuận lợi hơn cho việc phát triển ứng dụng của lập trình viên. Emulator tools: công cụ mô phỏng giả lập thiết bị thật chạy nền tảng S40. Với ngôn ngữ Qt chúng ta có SDK: Nokia Qt SDK 1.0 Bao gồm nhiều phiên bản khác nhau dành cho nhiều hề điều hành khác nhau như: 32- or 64-bit Microsoft Windows XP Service Pack 2, Windows Vista, hoặc Windows7. 32-bit Ubuntu Linux 8.04 hoặc mới hơn. 64-bit Ubuntu Linux 8.04 hoặc mới hơn . 64-bit Apple Mac OS X 10.6 hoặc mới hơn. Ngoài ra còn có các SDK mới là Nokia Symbian^3 SDK bộ SDK này dùng để phát triển các ứng dụng dành cho các thiết bị sử dụng hệ điều hành Symbian^3, S60 3rd, S60 5th, một hệ điều hành mới nhất của Nokia Corporation. Bộ SDK này hỗ trợ luôn cho tất cả các nền tảng ngôn ngữ khác như: Qt. Symbian C++. Java™ technology. Web Runtime (WRT). Python. Thiết bị mô phỏng S60 3rd FP1 của SDK Thiết bị mô phỏng (Emulator) cho phép chúng ta thực thi và kiểm tra các ứng dụng di động trên máy tính PC trước khi chúng ta cài đặt chúng lên thiết bị thật. Emulator cung cấp một giao diện đồ họa của thiết bị thật và có đầy đủ các tính năng của một chiếc điện thoại động nền tảng S60. Emulator mô phỏng các tính năng của một thiết bị thực tế một cách rất chính xác do đó ứng dụng được phát triển và đã được kiểm tra thông qua Emulator hoàn toàn có thể được cài đặt trên thiết bị thật một cách dễ dàng. Để sử dụng Emulator chúng ta thực hiện như sau. Sau khi đã cài đặt bộ SDK S60 3rd ta chọn đường dẫn sau: Start - All Programs – S60 Developer Tools – 3rd Edition SDK FP1 – 1.0 – Emulator: Emulator sẽ hiện ra như hình bên dưới: Hình 24: Thiết bị mô phỏng SDK S60 Chúng ta có thể mở Menu của Emulaor bằng cách click chọn biểu tượng Application Menu của Emulator bao gồm ba thành phần sau: Hình 25: Các phím thao tác trên SDK Thanh trạng thái: hiển thị thông tin của ứng dụng đang chạy và một vài thông tin khác như tình trạng song mạng và tình trạng pin của thiết bị. Các ứng dụng trên Emulator: đây là phần Menu chính của emulator sẽ hiển thị toàn bộ các ứng dụng của thiết bị mô phỏng các tính năng cài đặt khác. Thanh điều khiển: sẽ hiển thị 2 các lệnh điều khiển có liên quan đến các phím chọn trái và phím chọn phải hoặc các phím điều hướng. Các phím quan trọng hiển thị trên Emulator. Chúng ta sử dụng phím chọn trái và phím chọn phải để lựa chọn thao tác lệnh tương ứng được hiển thị trong thanh điều khiển. Các phím điều hướng cho phép chúng ta di chuyển theo các hướng Trái – Phải – Lên – Xuống – Chọn. Để nhập dữ liệu chúng ta có 12 phím tương ứng trên Emulator. Thư viện hàm API của bộ SDK S60 3rd Bộ SDK S60 3rd bao gồm thư viện và các file header của cả S60 và Symbian OS 9.2 cho phép chúng ta sử dụng trong lập trình ứng dụng di động. Những thư viện hàm chính trong bộ SDK S60 3rd for Symbian OS FP1: Central Repository Notification Handler API. Trung tâm xử lý các thông báo, các sự kiện bao gồm việc nhấn các phím trên bàn phím của thiết bị hoặc các sự kiện do ứng dụng tạo ra. Content Listing Framework API. Khung liệt kê nội dung, cho phép ứng dụng truy cập các thông tin về dữ liệu đa phương tiện như: nhạc, video, hình ảnh được lưu trữ trên thiết bị. Flash Viewer Framework API. Thư viện hỗ trợ cho phép play các nội dung flash.Được ứng dụng trong việc phát triển Game. Optical Character Recognition (OCR) API.Thư viện cho phép nhận dạng kí tự văn bản và thao tác với chúng. Profiles Engine Wrapper API. Thư viện cấu hình thiết bị cho phép thiết bị hoạt động trong các môi trường khác nhau. Như Im lặng, ngoài trời,… Screen Mode API. Thư viện cấu hình màn hình hiển thị như độ sáng, thời gian tắt màn hình,… Sau khi đã hiểu rõ về nguyên tắc hoạt động cũng như các thành phần chính của bộ SDK, tiếp theo chúng ta sẽ tìm hiểu thành phần tiếp theo trong cơ sở lý thuyết của đề tài này đó là mạng WIFI (Wireless Lan). Đây là thành phần khá quan trọng, do phần mềm Wifi Connector của chúng ta bắt buộc phải hoạt động ở môi trường có sự hiện diện của mạng Wifi. TỔNG QUAN VỀ WIRELESS LAN (WLAN) WLAN là một loại mạng máy tính nhưng việc kết nối giữa các thành phần trong mạng không sử dụng các loại cáp như một mạng thông thường, môi trường truyền thông của các thành phần trong mạng là không khí. Các thành phần trong mạng sử dụng sóng radio để truyền thông với nhau. Lịch sử ra đời Công nghệ WLAN lần đầu tiên xuất hiện vào cuối năm 1990, khi những nhà sản xuất giới thiệu những sản phẩm hoạt động trong băng tần 900Mhz. Những giải pháp này (không được thống nhất giữa các nhà sản xuất) cung cấp tốc độ truyền dữ liệu 1Mbps, thấp hơn nhiều so với tốc độ 10Mbps của hầu hết các mạng sử dụng cáp hiện thời. Năm 1992, những nhà sản xuất bắt đầu bán những sản phẩm WLAN sử dụng băng tần 2.4Ghz. Mặc dầu những sản phẩm này đã có tốc độ truyền dữ liệu cao hơn nhưng chúng vẫn là những giải pháp riêng của mỗi nhà sản xuất không được công bố rộng rãi. Sự cần thiết cho việc hoạt động thống nhất giữa các thiết bị ở những dãy tần số khác nhau dẫn đến một số tổ chức bắt đầu phát triển ra những chuẩn mạng không dây chung. Năm 1997, Institute of Electrical and Electronics Engineers (IEEE) đã phê chuẩn sự ra đời của chuẩn 802.11, và cũng được biết với tên gọi WIFI (Wireless Fidelity) cho các mạng WLAN. Chuẩn 802.11 hỗ trợ ba phương pháp truyền tín hiệu, trong đó có bao gồm phương pháp truyền tín hiệu vô tuyến ở tần số 2.4Ghz. Năm 2003, IEEE công bố thêm một sự cải tiến là chuẩn 802.11g mà có thể truyền nhận thông tin ở cả hai dãy tần 2.4Ghz và 5Ghz và có thể nâng tốc độ truyền dữ liệu lên đến 54Mbps. Thêm vào đó, những sản phẩm áp dụng 802.11g cũng có thể tương thích ngược với các thiết bị chuẩn 802.11b. Hiện nay chuẩn 802.11g đã đạt đến tốc độ 108Mbps-300Mbps. Các mô hình mạng WLAN Mô hình mạng Ad-hoc (Independent Basic Service sets BSSs) Các nút di động (máy tính có hỗ trợ card mạng không dây) tập trung lại trong một không gian nhỏ để hình thành nên kết nối ngang cấp (peer-to-peer) giữa chúng. Các nút di động có card mạng wireless là chúng có thể trao đổi thông tin trực tiếp với nhau, không cần phải quản trị mạng. Vì các mạng ad-hoc này có thể thực hiện nhanh và dễ dàng nên chúng thường được thiết lập mà không cần một công cụ hay kỹ năng đặc biệt nào vì vậy nó rất thích hợp để sử dụng trong các hội nghị thương mại hoặc trong các nhóm làm việc tạm thời. Tuy nhiên chúng có thể có những nhược điểm về vùng phủ sóng bị giới hạn, mọi người sử dụng đều phải “nghe” được lẫn nhau. Hình 26: Mô hình mạng Ad-hoc Mô hình mạng cơ sở ( Basic service sets BSSs ) Bao gồm các điểm truy nhập AP (Access Point) gắn với mạng đường trục hữu tuyến và giao tiếp với các thiết bị di động trong vùng phủ sóng của một cell. AP đóng vai trò điều khiển cell và điều khiển lưu lượng tới mạng. Các thiết bị di động không giao tiếp trực tiếp với nhau mà giao tiếp với các AP.Các cell có thể chồng lấn lên nhau khoảng 10-15 % cho phép các trạm di động có thể di chuyển mà không bị mất kết nối vô tuyến và cung cấp vùng phủ sóng với chi phí thấp nhất. Các trạm di động sẽ chọn AP tốt nhất để kết nối. Một điểm truy nhập nằm ở trung tâm có thể điều khiển và phân phối truy nhập cho các nút tranh chấp, cung cấp truy nhập phù hợp với mạng đường trục, ấn định các địa chỉ và các mức ưu tiên, giám sát lưu lượng mạng, quản lý chuyển đi các gói và duy trì theo dõi cấu hình mạng. Hình 27: Mô hình mạng cơ sở Mô hình mạng mở rộng ( Extended Service Set ESSs ) Mạng 802.11 mở rộng phạm vi di động tới một phạm vi bất kì thông qua ESS. Một ESSs là một tập hợp các BSSs nơi mà các Access Point giao tiếp với nhau để chuyển lưu lượng từ một BSS này đến một BSS khác để làm cho việc di chuyển dễ dàng của các trạm giữa các BSS, Access Point thực hiện việc giao tiếp thông qua hệ thống phân phối. Hình 28: Mô hình mạng mở rộng Hệ thống phân phối là một lớp mỏng trong mỗi Access Point mà nó xác định đích đến cho một lưu lượng được nhận từ một BSS. Hệ thống phân phối được tiếp sóng trở lại một đích trong cùng một BSS, chuyển tiếp trên hệ thống phân phối tới một Access Point khác, hoặc gởi tới một mạng có dây tới đích không nằm trong ESS. Các thông tin nhận bởi Access Point từ hệ thống phân phối được truyền tới BSS sẽ được nhận bởi trạm đích. Sau khi tìm hiểu các mô hình mạng WLAN, tiếp theo chúng ta sẽ xem xét qua các thành phần cụ thể trong một mạng WLAN. Các thành phần trong mạng WLAN Điểm truy cập – AP (Access Point) Là 1 thiết bị ngoại vi dùng sóng để thu phát tín hiệu, truyền tải thông tin giữa các thiết bị wireless và mạng dùng dây. AP là thiết bị phổ biến nhất trong WLAN chỉ đứng sau PC card không dây. Nó cung cấp cho các máy khách (client) một điểm truy cập vào mạng "Nơi mà các máy tính dùng wireless có thể vào mạng nội bộ của công ty". AP là một thiết bị song công (Full duplex) có mức độ thông minh tương đương với một chuyển mạch Ethernet phức tạp (Switch). Các thiết bị máy khách trong WLAN (End-user wireless devices) Hình 29: PCI Wireless Là những thiết bị WLAN được các máy khách sử dụng để kết nối vào WLAN. Card PCI Wireless: Là thành phần phổ biến nhất trong WLAN. Dùng để kết nối các máy khách vào hệ thống mạng không dây. Được cắm vào khe PCI trên máy tính. Loại này được sử dụng phổ biến cho các máy tính để bàn (desktop) kết nối vào mạng không dây. Hình 30: PCMCIA Wireless Card PCMCIA Wireless: Trước đây được sử dụng trong các máy tính xách tay và các thiết bị hỗ trợ cá nhân số PDA (Personal Digital Associasion). Hiện nay nhờ sự phát triển của công nghệ nên PCMCIA wireless ít được sử dụng vì máy tính xách tay và PDA,…. đều được tích hợp sẵn Card Wireless bên trong thiết bị. Hình 31: USB Wireless Card USB Wireless: Loại rất được ưu chuộng hiện nay dành cho các thiết bị kết nối vào mạng không dây vì tính năng di động và nhỏ gọn. Có chức năng tương tự như Card PCI Wireless, nhưng hỗ trợ chuẩn cắm là USB (Universal Serial Bus). Có thể tháo lắp nhanh chóng (không cần phải cắm cố định như Card PCI Wireless) và hỗ trợ cắm khi máy tính đang hoạt động (plug and play). Ưu điểm và nhược điểm của mạng Wifi Ưu điểm Sự tiện lợi: Mạng không dây cũng như hệ thống mạng thông thường. Nó cho phép người dùng truy xuất tài nguyên mạng ở bất kỳ nơi đâu trong khu vực được triển khai (nhà hay văn phòng). Với sự gia tăng số người sử dụng máy tính xách tay, đó là một điều rất thuận lợi. Khả năng di động: Với sự phát triển của các mạng không dây công cộng, người dùng có thể truy cập Internet ở bất cứ đâu. Chẳng hạn ở các quán Cafe, trường học, cơ quan, xí nghiệp, … người dùng có thể truy cập Internet không dây miễn phí. Hiệu quả: Người dùng có thể duy trì kết nối mạng khi họ đi từ nơi này đến nơi khác. Triển khai: Việc thiết lập hệ thống mạng không dây ban đầu chỉ cần ít nhất 1 access point. Với mạng dùng cáp, phải tốn thêm chi phí và có thể gặp khó khăn trong việc triển khai hệ thống cáp ở nhiều nơi trong tòa nhà. Khả năng mở rộng: Mạng không dây có thể đáp ứng tức thì khi gia tăng số lượng người dùng. Với hệ thống mạng dùng cáp cần phải gắn thêm cáp. Nhược điểm Bảo mật: Môi trường kết nối không dây là không khí nên khả năng bị tấn công của người dùng là rất cao. Phạm vi: Một mạng chuẩn 802.11g với các thiết bị chuẩn chỉ có thể hoạt động tốt trong phạm vi vài chục mét. Nó phù hợp trong 1 căn nhà, nhưng với một tòa nhà lớn thì không đáp ứng được nhu cầu. Để đáp ứng cần phải mua thêm Repeater hay Access Point, dẫn đến chi phí gia tăng. Độ tin cậy: Vì sử dụng sóng vô tuyến để truyền thông nên việc bị nhiễu, tín hiệu bị giảm do tác động của các thiết bị khác (lò vi sóng,….) là không tránh khỏi. Làm giảm đáng kể hiệu quả hoạt động của mạng. Tốc độ: Tốc độ của mạng không dây (1- 125 Mbps) rất chậm so với mạng sử dụng cáp (100Mbps đến hàng Gbps). TỔNG QUAN VỀ LẬP TRÌNH MẠNG (NETWORK PROGRAMMING) Mô hình tham khảo OSI Để dễ dàng cho việc nối kết và trao đổi thông tin giữa các máy tính với nhau, vào năm 1983, tổ chức tiêu chuẩn thế giới ISO đã phát triển một mô hình cho phép hai máy tính có thể gửi và nhận dữ liệu cho nhau. Mô hình này dựa trên cách tiếp cận phân tầng (lớp), với mỗi tầng đảm nhiệm một chức năng cơ bản nào đó và được gọi là mô hình OSI. Để hai máy tính có thể trao đổi được thông tin với nhau cần có rất nhiều vấn đề liên quan ví dụ như cần có card mạng, dây cáp mạng, điện thế tín hiệu trên cáp mạng, cách thức đóng gói dữ liệu, điều khiển lỗi trên đường truyền… Bằng cách phân chia những tính năng này vào các tầng phân biệt nhau, việc viết các phần mềm để thực hiện chúng trở nên dễ dàng hơn. Mô hình OSI giúp đồng nhất các hệ thống máy tính khác biệt nhau khi chúng trao đổi thông tin. Mô hình này bao gồm 7 tầng: Tầng 1 – Tầng vật lí (Plysical Layer) Điều khiển việc truyền tải thật sự các bit trên đường truyền vật lí. Nó định nghĩa các tín hiệu điện, trạng thái đường truyền, phương pháp mã hóa dữ liệu, các loại đầu nối sử dụng… Tầng 2 – Tầng liên kết dữ liệu (Data – Link Layer) Tầng này đảm bảo truyền tải các khung dữ liệu (frame) giữa hai máy tính có đường truyền vật lí nối trực tiếp với nhau. Nó cài đặt cơ chế phát hiện và xử lí lỗi dữ liệu nhận. Tầng 3 – Tầng mạng (Network Layer) Tầng này đảm bảo các gói dữ liệu (packet) có thể truyền từ máy này đến máy kia cho dù không có đường truyền vật lí giữa chúng. Nó nhận nhiệm vụ tìm đường đi cho dữ liệu cho các đích khác nhau trong hệ thống mạng. Tầng 4 – Tầng vận chuyển (Transport Layer) Tầng này đảm bảo truyền tải dữ liệu giữa các quá trình. Dữ liệu gủi đi đảm bảo không có lỗi, theo đúng trình tự, không bị mất mát hay trùng lắp. Đối với các gói tin có kích thước lớn, tầng này sẽ phân chia chúng thành các phần có kích thước nhỏ hơn trước khi gửi đi. Cũng như tập hợp chúng lại khi nhận được. Tầng 5 – Tầng giao dịch (Session Layer) Tầng này cho phép các ứng dụng thiết lập, sử dụng và xóa các kênh giao tiếp giữa chúng (được gọi là giao dịch). Nó cung cấp cơ chế cho việc nhận biết tên và các chức năng về bảo mật thông tin khi truyền qua mạng. Tầng 6 – Tầng trình bày (Presentation Layer) Hình 32: Mô hình tham khảo OSI Tầng này đảm bảo các máy tính có kiểu định dạng dữ liệu khác nhau vẫn có thể trao đổi thông tin cho nhau. Thông thường các máy tính sẽ thống nhất với nhau về một kiểu định dạng dữ liệu trung gian để trao đổi thông tin giữa các máy tính. Một dữ liệu cần gửi đi sẽ được tầng trình bày chuyển sang định dạng dữ liệu trung gian trước khi truyền đi trên mạng. Ngược lại khi nhận dữ liệu từ mạng tầng trình bày sẽ chuyển sang định dạng riêng của nó. Tầng 7 – Tầng ứng dụng (Application Layer) Đây là tầng trên cùng cung cấp các ứng dụng truy xuất đến các dịch vụ mạng. Nó bao gồm các ứng dụng của người dùng, ví dụ như Web Browser (Internet Explorer, Mozilla Firefox, Google Chrome, Opera,…) hay các chương trình server cung cấp các dịch vụ mạng như (Internet Information Service IIS, Apache, …), các Mail Server (Send Mail MDaemon). Người dùng mạng giao tiếp trực tiếp với tầng này. Về nguyên tắc, tầng n của một hệ thống chỉ giao tiếp và trao đổi thông tin với tầng n của hệ thống khác. Mỗi tầng sẽ có đơn vị truyền dữ liệu riêng: Tầng vật lí: bit. Tầng liên kết dữ liệu: frame. Tầng mạng: packet. Tầng vận chuyển: segment. Trong thực tế, dữ liệu được gửi đi từ tầng trên xuống tầng xuống tầng dưới cho đến tầng thấp nhất của máy tính gửi. Ở đó, dữ liệu sẽ được truyền đi trên đường truyền vật lí. Mỗi khi dữ liệu được truyền xuống tầng phía dưới thì nó được “gói” lại trong đơn vị dữ liệu của tầng dưới. Tại bên nhận dữ liệu sẽ được truyền ngược lên các tầng cao dần, mỗi lần qua một tầng đơn vị dữ liệu tương ứng sẽ được “tháo” ra. Hình 33: So sánh sự giống nhau và khác nhau của OSI và TCP/IP Mạng TCP/IP Đây là kiến trúc của mạng Internet, chỉ gồm 5 tầng như hình vẽ dưới đây: Người ta còn gọi mô hình này là mô hình OSI đơn giản. Các giao thức trên mỗi tầng được quy định như sau: Tầng 3 sử dụng giao thức IP. Tầng 4 có thể sử dụng giao thức TCP chế độ có nối kết hoặc UDP chế độ không nối kết. Tầng 5 là tầng của ứng dụng, mỗi loại ứng dụng phải định nghĩa một giao thức riêng để các thành phần trao đổi thông tin qua lại với nhau. Một số ứng dụng đã trở thành chuẩn của mạng Internet như: Ứng dụng Web: sử dụng giao thức HTTP (HyperText Transfer Protocol) để tải các trang Web từ các Web Server về các Web Browser. Ứng dụng thư điện tử: sử dụng giao thức SMTP để chuyển tiếp mail gửi đi đến mail Server của người nhận và dùng giao thức POP3 (Post Office Protocol Version 3) hoặc IMAP (Internet Message Access Protocol) để nhận mail về cho người đọc. Ứng dụng truyền tải tập tin: sử dụng giao thức FTP (File Transfer Protocol) để tải các tập tin từ các FTP Server ở xa về máy người dùng hay ngược lại. Thông thường các tầng 1,2,3 và 4 được phát triển bởi các nhà sản xuất hệ điều hành, nhà sản xuất các phần cứng mạng. Chúng đảm nhận nhiệm vụ truyền tải thông tin cho các quá trình trên tầng ứng dụng. Chúng cài đặt cơ chế giao tiếp liên q

Các file đính kèm theo tài liệu này:

  • docxLập trình trên thiết bị di động – Mobile Phone Programming.docx