Đề tài Dịch vụ Mobile Wireless và hệ thống dịch vụ giá trị gia tăng trên Web

Tài liệu Đề tài Dịch vụ Mobile Wireless và hệ thống dịch vụ giá trị gia tăng trên Web: Mục lục Danh mục thuật ngữ và từ viết tắt sử dụng trong báo cáo tốt nghiệp Số TT Từ Giải nghĩa 1 ATM Auto Teller Machine 2 CDMA Code Division Multiple Access 3 ESME External Short Messaging Entities 4 GSM Global System For Mobile Communications 5 GPRS General Packet Radio Services 6 HTML Hypertext Markup Language 7 HTTP Hypertext Transfer Protocol 8 MVAS Mobile Value Added Service 9 RE Routing Entities 10 SME Short Messaging Entities 11 SMPP Short Message Peer to Peer Protocol 12 SMS Short Message Service 13 SMSC Short Message Service Centrer 14 UDH User Data Header 15 URL Uniform Resource Locator 16 WAP Wireless Application Protocol 17 WML Wireless Markup Language Danh mục các hình vẽ trong báo cáo tốt nghiệp Hình 2.1: Kiến trúc mạng cơ bản khi triển khai SMS 3 Hình 2.2: Cơ sở hạ tầng mạng thực hiện các dịch vụ ESME 3 Hình 2.3: Mạng các ứng dụng dùng giao thức SMPP 3 Hình 2.4: Kết nối ở tầng ứng dụng giữa ESME và MC 3 Hình...

doc81 trang | Chia sẻ: hunglv | Lượt xem: 1309 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Dịch vụ Mobile Wireless và hệ thống dịch vụ giá trị gia tăng trên Web, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Mục lục Danh mục thuật ngữ và từ viết tắt sử dụng trong báo cáo tốt nghiệp Số TT Từ Giải nghĩa 1 ATM Auto Teller Machine 2 CDMA Code Division Multiple Access 3 ESME External Short Messaging Entities 4 GSM Global System For Mobile Communications 5 GPRS General Packet Radio Services 6 HTML Hypertext Markup Language 7 HTTP Hypertext Transfer Protocol 8 MVAS Mobile Value Added Service 9 RE Routing Entities 10 SME Short Messaging Entities 11 SMPP Short Message Peer to Peer Protocol 12 SMS Short Message Service 13 SMSC Short Message Service Centrer 14 UDH User Data Header 15 URL Uniform Resource Locator 16 WAP Wireless Application Protocol 17 WML Wireless Markup Language Danh mục các hình vẽ trong báo cáo tốt nghiệp Hình 2.1: Kiến trúc mạng cơ bản khi triển khai SMS 3 Hình 2.2: Cơ sở hạ tầng mạng thực hiện các dịch vụ ESME 3 Hình 2.3: Mạng các ứng dụng dùng giao thức SMPP 3 Hình 2.4: Kết nối ở tầng ứng dụng giữa ESME và MC 3 Hình 2.5: Trạng thái Open 3 Hình 2.6: Trạng thái Bound_TX 3 Hình 2.7: Trạng thái Bound_RX 3 Hình 2.8: Trạng thái Bound_TRX 3 Hình 2.9: Trạng thái Outbound 3 Hình 2.9: Một phiên thiết lập bởi outbind và kết nối dạng receiver 3 Hình 2.11: Cấu trúc WAP 3 Hình 2.12: Bộ giao thức WAP so sánh với bộ giao thức internet 3 Hình 3.1: Biểu đồ phân cấp hệ thống MVAS 3 Hình 3.2: Mô hình hệ thống MVAS 3 Hình 3.3: Biểu đồ phân cấp chức năng hệ thống MVAS-WEB 3 Hình 3.4: Biểu đồ phân cấp chức năng hệ thống MVAS-SMS 3 Hình 3.5: Cơ sở dữ liệu hệ thống 3 Hình 3.6: Kiến trúc 1 3 Hình 3.7: Kiến trúc MVC 3 Hình 3.8: Trang chủ hệ thống web 3 Hình 3.9: Trang web ringtone.jsp 3 Hình 3.10: Màn hình chức năng nghe thử nhạc chuông 3 Hình 3.11: Trang web image.jsp 3 Hình 3.12: Trang web logo.jsp 3 Hình 3.13: Đăng ký tài khoản người dùng 3 Hình 3.14: Thay đổi thông tin cá nhân 3 Hình 3.15: Gửi nhạc chuông từ trên web 3 Hình 3.16: Gửi hình nền từ trên web 3 Hình 3.17: Gửi logo từ trên web 3 Hình 3.18: Kết nối điên thoại Nokia 6100 với máy tính thông qua NowSMS 3 Hình 3.19: Thiết lập WebService cho NowSMS 3 Hình 3.20: Thiết lập chức năng gọi mô đun xử lý tin nhắn cho NowSMS 3 Danh mục các bảng trong đồ án tốt nghiệp Bảng 2.1: Số tối đa ký tự được gửi ứng với từng loại mã 3 Bảng 2.2: Thiết lập sử dụng UDH 3 Bảng 2.3: Số lượng tối đa ký tự khi sử dụng UDH 3 Bảng 2.4: Tham số SMPP trong việc ghép nối tin nhắn 3 Bảng 2.5 : So sánh giữa WAP Push SL và SI 3 Bảng 3.1: Chi tiết các chức năng hệ thống MVAS 3 Bảng 3.2: Mã hóa các chức năng 3 Bảng 3.3: Chủ đề nhạc chuông 3 Bảng 3.4: Nhạc chuông 3 Bảng 3.5: Chủ đề hình ảnh 3 Bảng 3.6: Hình ảnh 3 Bảng 3.7: Chủ đề Logo 3 Bảng 3.8: Logo 3 Bảng 3.9: Kiểu tin nhắn 3 Bảng 3.10: Tin nhắn nhận 3 Bảng 3.11: Tin nhắn gửi 3 Bảng 3.12: Từ khóa kịch bản 3 Bảng 3.13: Tham số kịch bản 3 Bảng 3.14: Giá trị tham số kịch bản 3 Bảng 3.15: Kết quả dịch vụ bình chọn 3 Bảng 3.16: Thông tin người sử dụng 3 Bảng 3.17: So sánh giữa cơ sở dữ liệu DB2, MS SQL Server, Oracle 3 LỜI NÓI ĐẦU Lịch sử phát triển của loài người luôn gắn liền với những phát minh. Máy tính điện tử có thể được coi là một trong những phát minh vĩ đại nhất. Sự ra đời của máy tính điện tử chưa đầy 100 năm nhưng nó đã làm thay đổi mạnh mẽ cuộc sống của con người. Ngày nay chiếc máy tính điện tử đã thâm nhập vào mọi lĩnh vực của đời sống xã hội. Bên cạnh chiếc máy tính điện tử thì còn phải kể đến chiệc điện thoại do Abraham Bell phát minh ra. Giao tiếp bằng chiếc điện thoại đã làm thay đổi căn bản phương thức giao tiếp của con người và nó đã xóa mờ mọi khoảng cách về địa lý. Trong những năm vừa qua, sự phát triển mạng mẽ của internet và các trang Web khiến người ta hay nói nhiều đến công nghệ thông tin và đặc biệt là thương mại điện tử (E-commerce). Quả thật thương mại điện tử là một phương pháp kinh doanh mới nhưng nó cũng có những hạn chế khi đòi hỏi những người mua và bán ngồi liên tục bên chiếc máy tính của mình. Đối với các doanh nhân hay thế hệ trẻ việc ngồi liên tục ở một chỗ là điều không thích hợp. Những tiến bộ nhanh chóng về công nghệ điện thoại di dộng khiến người ta đề cập đến một vấn đề mới đó là M-commerce. Với M-commerce thì vẫn là thương mại nhưng các doanh nhân hay khách hàng đều có thể tìm kiếm, giao dịch thông qua chiếc điện thoại di động luôn mang theo bên mình. M-commerce đã khắc phục được hạn chế của E-commerce thông qua việc kết hợp thêm tính năng di động của chiếc điện thoại. M-commerce là một khái niệm mới, để xây dựng được các ứng dụng M-commerce đòi hỏi các nhà phát triển vượt qua những rào cản về mặt kỹ thuật. Với mong muốn tìm hiểu những kỹ thuật và công nghệ để xây dựng các ứng dụng M-commerce, em đã chọn và thực hiện đề tài tốt nghiệp: “Mobile Wireless và hệ thống dịch vụ giá trị gia tăng trên Web”. CHƯƠNG 1 TỔNG QUAN Nội dung chương này đề cập đến những vấn đề chính sau: Dịch vụ giá trị gia tăng trên di động là gì? Các loại hình dịch vụ giá trị gia tăng trên di động Nhiệm vụ của đồ án tốt nghiệp 1.1. Dịch vụ giá trị gia tăng trên di động là gì? Trước khi đi vào tìm hiểu các dịch vụ giá trị gia tăng trên điện thoại di động và các loại hình dịch vụ đó thì chúng ta cùng nhau làm rõ khái niệm dịch vụ “giá trị gia tăng” (value added) trên điện thoại di động. Quay trở lại với dòng lịch sử, có thể thấy từ khi Alexander Graham Bell phát minh ra điện thoại năm 1876, điện thoại đã đi vào cuộc sống và làm thay đổi cách thức giao tiếp của loài người cũng như ảnh hưởng tới các mặt của đời sống kinh tế, xã hội một cách sâu sắc. Đó là chúng ta nói đến điện thoại có dây. Khi mà khoa học phát triển hơn thì điện thoại di động đã ra đời. Nếu như vào năm 1993 ở nước ta khi một bài báo viết về một thiết bị điện thoại không dây nối lúc đó đang có ở Thái Lan thì đối với mọi người Việt Nam thì đó là một thứ gì đó hoàn toàn xa lạ. Đến thời điểm hiện nay của năm 2006 thì số thuê bao di động trên tất cả các mạng ở Việt nam đã là khoảng 11 triệu thuê bao và đang có xu hướng tăng mạnh khi mà có thêm các nhà cung cấp mới như EVN Telecom, Hà nội Telecom. Khi điện thoại ra đời thì mục đích đơn thuần của nó chỉ là truyền âm thanh và cụ thể là giọng nói của con người, nhưng hiện nay khi mà điện thoại di động phát triển thì mục đích của nó không đơn thuần là các cuộc đàm thoại thông thường và tất cả các dịch vụ mà các thuê bao di động được sử dụng ngoài các cuộc đàm thoại ra đều được gọi là các dịch vụ “giá trị gia tăng”, ví dụ như nhắn tin ngắn, tải nhạc chuông, hình ảnh,… Các dịch vụ này có thể do nhà cung cấp dịch vụ điện thoại cung cấp hoặc do một đối tác trung gian thứ ba. Ở các phần tiếp theo sau đây chúng ta sẽ đi tìm hiểu cụ thể về các loại hình dịch vụ giá trị gia tăng. 1.2. Các loại hình dịch vụ giá trị gia tăng 1.2.1. Email di động Thư điện tử (Email) từ lâu đã trở thành ứng dụng quan trọng bậc nhất, thành công nhất của mạng Internet. Thư điện tử cho phép người sử dụng làm việc có hiệu quả hơn, giao tiếp với nhau nhanh hơn, tăng tốc độ và chất lượng của việc ra quyết định trong các doanh nghiệp. Thư điện tử còn cho phép hỗ trợ và chăm sóc khách hàng trực tuyến tốt hơn. Sức mạnh của thư điện tử đã san bằng khoảng cách về địa lý, ngôn ngữ và trở thành phương tiện giao tiếp hiệu quả nhất trong kinh doanh. Thư điện tử không dây (Wireless Email) càng làm cho thư điện tử truyền thống tăng thêm sức mạnh. Nó cho phép người sử dụng đọc và trả lời Email mọi lúc, mọi nơi, không nhất thiết phải ngồi ở văn phòng hoặc ở nhà mới kiểm tra, đọc và trả lời được Email. Email di động đã tồn tại dưới nhiều dạng khác nhau. Ví dụ như người sử dụng có thể gửi và nhận Email dưới dạng nhắn tin ngắn SMS (Short Message Service), một dịch vụ rất phổ biến trên tất cả các mạng di động. Một dạng Email di động khác là việc truy nhập Email sử dụng các thiết bị PDA, thiết bị nhắn tin (Pager) hoặc các thiết bị không dây khác để tải Email từ máy tính cá nhân hoặc là qua mạng không dây. Tuy nhiên, các dạng Email di động trên đều có những hạn chế nhất định. Ví dụ như các dạng Email di động trên không có khả năng sử dụng cho những người sử dụng chuyên nghiệp, cần nhận và gửi những Email có kích thước lớn và truy nhập Email theo thời gian thực (real-time). Thay vào đó, các dạng Email di động này đòi hỏi phải tạo ra và lưu trữ các bản sao của Email trên máy chủ, trên máy trạm hoặc trên các thiết bị Email Gateway. Kết quả là người sử dụng phải xem, quản lý và lưu trữ Email ở nhiều chỗ khác nhau. Email di động, truy nhập qua WAP, cho phép truy nhập trực tuyến (live) vào bản sao của Email ở trên máy chủ Web-based Email Server. Chỉ tồn tại một bản sao duy nhất của Email, do đó, một sự thay đổi từ thiết bị WAP sẽ dẫn đến thay đổi tức thì và tự động trên hộp thư của người sử dụng trên máy chủ. Và như vậy là người sử dụng sẽ chỉ phải xử lý Email một lần duy nhất. Các thiết bị hỗ trợ WAP-based Email cho phép đọc thư, trả lời thư, nhận biết thư mới và thậm chí là định tuyến các file gửi kèm tới các máy in hoặc máy Fax gần đó. Email di động là ứng dụng quan trọng nhất của dịch vụ WAP và các khả năng về giao diện thân thiện với người sử dụng, khả năng báo Email mới (Mail Notification) là những ưu điểm lớn nhất của việc truy nhập Email qua WAP. 1.2.2. Quản lý thông tin cá nhân Quản lý thông tin cá nhân (PIM - Personal Information Management) bao gồm các công cụ rất cần thiết cho công việc hàng ngày như lịch, lịch công tác, danh sách những địa chỉ liên hệ, danh bạ điện thoại và danh mục những việc cần làm. Cùng với thư điện tử, PIM đã trở thành một trong những ứng dụng quan trọng nhất, cho phép người sử dụng lập lịch cho các cuộc họp và quản lý được danh sách các địa chỉ liên hệ và số điện thoại của các đối tác, ngay cả khi đang ở trên đường. Giải pháp quản lý thông tin cá nhân qua WAP cho phép người sử dụng tải về và đồng bộ cơ sở dữ liệu PIM qua không gian, truy nhập vào danh bạ điện thoại, cơ sở dữ liệu về số điện thoại, địa chỉ cũng như các thông tin khác mọi lúc, mọi nơi. Khi người sử dụng cập nhật thông tin về một địa chỉ liên hệ mới qua giao diện Web, thông tin mới được cập nhật này sẽ cập nhật vào cơ sở dữ liệu PIM và ngay lập tức có thể tải về các thiết bị không dây. Giao diện thân thiện của danh mục người cần liên hệ trên máy điện thoại di động có hỗ trợ WAP sẽ cho phép người sử dụng gọi điện thoại ngay cho người đó chỉ bằng một động tác bấm phím quay số (one-touch dial). Khi PIM được sử dụng kết hợp với nhận dạng tiếng nói, người sử dụng thậm chí còn có thể quay số bằng giọng nói tới một số điện thoại lưu trong sổ điện thoại. Một ưu điểm nữa của việc quản lý thông tin cá nhân qua giao diện WAP là cho phép nhắc người sử dụng về một cuộc hẹn hoặc một buổi họp nào đó sử dụng các biện pháp thông báo qua mạng không dây, ví dụ như sử dụng SMS. 1.2.3. Unified Messaging Unified Messaging cho phép người sử dụng trả lời một bản tin đa phương tiện mà không cần quan tâm đến dạng của bản tin đó. Unified Messaging cho phép tích hợp cả thoại, Email và Fax vào trong một hộp thư duy nhất để người sử dụng có thể truy nhập. Theo dự báo của các chuyên gia, toàn thế giới sẽ có 200 triệu hộp thư vào năm 2006. Với việc sử dụng các dịch vụ Voicemail của điện thoại và Email trên Internet, người sử dụng đồng thời sẽ có một số hộp thư: một hộp thư thoại cho điện thoại để bàn, một hộp thư thoại cho điện thoại di động, một hộp thư đa phương tiện cho Email, một hộp thư dạng văn bản cho máy nhắn tin … Hơn thế nữa, rất nhiều người lại sử dụng cùng lúc nhiều thiết bị và kết quả là rất nhiều loại hộp thư đang chờ họ! Unified Messaging cho phép người sử dụng sử dụng các thiết bị khác nhau không những chỉ để truy nhập một hộp thư chứa nhiều dạng bản tin khác nhau mà còn có thể trả lời các bản tin đó theo dạng bản tin mà người gửi có thể đọc được. Đây là ứng dụng quan trọng cho việc kết hợp giữa các bản tin trong hai thế giới thoại và dữ liệu. Với việc sử dụng Unified Messaging, người sử dụng có thể sử dụng điện thoại bấm số, máy tính cá nhân đa phương tiện, điện thoại điều khiển bằng tiếng nói, giao diện Web hoặc máy điện thoại di động với giao diện WAP để truy nhập một hộp thư duy nhất. Với sự hỗ trợ của công nghệ Push của mạng không dây, người sử dụng sẽ được thông báo khi có bản tin mới thông qua máy nhắn tin, điện thoại di động hoặc các thiết bị cầm tay khác. Người sử dụng sẽ biết được mức độ quan trọng của bản tin đó thông qua tên người gửi, thời gian gửi bản tin, độ dài bản tin và chủ đề của bản tin. Người sử dụng có thể soạn, chuyển tiếp hoặc lưu trữ bản tin đó dưới dạng Email hoặc Voicemail. 1.2.4. Instant Messaging Instant Messaging (hội thoại tức thời) cho phép hai hoặc nhiều người đối thoại trực tuyến qua mạng. Không giống như Email, giao tiếp giữa hai người diễn ra cùng một lúc khi sử dụng Instant Messaging. Không giống như chat vô danh, Instant Messaging cho phép tạo ra một danh sách những người bạn chat riêng và cho phép xác định bạn chat nào đang on-line. Những tính năng thông dụng của Instant Messaging bao gồm khả năng nhận biết bạn chat có on-line hay không hoặc nhận thông báo khi bạn chat on-line, khả năng trao đổi thông điệp tức thời, gửi ảnh, văn bản cũng như khả năng tham gia vào các phòng chat. Khi mạng có vấn đề làm gián đoạn cuộc hội thoại, Instant Messaging cho phép thực hiện chức năng của một hệ thống lưu trữ và chuyển sau (store and forward) để đảm bảo bạn chat vẫn nhận được thông điệp khi họ on-line trở lại. Một số ứng dụng Intstant Messaging còn cho phép tích hợp tính năng Voice Chat và cả WebCam như Yahoo Messenger. Những chương trình Instant Messenger nổi tiếng nhất hiện nay trên Internet là AIM (American Online Instant Messenger), Yahoo Messenger, Microsoft Messenger và ICQ. Theo như Jupiter Communications, Instant Messaging là một trong mười ứng dụng on-line hàng đầu ngày nay trên mạng Internet và số lượng người sử dụng Instant Messaging sẽ đạt con số trên 400 triệu vào năm 2006. Hiện tại, dịch vụ AIM của American Online đã có hơn 90 triệu người sử dụng, trao đổi hơn 1 tỷ thông điệp một ngày trong khi hàng ngày chỉ có 110 triệu Email được gửi đi. Có thể nói, Instant Messaging có sức cuốn hút cả người vị thành niên và người lớn và ngày càng lấn át Email để trở thành ứng dụng hàng đầu trên mạng Internet. Cùng với WAP, Instant Messaging sẽ có thêm hàng tỷ người sử dụng trên khắp thế giới. Người sử dụng sẽ có thể giao tiếp với bạn chat sử dụng máy tính cá nhân hoặc là máy điện thoại cầm tay. Các ứng dụng Instant Messaging có ưu điểm là chủ yếu chỉ truyền dữ liệu dạng văn bản. Vì vậy, các ứng dụng này có thể tối ứu hóa cho máy điện thoại di động với những hạn chế về bàn phím. Hãng AOL đã hợp tác với hãng Nokia, Motorola và các hãng sản xuất điện thoại di động khác để phát triển phần mềm AOL Mobile Messenger mới cho các thiết bị di động. Cả Microsoft cũng đã vào cuộc với phần mềm Microsoft Mobile Messenger. 1.2.5. Các dịch vụ thông tin (Information Services) World Wide Web từ lâu đã trở thành cơ sở dữ liệu phân tán lớn nhất thế giới. Đó là một mỏ thông tin vô giá khi bạn cần tra cứu thông tin. Mọi người truy nhập Web vào thời gian rảnh rỗi để tìm kiếm thông tin về lĩnh vực mà mình ưa thích, có thể là các sự kiện mới nhất, các thông tin về tiến bộ khoa học công nghệ hoặc các thông tin giật gân. Nói chung, các thông tin trên tràn ngập máy tính của bạn khi bạn truy nhập Web. Với các thiết bị WAP, việc bị quá tải bởi quá nhiều thông tin như trên sẽ không xảy ra. Những hạn chế của thiết bị đầu cuối WAP buộc các thông tin cung cấp qua WAP không những cần phải đơn giản và thân thiện với người sử dụng mà còn cần phải rõ ràng và có những giá trị tức thời. Điều quan trọng hơn là người sử dụng WAP mong muốn nhận được những thông tin mình mong muốn tại thời điểm mong muốn và với lượng thông tin. Những thông tin này cũng có thể được thay đổi phù hợp với từng người sử dụng, ví dụ như tự động thay đổi ngôn ngữ hoặc thay đổi nội dung theo vị trí của người sử dụng dịch vụ WAP. Ví dụ như một người khách du lịch đến New York có thể tìm hiểu về thời tiết tại New York hoặc thông tin về các quán ăn nổi tiếng ở New York cũng như đường đến các quán ăn đó từ vị trí hiện tại của thuê bao. Khác với những người sử dụng Web, những người sử dụng WAP cần những thông tin thay đổi theo từng phút ví dụ như những thông tin về chứng khoán, những thông tin theo vị trí thuê bao cũng như những thông tin chỉ đường hoặc đơn giản là những trò chơi và giải trí. Tương tự như với Web, người sử dụng dịch vụ WAP cũng có thể lưu lại các địa chỉ WAP Site thường xuyên truy nhập vào sổ bookmark, lưu trên thiết bị điện thoại di động hoặc lưu trên máy chủ. Tính năng này trở nên rất hữu ích đối với những thiết bị di động bị hạn chế về khả năng bàn phím. Những dịch vụ thông tin sau đây có thể được cung cấp qua giao diện WAP: Tin tức: Các tin tức xã hội, tài chính, chính trị, tin thể thao có thể cung cấp cho người sử dụng dịch vụ WAP với ngôn ngữ và dạng tùy chọn. Một số hãng thông tấn như CNN và Reuters đã cung cấp những thông tin này cho những người sử dụng di động. WAP còn cho phép quảng cáo dựa theo sở thích và vị trí của người sử dụng, với thông tin được đẩy (push) thẳng tới thiết bị đầu cuối của người sử dụng. Bản tin giao thông: Khi kết hợp giữa thông tin dạng văn bản và đồ họa, các thông tin về tình trạng giao thông trong thành phố có thể được cập nhật đến người sử dụng WAP. Ví dụ như thuê bao có thể xác định được tình trạng giao thông, mật độ xe trên các đường cao tốc và có thể định ra được các tuyến đường để tránh kẹt xe giờ cao điểm. Dự báo thời tiết kết hợp với dữ liệu về vị trí thuê bao: Thông tin dự báo thời tiết có thể được cập nhật từng phút đến người sử dụng dịch vụ WAP. Các hình ảnh dự báo thời tiết chụp từ vệ tinh cũng có thể được cung cấp tuỳ theo vị trí của thuê bao. Kết hợp với khả năng thông báo, những bản tin dự báo thời tiết này sẽ báo cho mọi người biết về nguy cơ xảy ra bão, vòi rồng hoặc bão tuyết. Các thông tin dự báo thời tiết này có thể được thay đổi tuỳ theo nhu cầu người sử dụng muốn biết thông tin về dự báo thời tiết biển, dự báo thời tiết cho tàu, cho người trượt tuyết hay người thường hay đánh golf. Việc nhận được thông tin dự báo thời tiết mọi lúc, mọi nơi sẽ giúp cho người sử dụng đưa ra những quyết định chính xác hơn. Các dịch vụ thông tin khác: Người sử dụng WAP có thể tìm kiếm số điện thoại và đường đi đến quán ăn Italia gần nhất, địa điểm có máy đổi tiền ATM gần nhất, lịch tàu chạy … Hơn thế nữa, người sử dụng WAP còn có thể xem các bản đồ trên màn hình điện thoại di động để tìm hiểu về một vùng xa lạ. Bản đồ này còn được cập nhật thường xuyên thông tin về tình trạng hiện tại của các tuyến đường. 1.2.6. Mobile Commerce Thương mại điện tử (E-Commerce) là việc triển khai các hoạt động thương mại qua mạng Internet bằng cách thiết lập thị trường trên mạng và chuyển tiền qua mạng. Thương mại điện tử bao gồm việc lưu trữ các kho hàng điện tử trên các Web Site, catalog on-line trên mạng về các mặt hàng rao bán, bao gồm các ứng dụng cho phép thay đổi giá động và triển khai các hoạt động xúc tiến bán hàng, đồng thời bao gồm các giao tiếp đến hệ thống thanh toán, chuyển khoản qua mạng. Thương mại điện tử là ứng dụng giao dịch phổ biến nhất và có sức phát triển mạnh mẽ nhất trên mạng Internet. Mobile Commerce (thương mại di động) mở rộng thêm khả năng giao tiếp của thương mại điện tử tới mọi khách hàng sử dụng điện thoại di động, đưa các kho hàng điện tử tới khách hàng ở mọi lúc, mọi nơi. Những tiến bộ trong công nghệ xác thực khách hàng cho phép thực hiện một cách an toàn các giao dịch kinh doanh giữa các Web Site bán hàng và thiết bị di động của khách hàng và của nhà cung cấp. Những ứng dụng chính của thương mại di động bao gồm: Ngân hàng điện tử: Người sử dụng WAP có thể kiểm tra số dư trong tài khoản ngân hàng, chuyển tiền giữa các tài khoản. Khách hàng sẽ bị cuốn hút bởi khả năng tự do thanh toán ở mọi nơi, không bị ràng buộc bởi các máy tính cá nhân, máy rút tiền ATM hoặc ngân hàng. Việc sử dụng thiết bị di động cho các giao dịch ngân hàng làm giảm thiểu chi phí của các nhà băng. Có đến 300.000 người hiện đang sử dụng các dịch vụ giao dịch ngân hàng trực tuyến qua các thiết bị di động tại Anh và tất cả các ngân hàng lớn ở Nhật Bản đều có dịch vụ e-banking tương thích với dịch vụ Internet không dây i-mode nổi tiếng của NTT DoCoMo. Theo Meridien Research, dự kiến có khoảng 40 triệu người sẽ sử dụng các dịch vụ tài chính điện tử qua thiết bị di động vào năm 2006 và hơn 70% các ngân hàng ở Châu Âu sẽ sử dụng dịch vụ này. Thanh toán hóa đơn: Thanh toán hóa đơn trực tuyến qua mạng mang lại cơ hội giảm chi phí in hóa đơn và chuyển hóa đơn đến khách hàng cho người bán hàng. Gartner Group dự báo rằng tỷ lệ phần trăm số người nội trợ tại Mỹ thanh toán qua mạng sẽ tăng từ 4% năm 1999 lên 70% vào năm 2009. Việc thanh toán hóa đơn qua mạng sử dụng thiết bị di động có thể thực hiện theo nhiều cách khác nhau. Ví dụ như người sử dụng có thể truy nhập Web Site của người bán hàng từ máy tính cá nhân và nhập vào các thông tin cần thiết về số tài khoản tại ngân hàng hoặc số thẻ tín dụng. Người sử dụng sau đó có thể sử dụng điện thoại di động để kiểm tra hạn thanh toán và số tiền của hóa đơn cần thanh toán. Chỉ cần sử dụng phím bấm của điện thoại di động, người sử dụng có thể xác nhận việc thanh toán từ một tài khoản ngân hàng hoặc một thẻ tín dụng. Hơn thế nữa, người sử dụng còn có thể chuyển tiền giữa các tài khoản tại ngân hàng. Vào một ngày nhất định trong tháng, người sử dụng có thể nhận được một thông báo nhắc trên điện thoại di động về việc cần phải thanh toán một khoản tiền nào đó. Mua bán hàng hóa và dịch vụ qua mạng: Thương mại di động cho phép người sử dụng mua hàng và dịch vụ sử dụng các thiết bị không dây. Ví dụ như khách hàng có thể đặt chỗ máy bay, mua vé xem ca nhạc và xem phim, chuyển hoa. Với thương mại di động, khách hàng sẽ được phục vụ tốt hơn, hợp với các sở thích cá nhân hơn. Ví dụ như với hồ sơ lưu về sở thích cá nhân của khách hàng, máy chủ sẽ đưa ra các lời khuyên thông minh dựa trên sở thích cá nhân của khách hàng, kết quả là khách hàng sẽ được đáp ứng nhanh hơn và hài lòng hơn. Việc thanh toán có thể được thực hiện thông qua các tài khoản trả trước, sử dụng tài khoản ngân hàng hoặc thẻ tín dụng hoặc tính thẳng vào hóa đơn cước điện thoại hàng tháng của khách hàng. Việc tính thẳng vào hóa đơn cước điện thoại hàng tháng của khách hàng đã trở nên phổ biến ở Nhật Bản và Châu Âu và khách hàng sẽ nhận được một hóa đơn tổng hợp vào cuối tháng. Hợp đồng: Hợp đồng qua mạng thông qua các thiết bị di động cũng là một ứng dụng khác của thương mại điện tử. Các ứng dụng điển hình của dạng hợp đồng này là các hợp đồng bảo hiểm và đánh bạc qua mạng. 1.2.7. Các dịch vụ giải trí trên WAP Các dịch vụ giải trí hiện nay là một trong những dịch vụ có số người sử dụng cao nhất trên mạng Internet. Một phần ba số người sử dụng Internet hiện nay tham gia vào các trò chơi trực tuyến trên mạng và các công ty chuyên về trò chơi đang cố gắng tấn công vào thị trường trò chơi qua máy điện thoại di động với những hạn chế về băng thông hẹp và hạn chế về khả năng của máy đầu cuối. Các trò chơi điện tử và giải trí sẽ thích hợp nhất với trẻ em và lứa tuổi vị thành niên, những người luôn cảm thấy sành điệu khi sử dụng những chiếc máy điện thoại di động có thể sử dụng những tính năng đặc biệt. Ví dụ như hãng Nintedo đã có kế hoạch phát triển trò chơi Pokemon, trò chơi phổ biến nhất hiện nay đối với trẻ em, cho các thiết bị Game Boy cầm tay. Cùng với bộ Adapter cho phép kết nối giữa thiết bị Game Boy và điện thoại di động, người sử dụng có thể chơi qua mạng với những người chơi khác. Đồng thời, trò chơi này còn cho phép kết nối tới máy chủ của Nintendo và thay đổi các tính cách khác nhau của Pokemon. Các trò chơi giao tiếp không đòi hỏi chất lượng dịch vụ cao và băng thông rộng là các ứng dụng thích hợp với WAP và Internet di động. Ví dụ như các trò chơi đánh cờ. Những người sử dụng mạng i-mode ở Nhật Bản đã rất quen thuộc với trò chơi gà ảo Tamagochi nổi tiếng cũng như các dịch vụ giải trí khác như tử vi, cá cược và dự đoán vận mệnh. Một trong những dịch vụ giải trí phổ biến khác của i-mode của NTT DoCoMo là dịch vụ Photonet cho phép người sử dụng chụp ảnh kỹ thuật số, tải lên máy chủ và sau đó tải về máy điện thoại di động. Các dịch vụ giải trí đầy tiềm năng khác là xổ số và cá cược. Ví dụ như một số WAP Site cho phép dự đoán đội nào sẽ vô địch giải bóng rổ nhà nghề NBA của Mỹ hoặc ai sẽ được bầu là tổng thống! Những người đoán đúng sẽ nhận được một phần thưởng nhỏ. Ở Hong Kong, điện thoại di động được sử dụng phổ biến để tham gia trò cá ngựa. 1.2.8. Các dịch vụ đa phương tiện Trên mạng Internet, các dịch vụ đa phương tiện (multimedia) cho phép tích hợp âm thanh, hình ảnh đồ họa, dữ liệu dạng văn bản và video. Một số dịch vụ đa phương tiện có thể triển khai với các thiết bị không dây bao gồm: Thư điện tử dạng video và bưu thiếp điện tử: Với các thiết bị đầu cuối di động thế hệ sau, người sử dụng sẽ có khả năng nhận và gửi Email kèm theo video, âm thanh, nhạc và hình ảnh. Trong thư điện tử đó, người sử dụng có thể chỉ đường dẫn URL đến Web Site có hình ảnh và âm thanh. Ví dụ như người sử dụng có thể lưu các tấm ảnh gia đình. Trong tương lai, máy quay phim (camera) sẽ được tích hợp với thiết bị đầu cuối di động hoặc PDA và giao tiếp với ứng dụng chạy trên thiết bị đầu cuối di động đó. Hình ảnh, âm thanh hoặc video sẽ được ghi lại từ máy quay, gửi kèm theo Email và tải lên máy chủ qua mạng không dây. Hội thảo truyền hình (Video Conference): Các thiết bị có tích hợp video như điện thoại di động và PDA có thể cho phép cha mẹ theo dõi con cái mà không cần dùng đến máy tính để bàn. Nếu như cả hai người tham gia vào cuộc gọi đều sử dụng điện thoại di động đa phương tiện, họ có thể thiết lập cuộc gọi video từ các thiết bị điện thoại di động. Ngoài ra, điện thoại di động có gắn video còn cho phép ông bà và các thành viên gia đình ở xa theo dõi một đứa trẻ ra đời ở bệnh viện. Một ứng dụng khác của điện thoại di động có tích hợp video là khả năng cho phép nhân viên bảo vệ theo dõi hình ảnh từ các máy quay an ninh qua màn hình điện thoại di động của họ. Các ứng dụng giải trí đa phương tiện: Công nghệ WAP tích hợp với đa phương tiện hỗ trợ thông tin mọi lúc, mọi nơi ví dụ như người sử dụng có thể xem trực tiếp một sự kiện quan trọng nào đó như bài phát biểu của tổng thống hoặc xem trực tiếp một trận bóng đá. Người sử dụng còn có thể tải về các bài hát mà mình ưa thích từ các WAP Site ca nhạc. Các trò chơi trực tuyến: Một số loại trò chơi đòi hỏi máy điện thoại di động phải hỗ trợ đa phương tiện. Đặc biệt, người sử dụng có thể tải trò chơi về máy điện thoại di động và sau đó chơi với máy chủ hoặc với những người chơi khác. Catalog đa phương tiện cho việc mua hàng trực tuyến trên mạng: Catalog đa phương tiện với màu sắc, hình ảnh, âm thanh và văn bản sẽ trở thành phương tiện quảng cáo rất phong phú cho các hàng hóa bán trên mạng. Chúng ta hãy thử tưởng tượng một người sử dụng muốn mua vé xem phim qua mạng từ thiết bị di động không dây. Anh ta sẽ có thể xem phần giới thiệu phim qua màn hình điện thoại di động và sẽ dễ dàng chọn phim cần mua vé. Một ứng dụng khác của catalog đa phương tiện có thể áp dụng cho người bán bất động sản khi muốn trình diễn cho người mua một đoạn video quay toàn cảnh ngôi nhà muốn bán nhằm tránh việc phải dẫn người mua đến tận nơi để xem ngôi nhà. 1.2.9. Các dịch vụ thoại mở rộng Công nghệ WAP ra đời đem lại khả năng hội tụ giữa thoại và số liệu hay hội tụ giữa Internet có dây và Internet không dây. Hãy thử tưởng tượng khi bạn đang truy nhập Internet từ máy điện thoại di động có hỗ trợ WAP, bạn sẽ nhận được bản tin báo có một cuộc gọi đến. Dựa trên mức độ quan trọng của cuộc gọi đến thông qua số gọi đến, bạn có thể trả lời cuộc gọi đó và sau đó lại tiếp tục phiên làm việc trên Internet khi kết thúc cuộc gọi hoặc có thể chuyển tiếp cuộc gọi đó vào hộp thư thoại. Các dịch vụ thoại mở rộng bao gồm các ứng dụng sau: Hộp thư di động ảo: Dịch vụ này mang lại khả năng truy nhập ảo vào một hộp thư trên mạng để lấy các bản tin đa phương tiện như thoại, Email và Fax. Một trong những nhược điểm của hộp thư thoại là các bản tin được ghi vào hộp thư thoại một cách tuần tự. Giao diện ảo của hộp thư di động ảo cho phép tìm kiếm các bản tin một cách tùy chọn và đặt độ ưu tiên cho các bản tin trong hộp thư. Xử lý các cuộc gọi đến: WAP, khi tích hợp với công nghệ mạng thông minh IN (Interligent Network), sẽ mang lại cho thuê bao các cách xử lý khác nhau đối với một cuộc gọi đến. Dựa trên số điện thoại của người gọi đến, thời gian cuộc gọi hoặc các tham số đặt trước khác, người sử dụng có thể quyết định trả lời cuộc gọi đó ngay lập tức khi đang truy nhập WAP, chuyển tiếp cuộc gọi đó đến máy điện thoại khác hoặc chuyển vào hộp thư thoại. Lưu các thông tin về số gọi đến vào sổ điện thoại: Nếu như số điện thoại của người gọi đến hiển thị, thuê bao WAP có thể lưu số điện thoại và tên người gọi vào sổ điện thoại hoặc danh mục địa chỉ liên hệ trên máy điện thoại di động hoặc trên máy chủ. Bằng cách này, WAP cho phép hợp nhất các ứng dụng thoại và dữ liệu. Thiết lập cuộc gọi hội nghị: Điện thoại di động có hỗ trợ WAP cho phép thiết lập cuộc gọi hội nghị (conference call) giữa nhiều người. Với giao diện ảo, người sử dụng có thể theo các hướng dẫn đơn giản trên màn hình để thiết lập một cuộc gọi hội nghị. Các ứng dụng quản lý dịch vụ thoại khác: WAP hỗ trợ các ứng dụng quản lý dịch vụ thoại khác. Ví dụ như WAP cho phép quản lý một cuộc gọi đang diễn ra. Người sử dụng có thể chuyển tiếp cuộc gọi đó đến máy điện thoại khác hoặc chuyển vào hộp thư thoại. Một dịch vụ đầy tiềm năng khác là ứng dụng cho phép người sử dụng thiết lập một danh sách cấm các cuộc gọi đến. Các bậc phụ huynh có thể cấm điện thoại của con, chỉ cho phép nhận cuộc gọi và gọi đến một số số điện thoại nhất định. Nhận dạng tiếng nói: Công nghệ nhận dạng tiếng nói ngày càng phát triển. Ngày nay, người sử dụng có thể quay số bằng giọng nói hoặc là sử dụng thực đơn tương tác. Nhận dạng tiếng nói rất phù hợp với điện thoại di động khi người sử dụng không thể dùng tay để quay số, ví dụ như khi đang bận lái xe. Công nghệ nhận dạng tiếng nói kết hợp với WAP cho phép ra lệnh tìm kiếm một thông tin nào đó trên Internet bằng tiếng nói. Sử dụng tiếng nói để soạn thảo và gửi Email là một ứng dụng đang được thử nghiệm. 1.2.10. Các dịch vụ khác trên WAP Cùng với sự ra đời của công nghệ WAP, các nhà khai thác đang triển khai rất nhiều dịch vụ khác nhau trên thế giới. Ví dụ như NTT DoCoMo đã cho triển khai dịch vụ tìm trẻ lạc trên mạng không dây. Mỗi đứa trẻ sẽ có một điện thoại dạng đồ chơi. Nếu đứa trẻ bị lạc, cha mẹ đứa trẻ đó sẽ tới một máy Fax và nhập vào số điện thoại cùng với mã truy nhập. Máy Fax sẽ in ra bản đồ vẽ vị trí của đứa trẻ trong một vùng có bán kính 100m. Trẻ cũng có thể bấm vào một nút trên điện thoại để báo cho cha mẹ về vị trí hiện tại của trẻ. Tại Phần Lan, người sử dụng có thể trả tiền mua đồ uống hoặc rửa xe bằng máy điện thoại di động. Sonera đang triển khai một dự án thử nghiệm cho phép người sử dụng mua hàng bằng các thiết bị không dây. Một ứng dụng khác liên quan đến chăm sóc sức khỏe. Một trong những Web Site trên mạng Internet là LogonHealth cho phép các bác sỹ kê đơn thuốc, kiểm tra các thông tin về sức khỏe bệnh nhân và truy nhập các thông tin khác của bệnh nhân thông qua thiết bị PDA không dây. Đơn thuốc sẽ được chuyển tới hiệu thuốc. Với thiết bị điện thoại di động có hỗ trợ WAP, người sử dụng sẽ nhận được bản tin thông báo khi đơn thuộc đã được xử lý. 1.2.11. Dịch vụ cung cấp nhạc chuông, hình ảnh Trong số các khách hàng dùng điện thoại di động thì một phần không nhỏ là giới trẻ. Chính vì thế việc tạo cho điện thoại của mình một phong cách riêng là điều họ luôn luôn mong muốn. Việc có được một nhạc chuông hay hình ảnh theo mong muốn của mình thì người dùng điện thoại chỉ cần gửi tin nhắn đến một số dịch vụ nào đó và họ phải trả một phí nhất định tùy thuộc vào nhà cung cấp dich vụ. 1.2.12. Tình hình các dịch vụ giá trị gia tăng trên di động ở Việt nam Trong những năm gần đây ở Việt nam cũng như nhiều nước trên thế giới bùng nổ một loại hình dịch vụ mới đó là các cuộc thi bình chọn bằng việc gửi các tin nhắn văn bản có cú pháp đến một tổng đài nào đó mà tiêu biểu của nó là cuộc thi dự đoán kết quả các trận đấu bóng đá. Bên cạnh đó là các dịch vụ cung cấp thông tin như thời tiết, giá vàng, tỷ giá ngoại tệ mạnh, kết quả xổ số,…Theo một thống kê thì trong năm 2005 tổng doanh thu của các dịch vụ này trên tất cả các mạng điện thoại di động của Việt nam vào khoảng 140 tỷ đồng. 1.3. Nhiệm vụ của đồ án tốt nghiệp Như đã trình bày ở phần trước các dịch vụ giá trị gia tăng trên điện thoại di động là rất nhiều và phức tạp. Để xây dựng được một dịch vụ nào đó đòi hỏi những điều kiện kỹ thuật về cả phần cứng và phần mềm và là sự kết hợp của nhiều doanh nghiệp,… Trong khuôn khổ đồ án tốt nghiệp này em sẽ tập trung vào hai nhiệm vụ chính sau: Tìm hiểu cơ sở lý thuyết cho phép xây dựng các dịch vụ giá trị gia tăng trên điện thoại di động.. Xây dựng hệ thống cung cấp các dịch vụ nội dung cho điện thoại di động: nhạc chuông, logo, hình ảnh dựa trên tin nhắn SMS, WAP và Web. CHƯƠNG 2 CƠ SỞ LÝ THUYẾT Nội dung chương này đề cập đến những vấn đề chính sau: Dịch vụ nhắn tin ngắn (SMS) Giao thức SMPP SMS Gateway GSM Modem WAP 2.1. Dịch vụ nhắn tin ngắn (SMS) SMS (Short Message Service) là dịch vụ nhắn tin ngắn cho phép gửi và nhận những tin nhắn dạng chữ số và ký tự giữa các thuê bao di động và các hệ thống bên ngoài như thư điện tử, hộp thư thoại. SMSC (Short Message Service Centrer) là trung tâm dịch vụ nhắn tin ngắn. SMSC là sự kết hợp giữa phần cứng và phần mềm. Mỗi SMSC có một số dịch vụ, mục đích là để gửi và nhận tin nhắn giữa các thuê bao di động. Khi người dùng điện thoại gửi tin nhắn cho một ai đó thì trước tiên nó sẽ được gửi đến SMSC. SMSC lưu lại tin nhắn đó để chuyển đến người nhận bất cứ khi nào điện thoại người nhận còn trong vùng phủ sóng. Nếu thuê bao đó ngoài vùng phủ sóng, tắt máy hoặc không tồn tại thì tin nhắn đó được lưu lại trên SMSC trong một khoảng thời gian đã được cấu hình trước. Mỗi một mạng điện thoại phải có tối thiểu một số dịch vụ. Ngoài ra SMSC còn có vai trò trong việc tính cước. SMSC còn hỗ trợ rất nhiều giao thức kết nối mà hay dùng nhất là giao thức SMPP. Chính vì thế sẽ có rất nhiều ứng dụng được xây dựng dựa trên các giao thức đó. Hình 2.1: Kiến trúc mạng cơ bản khi triển khai SMS SME (Short Messaging Entities) là tên gọi của điện thoại di động hay trung tâm dịch vụ. ESME (External Short Messaging Entities) là tên gọi chung nhất cho tất cả các thiết bị khác với SME nhưng cũng có thể nhận hoặc gửi tin nhắn như: Voice mail, Web, Email,... Hình 2.2: Cơ sở hạ tầng mạng thực hiện các dịch vụ ESME SMS xuất hiện lần đầu tiên vào năm 1991 tại châu Âu. Tổ chức tiêu chuẩn cho các thiết bị số di động của châu Âu – GSM (Global System for Mobile Communications) đã đưa ra khái niệm này. Ở Bắc Mỹ thì SMS được đưa ngay vào các thiết bị và mạng di động ngay từ đầu bởi những nhà tiên phong như BellSouth Mobility, PrimeCo, và Nextel,… Tin nhắn trên các thiết bị di động là một trong những ứng dụng đầu tiên làm thay đổi căn bản từ giao tiếp điện thoại đơn thuần trở thành một giao tiếp phức hợp bao gồm đàm thoại, nhắn tin, duyệt web. Nếu như các mạch chuyển dữ liệu lúc đầu được thiết lập để chuyển các giao tiếp thoại thì giờ đây có rất nhiều dạng dữ liệu được chuyển qua chúng. Sự thành công của những ứng dụng mới này được đánh giá bởi sự tiện lợi mà nó đem lại cho người sử dụng. Cùng với sự phát triển về phần cứng của các loại điện thoại di động thì các nhà sản xuất điện thoại di động mà đi đầu là hãng Nokia đã đưa ra một chuẩn mới đó là Smart SMS, nghĩa là dựa trên cơ sở của dịch vụ nhắn tin ngắn thì giờ đây người dùng điện thoại di động không chỉ nhắn tin dưới dạng văn bản cho nhau mà còn có thể gửi nhạc chuông đơn âm, hình nền, logo đen trắng. Từ năm 2001 các hãng điện thoại khác như Samsung cũng bắt đầu đưa chuẩn trên vào các loại điện thoại của mình. Các tin nhắn này được gửi dưới dạng tin nhắn nhị phân chứ không phải dạng text. Cụ thể là các loại sau: • Gửi và nhận bussiness card • Gửi và nhận cấu hình WAP, GPRS, WAP Push • Gửi và nhận lịch • Gửi và nhận nhạc chuông đơn âm • Gửi và nhận logo, hình ảnh đen trắng • Gửi và nhận multipart message 2.2. Giao thức SMPP 2.2.1. Định nghĩa SMPP là chữ viết tắt của Short Message Peer to Peer là một giao thức mở và là chuẩn công nghiệp được sử dụng trong việc truyền nhận dữ liệu dưới dạng tin nhắn giữa các External Short Message Entities (ESME), Routing Entities (RE) và Message Centres(MC). MC là cách gọi chung nhất cho các tổng đài tin nhắn SMSC(Short Message Service Centre). Quan hệ giữa các thành phần trên được mô tả qua hình vẽ sau: Hình 2.3: Mạng các ứng dụng dùng giao thức SMPP 2.2.2. Phiên bản SMPP Vì SMPP là một chuẩn công nghiệp theo dạng mở cho nên nó vẫn đang tiếp tục được xây dựng và hoàn thiện. Phiên bản 1.0 ra bắt đầu được xây dựng bởi công ty Aldiscon Ltd (bây giờ là Logica Ltd) và được công ty này xây dựng đến phiên bản 4.0. SMS Forum bắt đầu xây dựng phiên bản 3.4 dựa trên phiên bản 3.3 và hiện nay đã cho ra đời phiên bản 5.0. 2.2.3. Những công nghệ điện thoại di dộng được hỗ trợ bởi SMPP Hiện nay SMPP hỗ trợ hầu hết các mạng di động và sau đây là danh sách: • GSM • UMTS • IS-95 (CDMA) • ANSI-136 • iDEN 2.3.4. Phiên giao dịch SMPP Trong trình tự sử dụng giao thức SMPP thì một phiên giao dịch SMPP cần được thiết lập giữa ESME và MC hoặc SMPP Routing Entity. Việc thiết lập một phiên giao dịch thường được khởi tạo bởi ESME và chạy trên tầng ứng dụng trong mô hình OSI của mạng kết nối theo TCP/IP hoặc X25. Tuy nhiên việc khởi tạo phiên giao dịch cũng có thể được thiết lập bởi MC. Hình 2.4: Kết nối ở tầng ứng dụng giữa ESME và MC Như đã mô tả ở trên ESME bắt đầu một phiên bằng việc kết tới MC qua mạng TCP/IP hoặc X25. Sự kết nối này được gọi là một phiên giao dịch SMPP và có những trạng thái sau đây: Open ESME thiết lập kết nối mạng tới MC nhưng chưa gửi bất kỳ một lệnh yêu cầu kết nối nào cả. MC chỉ hỗ trợ kết nối qua giao thức TCP/IP và X25 và chưa có sự thay đổi nào cả. Hình 2.5: Trạng thái Open Bound_TX Sau khi kết nối mạng thì ESME gửi một yêu cầu kết nối dưới dạng transmitter (sử dụng một bind_transmitter PDU) và nhận một phản hồi dưới dạng bind_transmitter_resp PDU từ MC. ESME có thể gửi một SMS đến MC hoặc chuyển tiếp tới một thuê bao di động hoặc một ESME khác. ESME cũng có thể thay thế, truy vấn hay hoãn tin đã gửi. Hình 2.6: Trạng thái Bound_TX Bound_RX: Sau khi kết nối mạng thì ESME gửi một yêu cầu kết nối dưới dạng receiver (sử dụng một bind_receiver PDU) và nhận một phản hồi dưới dạng bind_receiver_resp PDU từ MC. ESME có thể nhận một SMS từ MC được gửi từ một thuê bao di động hoặc một ESME khác hoặc chính MC. Hình: Trạng thái Bound_RX Hình 2.7: Trạng thái Bound_RX Bound_TRX: Bound_TRX là sự kết hợp giữa Bound_TX và Bound_RX. Theo đó EMSE có thể vừa gửi và nhận tin nhắn từ một MC. Hình 2.8: Trạng thái Bound_TRX Unbound: Đây là trạng thái ESME gửi một yêu cầu để kết thúc một phiên giao dịch SMPP Closed: ESME hoặc MC đóng kết nối mạng. Outbound: Trong các trạng thái trên thì việc thiết lập phiên giao dịch SMPP đều được thực hiện bởi ESME nhưng việc thiết lập này cũng có thể thực hiện được bởi thao tác outbind. Hình 2.9: Trạng thái Outbound Sau đây là hình minh họa khi sử dụng yêu cầu kết nối dưới dạng receiver sau khi thiết lập dưới dạng Outbound: Hình 2.9: Một phiên thiết lập bởi outbind và kết nối dạng receiver 2.3.5. Gửi nhận tin nhắn qua SMPP Gửi tin nhắn văn bản Thao tác và tham số được sử dụng Có 2 thao tác và 2 trường được sử dụng để gửi tin nhắn văn bản đến SMSC. Thao tác Một ứng dụng ESME có thể gửi tin nhắn văn bản bằng 2 thao tác submit_sm và data_sm. Thao tác submit_sm chỉ được sử dụng bởi ESME để gửi mộ tin nhắn ngắn đến SMSC để chuyển tới một SME cụ thể. Thao tác data_sm sử dụng để truyền dữ liệu giữa SMSC và ESME, nghĩa là tin nhắn có thể được gửi từ ESME đến SMSC và ngược lại. Thao tác này là một thay thế cho 2 thao tác submit_sm và diliver_sm. Tham số Khi sử dụng thao tác submit_sm nội dung tin nhắn văn bản cần được chèn vào một trong 2 tham số sau: short_message (bắt buộc) và message_payload (tùy chọn). Sử dụng cả hai tham số cùng một lúc là không được phép. Khi sử dụng tham số short_message thì trường sms_length là chiều dài của dữ liệu phải được thiết lập. Nếu tham số message_payload được dùng thì trường sms_length cũng được dùng và được thiết lập giá trị 0 để chỉ ra rằng tham số message_payload. Khi sử dụng thao tác data_sm thì dữ liệu tin nhắn văn bản chỉ được chèn vào tham số message_payload còn tham số sms_length thì không hiện thị. Với 2 thao tác trên thì có 256 octec được chèn vào tham số short_message còn tham số message_payload có thể chứa tới 64K octec. Tuy nhiên chuẩn GSM chỉ hỗ trợ đến 140 octec chính vì thế thông thường SMSC sẽ không chấp nhận thao tác lớn hơn mà tham số chứa hơn 140 octec, trừ khi nó thiết lập kỹ thuật ghép nối tự động nghĩa là một tin nhắn dài được chia thành nhiều phần mà mỗi phần chứa tối đa 140 octec. Mã hóa dữ liệu và kích thước Mã hóa dữ liệu Khi gửi ký tự từ ESME đến SMSC, điều quan trọng nhất là việc mã hóa. Việc mã hóa này phải đảm bảo nội dung của tin nhắn được SMSC gửi đến các thuê bao sẽ hiện thị đúng như những gì ESME đã gửi. GSM định nghĩa hai chuẩn mã hóa ký tự sau: GSM Default Alphabet (7-bits) UCS2 (16-bits) GSM Default Alphabet tương tự như nửa đầu bảng mã ASCII ( từ 0 đến 127). Giao thức SMPP thì lại hỗ trợ nhiều loại mã hóa ký tự. Thông thường là các loại sau đây: SMPP Default Alphabet (7-bits) LATIN-1 (8-bits) US ASCII (7-bits) UCS2 (16-bits) Hình 2.10: Các cách mã hóa hỗ trợ bởi ESME, SMSC và Điện thoại di động Kích thước Như đã đề cập ở phần trước, số tối đa ký tự là 140 octec. Với 140 octec thì sẽ tương đương với 160 ký tự 7-bit, 140 ký tự 8-bit và 70 ký tự 16 bit. Bộ ký tự Tham số mã hóa Bộ ký tự Số ký tự tối đa SMSC mặc định 0x00 GSM mặc định 160 LATIN-1 0x03 GSM mặc định 160 UCS2 0x08 UCS2 70 Bảng 2.1: Số tối đa ký tự được gửi ứng với từng loại mã Tin nhắn dài và ghép nối tin nhắn Một ứng dụng đòi hỏi gửi một tin nhắn văn bản dài hơn 160 ký tự có thể được gửi bằng cách sử dụng tham số message_payload với kích thước tối đa là 64K. Tuy nhiên kích thước tối đa còn phụ thuộc vào SMSC. Vì thế có một cách khác để gửi tin nhắn văn bản dài hơn 160 ký tự đó là kỹ thuật ghép nối tin nhắn. Một tin nhắn dài trước khi được gửi đi sẽ được chia thành nhiều tin nhắn nhỏ nhưng đến khi điện thoại di động nhận được thì chúng sẽ tự động ghép lại thành một tin nhắn. Kỹ thuật này được thực hiện bởi hai phương pháp sau đây: GSM User data header SMPP parameter Phương pháp sử dụng GSM User data header Theo chuẩn GSM phần dữ liệu tin nhắn có một phần gọi là User Data Header (UDH). Để sử dụng trong việc ghép nối tin nhắn thì UDH cần chứa các thông tin sau: Nhóm của các tin nhắn ngắn (các tin nhắn của cùng một tin nhắn dài được tách ra được coi là thuộc một nhóm) Số lượng tin nhắn ngắn trong một nhóm Thứ tự của tin nhắn trong nhóm Những thông tin sau sẽ giúp cho việc ghép nối các tin nhắn lại với nhau theo đúng thứ tự bất cứ khi nào nhận đủ tất cả các tin nhắn trong cùng một nhóm. Để sử dụng tin nhắn dài thì User Data Header Indication (UDHI) phải được thiết lập trong tham số esm_class và phần UDHI phải được để trước phần dữ liệu. Giá trị tham số Esm_class Thiết lập UDH Bit 6 = 1 Có Bit 6 = 0 Không Bảng 2.2: Thiết lập sử dụng UDH Ví dụ trong trường hợp 2 tin nhắn UDH SM 1 : UDHL=05 IEI(1)=00 IEIDL(1)=03 IED(1)=64 IED(1)=02 IED(1)=01 DATA SM 1 : UDH SM 2 : UDHL=05 IEI(1)=00 IEIDL(1)=03 IED(1)=64 IED(1)=02 IED(1)=02 DATA SM 1 : User Data Header là một phần của dữ liệu điều đó có nghĩa khi sử dụng UDH thì dung lượng dữ liệu sẽ giảm đi. Dung lượng này phụ thuộc vào các mã hóa: Mã hóa Số lượng ký tự tối đa 8 bit 134 7 bit 153 16 bit 67 Bảng 2.3: Số lượng tối đa ký tự khi sử dụng UDH Phương pháp sử dụng SMPP parameter Giao thức SMPP hỗ trợ một trong các tham số tùy chọn sau đây trong việc thiết lập ghép nối tin nhắn. Sử dụng tham số của SMPP trong môi trường GSM là kết quả của việc sử dụng UDH được mô tả ở phần trên nhưng định dạng lại được qui định ở phía SMSC chứ không phải phía ứng dụng ESME. Nó làm dễ dàng hơn trong việc ghép nối tin nhắn. Sau đây là danh sách các tham số cần thiết lập trong mỗi tin nhắn ngắn: Loại tham số Giải thích Sar_msg_ref_num Số lượng đoạn được truyền song song Sar_total_segments Tổng số tin nhắn Sar_segements_seqnum Trình tự của mỗi tin nhắn Bảng 2.4: Tham số SMPP trong việc ghép nối tin nhắn Gửi dữ liệu nhị phân, nhạc chuông, logo Thao tác và tham số Có 2 thao tác và 2 trường được sử dụng để gửi tin nhắn dữ liệu nhị phân đến SMSC. Thao tác Một ứng dụng ESME có thể gửi tin nhắn nhị phân bằng 2 thao tác submit_sm và data_sm. Thao tác submit_sm chỉ được sử dụng bởi ESME để gửi mộ tin nhắn ngắn đến SMSC để chuyển tới một SME cụ thể. Thao tác data_sm sử dụng để truyền dữ liệu giữa SMSC và ESME, nghĩa là tin nhắn có thể được gửi từ ESME đến SMSC và ngược lại. Thao tác này là một thay thế cho 2 thao tác submit_sm và diliver_sm. Tham số Khi sử dụng thao tác submit_sm nội dung tin nhắn nhị phân cần được chèn vào một trong 2 tham số sau: short_message (bắt buộc) và message_payload (tùy chọn). Sử dụng cả hai tham số cùng một lúc là không được phép. Khi sử dụng tham số short_message thì trường sms_length là chiều dài của dữ liệu phải được thiết lập. Nếu tham số message_payload được dùng thì trường sms_length cũng được dùng và được thiết lập giá trị 0 để chỉ ra rằng tham số message_payload. Khi sử dụng thao tác data_sm thì dữ liệu tin nhắn nhị phân chỉ được chèn vào tham số message_payload còn tham số sms_length thì không hiện thị. Với 2 thao tác trên thì có 256 octec được chèn vào tham số short_message còn tham số message_payload có thể chứa tới 64K octec. Tuy nhiên chuẩn GSM chỉ hỗ trợ đến 140 octec chính vì thế thông thường SMSC sẽ không chấp nhận thao tác lớn hơn mà tham số chứa hơn 140 octec, trừ khi nó thiết lập kỹ thuật ghép nối tự động nghĩa là một tin nhắn dài được chia thành nhiều phần mà mỗi phần chứa tối đa 140 octec. Mã hóa Một ứng dụng ESME sử dụng mã nhị phân để gửi dữ liệu không phải dạng ký tự như nhạc chuông hay logo. Để làm được việc này thì tham số data_coding phải được thiết lập giá trị 0x04. UDH (User Data Header) Ở phần trước đã trình bày qua về UDH trong việc ghép nối tin nhắn trong trường hợp tin nhắn dài.Ngoài ra UDH cho phép người dùng gửi dữ liệu theo định dạng đặc biệt như nhạc chuông hay logo. Các thành phần của UDH UDHL User Date Header Length IEI Information Element Identifier IEIDL Information Element Identifier Data Length IED Information Element Data Sau đây là việc gửi nhạc chuông qua việc gửi 2 tin nhắn ngắn: UDH SM 1 : UDHL=0B IEI(1)=05 IEIDL(1)=04 IED(1)=15810000 IEI(2)=00 IEIDL(2)=03 IED(2)=010201 Data SM 1 : 024A3A5DA5D185B1A58… UDH SM 2 : UDHL=0B IEI(1)=05 IEIDL(1)=04 IED(1)=15810000 IEI(2)=00 IEIDL(2)=03 IED(2)=010202 Data SM 2 : B49C0920930AB12718A… Trong đó: 0B là tổng chiều dài của UDH 0504158100000 nghĩa là địa chỉ ứng dụng dưới dạng 16 bit với cổng đích là 1581 và cổng khởi tạo là 0000 0003010201 cho biết tin nhắn được tách làm 2 và đây là tin nhắn thứ nhất. Ví dụ: Khi gửi nhạc chuông Nokia thì UDH = 06050415831583 còn gửi logo Nokia thì UDH = 06050415821582. 2.3. SMS Gateway 2.3.1. Khái niệm SMS Gateway là một phần mềm cho phép kết nối để gửi và nhận tin nhắn từ máy tính đến một tổng đài SMSC hoặc một GSM Modem. Một tổng đài tin nhắn SMSC không chỉ hỗ trợ giao thức SMPP mà có thể hỗ trợ rất nhiều giao thức khác như HTTP, UCP/EMI, CIMD2,…Tuy nhiên SMPP là giao thức phổ biến. Song song với việc xây dựng giao thức SMPP thì các phần mềm SMS Gateway cũng ra đời dưới dạng cả phần mềm đóng và phần mềm mã nguồn mở. Hiện nay có rất nhiều sản phẩm SMS Gateway có bản quyền như Exomi SMS Gateway, NowSMS và phần mềm mã nguồn mở như Kannel chạy trên nền tảng hệ điều hành Linux. Các sản phẩm này cho phép người ta xây dựng các hệ thống giá trị gia tăng trên điện thoại di động mà không cần phải quá quan tâm đến chi tiết của các giao thức gửi nhận tin nhắn mà họ sử dụng. 2.3.2. Kannel SMS Gateway Giới thiệu Kannel là một phần mềm mã nguồn mở được khởi tạo bởi Wapit Ltd vào tháng 6 năm 1999 và được tiếp tục phát triển cho đến nay bởi Kannel Group. Kannel hoạt động như là một SMS Gateway và WAP Gateway. Ngoài ra nó còn có thể hoạt động như một Push Proxy Gateway. Phiên bản mới nhất tính tới thời điểm hiện tại là 1.4.0. Tháng 7 năm 2001, Kannel là phần mềm đầu tiên được WAP Forum chứng nhận là WAP 1.1 gateway và đến tháng 10 năm 2004 thì WAP Forum chứng nhận là WAP 2.0 gateway. Một điều vô cùng quan trọng là Kannel hỗ trợ rất nhiều chuẩn kết nối tới SMS Center trong đó có SMPP – chuẩn giao thức kết nối được dùng bởi hầu hết các nhà cung cấp dịch vụ ở Việt Nam (Vinaphone, Mobiphone, Viettel mobile). Kannel được phát triển chính cho môi trường Linux và có thể khá dễ dàng chuyển sang dùng trên các hệ thống Unix. Để cài đặt và sử dụng Kannel cần phải có các phần mềm sau trong hệ thống: Trình biên dịch C và các thư viện phát triển phần mềm cùng các công cụ liên quan. Gnome-xml (khuyến cáo dùng libxml 2.2.5). GNU Make POSIX threads (pthread.h). Cài đặt Kannel Đầu tiên cần tải về mã nguồn của Kannel tại Sau đó chuyển tới thư mục mà bạn lưu file và thực hiện các lệnh sau: bzip2 -cd gateway-1.4.0.tar.bz2 | tar xf – cd gateway-1.4.0 ./configure --prefix=$install_dir --enable-start-stop-daemon make make install Với $install_dir là thư mục mà bạn sẽ cài kannel vào. Sau khi thực hiện thành công, trong thư mục $install_dir/sbin sẽ có các file sau: bearerbox, smsbox, wapbox …. File bearerbox là file thực thi chính cho hệ thống của Kannel, nó sẽ kết nối các thành phần khác của Kannel và phụ trách việc kết nối tới các SMS Center. File smsbox chính là file đảm nhiệm chức năng gửi nhận tin nhắn SMS. File wapbox đảm nhiệm chức năng của WAP Gateway. Sử dụng Kannel Để sử dụng Kannel, cần phải tạo ra file cấu hình cho hệ thống. File này thực ra là một file văn bản chứa các nhóm của các biến cấu hình của hệ thống. Các nhóm được chia ra bởi các dòng không có gì. Nhóm cấu hình sẽ được biểu lộ bởi biến group. Các dòng chú thích có thể đặt sau dấu # và các dòng này sẽ bị bỏ qua. Các dòng định nghĩa các biến cấu hình có tên của biến đó, dấu bằng ( = ) và giá trị tương ứng được gán cho biến đó. Tên của biến có thể chứa bất kỳ ký tự nào ngoại trừ dấu trắng và dấu bằng ( = ). Giá trị của biến là một xâu có thể có cặp dấu “” bao quanh chúng. Cặp dấu “” có tác dụng khi mà giá trị của biến đó có các dấu trắng ở đầu hay cuối (bình thường các dấu này sẽ bị bỏ đi). Sau đây là một ví dụ: # A do-nothing service. group = sms-service keyword = nop text = "You asked nothing and I did it!" # Default service. group = sms-service keyword = default text = "No services defined" Cũng có thể dùng include để ghép các file cấu hình nhỏ vào vị trí dùng include. Điều này giúp việc quản trị file cấu hình trong những hệ thống lớn dễ dàng và hiệu quả hơn. Chúng ta có thể ghép một file hay tất cả các file trong một thư mục. Ví dụ: #include one file include = "file.conf" #include one directory include = "conf_dir" Sau đây là cách thiết lập cấu hình cho các nhóm cần thiết để Kannel có thể hoạt động như một SMS Gateway và kết nối tới SMS Center thông qua giao thức SMPP phiên bản 3.4. Để đơn giản chúng ta sẽ chỉ nêu ra những thành phần cần thiết nhất, các thành phần còn lại có thể tham khảo thêm trong Nhóm core Đây là nhóm bắt buộc phải có và thường là nhóm đầu tiên trong tệp cấu hình. Nhóm này chứa các cấu hình chung cho hoạt động của toàn hệ thống. Sau đây là danh sách các biến cấu hình trong nhóm này và ý nghĩa của chúng: group: Bắt buộc phải là “core”. admin-port: Cổng mà bearerbox đợi các lệnh điều khiển thông qua giao thức HTTP. Các lệnh điều khiển này bao gồm các lệnh như tạm dừng hệ thống (suspend), cho hệ thống tiếp tục chạy (resume), khởi động lại hệ thống (restart), tắt hệ thống (shutdown), xem trạng thái của hệ thống (status) … admin-password: Mật khẩu cần khi thực hiện các lệnh điều khiển. smsbox-port: Đây là cổng mà bearerbox sẽ mở ra để đợi kết nối từ các smsbox. Tham số này giúp cho nhiều smsbox có thể kết nối tới một bearerbox và smsbox không nhất thiết phải chạy trên cùng một máy tính với bearerbox. Nếu không chỉ định tham số này thì bearerbox sẽ không mở cổng để đợi kết nối từ smsbox và vì vậy Kannel sẽ không xử lý bất kỳ một tin SMS nào. Trong trường hợp này các chức năng của SMS Gateway sẽ không được sử dụng. wapbox-port:Cũng giống như smsbox-port, nhưng là cho các kết nối từ wapbox. Trong trường hợp không chỉ định các chức năng của WAP Gateway sẽ không được sử dụng. box-deny-ip: Danh sách các địa chỉ IP không được phép kết nối tới bearerbox. Có thể dùng dấu ‘*’ để đại diện cho một số bất kỳ. Các địa chỉ được phân cách bởi dấu ‘;’. box-allow-ip: Danh sách các địa chỉ IP được phép kết nối tới bearerbox, ngay cả khi nó nằm trong danh sách box-deny-ip. access-log: Tên của tệp sẽ ghi lại các thông tin về việc gửi nhận tin nhắn SMS qua hệ thống. Nhóm smsc Nhóm này chứa các cấu hình cho việc kết nối tới SMS Center. Nó bao gồm một số các biến cấu hình chung cho tất cả các loại SMS Center và một số biến cấu hình đặc thù cho từng loại SMS Center. Các biến cấu hình chung: group: Bắt buộc phải là “smsc”. smsc: Là xâu chỉ định loại SMS Center. Với các SMS Center dùng giao thức SMPP thì nó là “smpp”. smsc-id: Là bí danh của SMS Center này. Khi gửi tin nhắn với tham số smsc trùng với bí danh của SMS Center nào thì tin nhắn sẽ được gửi tới SMS Center đó. Điều này giúp cho việc gửi tin nhắn hiệu quả hơn. Ví dụ khi cần gửi tới 1 thuê bao trong mạng Vinaphone thì việc gửi qua SMS Center của Vinaphone sẽ nhanh hơn nhiều so với việc gửi tin qua SMS Center của Viettel Mobile. denied-smsc-id: Nếu như không tìm thấy SMS Center có bí danh được chỉ định hay hiện tại không kết nối được tới SMS Center đó thì Kannel tiến hành quá trình chọn đường đi cho tin nhắn. Với những tin có smsc chỉ định nằm trong danh sách này sẽ không bao giờ được đi qua SMS Center này. Các phần tử được phân cách bởi dấu trắng. allowed-smsc-id: Chỉ các tin nhắn có smsc chỉ định nằm trong danh sách này mới đi qua được SMS Center này. allowed-prefix: Danh sách các tiền tố của số điện thoại nhận tin được cho phép qua SMS Center này. Ví dụ nếu là SMS Center của Vinaphone thì chúng ta có thể đặt biến này bằng “+8491;8491;091”. denied-prefix: Danh sách các tiền tố của số điện thoại nhận tin không cho phép qua SMS Center này. Ví dụ nếu là SMS Center của Vinaphone thì chúng ta có thể đặt biến này bằng “+8490;8490;090;+8498;8498;098”. reconnect-delay: Số lượng giây đợi giữa hai lần cố gắng tạo lại kết nối.Mặc định là 10s. Các biến cấu hình cho các SMS Center dùng giao thức SMPP phiên bản 3.4: host: Địa chỉ IP của máy đang thực thi SMS Center. port: Cổng dùng để kết nối tới SMS Center. transceiver-mode: Là giá trị logic, nếu là true thì sẽ cố gắng sử dụng chế độ TRANSCEIVER để kết nối tới SMS Center. Đây là tính năng mới của giao thức SMPP phiên bản 3.4. Các phiên bản trước sẽ không hỗ trợ tính năng này. Khi dùng nó thì việc gửi và nhận tin nhắn sẽ trên cùng một kết nối và sẽ không cần thiết phải đặt receive-port. receive-port: Cổng sẽ thực hiện các kết nối RECEIVER tới SMS Center. Các kết nối này phụ trách việc kiểm tra tin nhắn mới và lấy về. Nó có thể có cùng giá trị với port. smsc-username: Tài khoản mà nhà cung cấp dịch vụ cung cấp để kết nối tới SMS Center của họ. smsc-password: Mật khẩu tương ứng với tài khoản được cung cấp. system-type: Thường là VMA (viết tắt cho Voice Mail Activation). interface-version: Là phiên bản của giao thức SMPP được SMS Center dùng. Mặc định sẽ là “34” (phiên bản 3.4). Với phiên bản 3.3 sẽ là “33”. address-range: Là dải số mà nhà cung cấp dịch vụ cấp cho. Ví dụ với công ty VMG là 8xxx (8009 - 8709). source-addr-ton: Giá trị của TON (Type of number) của địa chỉ gửi tin. Bằng 0 cho Unknown (SMS Center sẽ tự xác định) hoặc bằng 1 cho mạng ISDN (Integrated Services Digital Network - mạng được dùng bởi điện thoại số). source-addr-npi: Giá trị của NPI (Numbering plan indicator). Ý nghĩa cũng giống như TON. Việc kết hợp hai giá trị TON và NPI sẽ lựa chọn ra kiểu của địa chỉ là chữ hay số, có phải là số điện thoại theo kiểu toàn cầu (có mã nước hay không), ….Thường thì các thông số này phụ thuộc vào SMS Center của nhà cung cấp dịch vụ. source-addr-autodetect: Nếu đặt bằng yes Kannel sẽ cố gắng thử các giá trị có thể của source-addr-ton và source-addr-npi. dest-addr-ton: Tương tự như trên nhưng là cho số điện thoại nhận tin. dest-addr-npi: Tương tự như trên nhưng là cho số điện thoại nhận tin. connection-timeout: Thời gian tối đa giữa hai lần có trao đổi với SMS Center, mặc định là 300s. Nếu vượt quá thời gian này Kannel sẽ coi rằng kết nối đó không còn hoạt động và sẽ tạo lại kết nối. Đặt bằng 0 để tắt chức năng này. Nhóm smsbox Nhóm này bắt buộc phải được thêm vào tệp cấu hình thì mới có thể sử dụng Kannel như một SMS Gateway. Nhóm này chứa các tham số cấu hình cho smsbox. Module smsbox khi được thực thi sẽ kết nối tới bearerbox và nhận các tin nhắn từ SMS Center đồng thời cung cấp một giao diện để gửi tin nhắn qua giao thức HTTP. Sau đây là các biến cấu hình cho nhóm này: group: Bắt buộc phải là “smsbox” bearerbox-host: Địa chỉ của máy chạy bearerbox sendsms-port: Cổng dùng để gửi tin nhắn thông qua giao thức HTTP. sendsms-url: Địa chỉ URL của dịch vụ gửi tin nhắn. Mặc định là /cgi-bin/sendsms global-sender: Nếu như được đặt thì tất cả các tin nhắn gửi ra ngoài sẽ được tự động đặt số điện thoại gửi tin là số này. access-log: Tên file ghi các thông tin về việc gửi nhận các tin thông qua smsbox này. reply-couldnotfetch: Tin nhắn trả về cho điện thoại nếu như không thể lấy được nội dung tin nhắn trả về. reply-couldnotrepresent: Tin nhắn trả về cho điện thoại nếu như không thể đóng gói kết quả trả về thành tin nhắn SMS. reply-requestfailed: Tin nhắn trả về cho điện thoại nếu như khi không thể kết nối đến dịch vụ HTTP. reply-emptymessage: Tin nhắn trả về khi nội dung trả về là rỗng. http-request-retry: Số lần cố gắng làm lại khi gọi yêu cầu HTTP bị lỗi. http-queue-delay: Thời gian dừng để đợi giữa hai lần làm lại. Nhóm sms-service Nhóm này sẽ cấu hình việc xử lý tin nhắn tới hệ thống. Mỗi khi có một tin nhắn tới Kannel sẽ truyền nội dung của tin nhắn tới thành phần khác để xử lý tin. Việc truyền này có thể là gọi trực tiếp tệp thực thi của thành phần đó hay một yêu cầu HTTP. Sau đây các biến cấu hình của nhóm này: group: Bắt buộc phải là “sms-service” keyword: Là một từ. Từ này sẽ được dùng để phân biệt giữa các dịch vụ với nhau. Một tin nhắn sẽ được phân tách bởi nhiều từ. Từ đầu tiên trong nội dung tin sẽ được coi là từ khoá. Tin nhắn nào có từ đầu tiên trùng với biến cấu hình này sẽ được xử lý bởi dịch vụ này. Ngoài ra việc chỉ định số tham số để truyền cho module xử lý tin nhắn cũng ảnh hưởng đến việc chọn dịch vụ sẽ xử lý tin. Nếu có nhiều nhóm sms-service có cùng từ khoá thì Kannel sẽ chọn dịch vụ có số tham số phù hợp đầu tiên với số từ trong tin nhắn đến. Nếu như không tìm thấy nó sẽ dùng dịch vụ có từ khoá là default. name: Tên để phân biệt dịch vụ trong tệp ghi nhật ký (log file). get-url: URL sẽ được Kannel gọi để xử lý tin nhắn cho dịch vụ này. Nó có thể bao gồm một danh sách các tham số (sẽ nói rõ về các tham số này ở phần sau). Phương thức gọi yêu cầu HTTP ở đây là phương thức GET. Nội dung trả về sẽ được coi là tin nhắn sẽ trả về cho người sử dụng. post-url: Tương tự như biến get-url nhưng phương thức gọi yêu cầu HTTP ở đây là phương thức POST. file: Đọc nội dung từ file này và coi đó là nội dung trả về. Tên file cũng có bao hàm các tham số giống như đối với get-url. text: Nội dung trả về định sẵn. Các tham số cũng có thể được sử dụng. exec: Gọi một lệnh shell để xử lý tin nhắn này và coi nội dung của stdout chính là nội dung trả về. Các tham số cũng có thể được dùng ở đây. Cách này không được khuyến cáo dùng do vấn đề bảo mật. accepted-smsc: Chỉ chấp nhận các tin nhắn tới từ smsc có số hiệu (smsc-id) nằm trong danh sách này. Các số hiệu cách nhau bởi dấu ‘;’. catch-all: Nếu được đặt bằng true thì sẽ xử lý tất cả các tin nhắn mà không quan tâm đến nội dung của tin. Thường chỉ được đặt bằng true với dịch vụ có từ khoá là default. max-messages: Nếu như tin nhắn trả về có nội dung vượt quá 160 ký tự thì tin nhắn đó sẽ phải được chia thành nhiều tin nhắn nhỏ. Tham số này sẽ quyết định số lượng tin nhắn tối đa có thể gửi trả lại cho người dùng dịch vụ. concatenation: Nếu được đặt bằng true thì khi gửi tin trả lại có nội dung dài hơn 160 ký tự, tin trả lại sẽ được chia thành nhiều tin nhỏ và các tin này sẽ được gửi đi như một tin nhắn dài. Với các loại điện thoại có hỗ trợ tin nhắn dài thì nó sẽ tự động ghép các tin nhắn ngắn lại và coi như là chỉ nhận được một tin nhắn. Hầu hết các loại điện thoại ngày này đều hỗ trợ tính năng này. accept-x-kannel-headers: Chấp nhận các Kannel header (sẽ mô tả chi tiết trong phần sau) trong nội dung trả về trong trường hợp dùng yêu cầu HTTP. assume-plain-text: Trong trường hợp dùng yêu cầu HTTP, nếu như module xử lý tin không đặt Content-Type cho nội dung trả về thì nó sẽ được xử lý như là dữ liệu nhị phân (kiểu application/octet-stream). Nếu đặt biến này bằng true thì trong trường hợp này dữ liệu trả về sẽ được coi là plain/text và được xử lý như là tin nhắn văn bản (text message). omit-empty: Nếu biến này được đặt bằng true thì khi nội dung trả về là rỗng Kannel sẽ không gửi trả người dùng tin nhắn có nội dung được đặt trong biến cấu hình reply-emptymessage của nhóm smsbox. Người dùng sẽ không được gửi trả bất cứ tin nhắn nào. Thường được dùng nếu hệ thống muốn tự gửi tin nhắn (thông qua giao diện gửi tin qua các yêu cầu HTTP của Kannel) trả lại sau khi đã xử lý mà không trả lại ngay để có thể đóng kết nối hiện tại. Sau đây là danh sách các tham số có thể truyền cho module xử lý tin nhắn: %k – Từ khoá trong tin nhắn SMS (là từ đầu tiên trong tin nhắn) %s – Từ tiếp theo trong tin nhắn SMS, bắt đầu từ từ thứ hai, mỗi lần dùng tham số này số thứ tự của từ trong tin sẽ được tăng thêm 1 (lần đầu tiên dùng tham số này là từ thứ 2, lần thứ 2 dùng tham số này sẽ là từ thứ 3 …). Đã xử lý vấn đề các ký tự không được cho phép khi sử dụng URL (URL encoded, ví dụ '+' trở thành '%2B'). %S – Giống như %s, nhưng '*' được chuyển thành '~' (có ích khi tự gõ URL). %r – Toàn bộ các từ chưa được dùng bởi các %s. %a – Tất cả các từ trong tin nhắn kể cả từ đầu tiên. Nếu có nhiều dấu trắng liên tiếp sẽ được chuyển thành còn 1 dấu trắng. %b – Nội dung của tin nhắn dưới dạng nhị phân. %t – Thời gian tin nhắn được gửi với cấu trúc "YYYY-MM-DD HH:MM", ví dụ "2006-04-20 14:00". %T – Thời gian tin nhắn được gửi theo định dạng UNIX epoch timestamp (là một số nguyên chính là số giây tính từ 00:00:00 01/01/1970 cho tới thời điểm hiện tại). %p – Số điện thoại của người đã gửi tin nhắn này. %P – Số điện thoại đã nhận tin nhắn này, thường được dùng để phân biệt xem người dùng đã gửi vào số dịch vụ nào trong dải số của mình để có những xử lý phù hợp. %q – Giống %p, nhưng nếu bắt đầu bằng ‘00’ sẽ được thay thế bằng ‘+’. %Q - Giống %P, nhưng nếu bắt đầu bằng ‘00’ sẽ được thay thế bằng ‘+’. %i - smsc-id của kết nối đã nhận tin nhắn này. %I - SMS ID của chính tin nhắn này (nằm ở trong cấu trúc của tin nhắn). %d – Giá trị của bản ghi thông tin truyền nhận (delivery report). Sẽ nói chi tiết hơn ở phần riêng cho Delivery Report. %n – Tên của sendsms-user hay sms-service. %c – Cách số hoá tin nhắn: 0 (mặc định, 7 bits), 1 (7 bits), 2 (8 bits) hay 3 (Unicode). %C – Bộ chữ cái của tin nhắn: cho các tin nhắn bình thường thì sẽ là: "GSM" (mã là 1), "binary" (mã là 2) or "UTF16-BE" (mã là 3). Nếu tin nhắn đã số hoá lại thành công từ Unicode bộ chữ sẽ là "ISO-8859-1". %u – udh (User Data Header) của tin nhắn đến. Nhóm sendsms-user Mỗi nhóm này tạo ra một tài khoản để gửi tin SMS bằng yêu cầu HTTP qua hệ thống của Kannel. Nó chứa các thuộc tính của tài khoản này. Sau đây là các biến cấu hình của nhóm này: group: Bắt buộc phải là “sendsms-user”. username: Tên sử dụng của tài khoản này. password: Mật khẩu tương ứng với tài khoản này. name: Tên được dùng để phân biệt khi ghi nhật ký (file log). user-deny-ip: Danh sách các ip không được gửi tin nhắn bằng tài khoản này. user-allow-ip: Danh sách các ip được phép gửi tin nhắn bằng tài khoản này. forced-smsc: Tin nhắn khi gửi bằng tài khoản này bắt buộc phải gửi qua SMSC có smsc-id trùng với biến này. default-smsc: Tin nhắn khi gửi bằng tài khoản này sẽ được gửi qua SMSC có smsc-id trùng với biến này đầu tiên. Nếu tại thời điểm gửi kết nối tới SMSC này bị ngắt thì Kannel sẽ thử với các SMSC khác. Biến này sẽ không có ý nghĩa nếu đặt biến forced-smsc. default-sender: Biến này sẽ được đặt là số điện thoại đã gửi tin này nếu như không được đặt bởi tham số dùng khi gửi tin. max-messages: Giống với trong nhóm sms-service nhưng là cho tài khoản này. concatenation: Giống với trong nhóm sms-service nhưng là cho tài khoản này. dlr-url: URL sẽ được gọi khi có thông tin về việc chuyển tin nhắn (delivery report) của hệ thống và tham số dlr-mask được đặt. Có thể xem kỹ hơn ở phần sau. split-chars: Ký tự dùng để phân cách các tin nhắn nếu như muốn gửi nhiều tin nhắn bằng cùng một yêu cầu HTTP. Cách gửi tin nhắn thông qua giao diện HTTP của Kannel Phần này sẽ trình bày cách để gửi tin nhắn thông qua giao diện HTTP của Kannel. Để gửi tin nhắn cần phải gửi tới một yêu cầu HTTP tới Kannel. URL đó sẽ bắt đầu bằng giá trị của biến sendsms-url trong nhóm smsbox. Sau đó là các tham số nếu dùng phương thức GET, hoặc phần HTTP header sẽ chứa các tham số dưới dạng X-Kannel-header nếu sử dụng phương thức POST. Sau đây là một ví dụ url gửi tin nhắn thông qua giao diện này: Sau đây là danh sách các tham số với X-Kannel-header tương ứng có thể được dùng để gửi tin nhắn: username hay user - X-Kannel-Username. password hay pass - X-Kannel-Password. from - X-Kannel-From. to - X-Kannel-To. text - Nội dung của yêu cầu HTTP. charset - Trùng với trường charset ở Header Content-Type của yêu cầu HTTP. udh - X-Kannel-UDH. smsc - X-Kannel-SMSC. dlr-mask - X-Kannel-DLR-Mask. dlr-url - X-Kannel-DLR-Url. Sau đây là ý nghĩa của các tham số trên: username hay user: Tên của tài khoản, tài khoản này phải được tạo ra bằng một nhóm sendsms-user. password hay pass: Mật khẩu tương ứng với tài khoản trên. from: Số điện thoại sẽ được coi là số điện thoại gửi tin nhắn này. Thường dùng để chọn số gửi trong dải số được cung cấp. to: Số điện thoại sẽ nhận tin. text: Nội dung của tin. Phải được chuẩn hoá cho việc sử dụng URL (URL encoded). charset: Bộ ký tự sử dụng. udh: User Data Header cho tin nhắn này. smsc: smsc-id của SMSC sẽ gửi tin này. dlr-mask: Yêu cầu có thông tin về trạng thái của việc gửi tin đi (delivery report). Giá trị của biến này là tổ hợp (tổng hay phép or) của các giá trị: 1-đã gửi tới điện thoại, 2-không gửi được tới điện thoại, 4-đã gửi tới SMSC và đang được xếp trong hàng đợi, 8-đã gửi tới SMSC, 16-không gửi được tới SMSC. Khi đặt giá trị của tham số này thì bắt buộc phải đặt tham số dlr-url khi gửi hay đặt giá trị của biến cấu hình dlr-url trong nhóm sendsms-user. dlr-url: Mỗi khi có trạng thái tương ứng với các bit đã được đặt trong tham số dlr-mask thì URL này sẽ được gọi. Sau đây là một ví dụ về file cấu hình của group = core admin-port = 10000 #sms section smsbox-port = 10001 #others admin-password = xxx admin-deny-ip = "*.*.*.*" admin-allow-ip = "127.0.0.1" box-deny-ip = "*.*.*.*" box-allow-ip = "127.0.0.1" unified-prefix = "+84,0" access-log = "access.log" # SMSC CONNECTIONS # include all smpp configure include = "/programs/kannel/sbin/smpps" # SMSBOX SETUP group = smsbox bearerbox-host = localhost sendsms-port = 8068 access-log = "access.log" http-request-retry = 3 http-queue-delay = 10 reply-couldnotfetch = "Xin loi ban, hien tai dich vu dang duoc sua chua. Xin vui long thu lai sau." reply-couldnotrepresent = "Xin loi ban, hien tai dich vu dang duoc sua chua. Xin vui long thu lai sau." reply-requestfailed = "Xin loi ban, hien tai dich vu dang duoc sua chua. Xin vui long thu lai sau." # SEND-SMS USERS group = sendsms-user username = xxx password = xxx max-messages = 3 concatenation = true #user-deny-ip = "*.*.*.*" #user-allow-ip = "127.0.0.1" # SERVICES # there should be default always group = sms-service keyword = default get-url= "" omit-empty = yes catch-all = true max-messages = 3 concatenation = true 2.4. GSM Modem và các loại điện thoại chuẩn GSM Việc sử dụng tin nhắn SMS vào mục đích tra cứu, cung cấp thông tin hoặc điều khiển hệ thống có thể thực hiện mà không cần có một số điện thoại dịch vụ mà các nhà cung cấp sóng điện thoại cung cấp. Việc đó có thể thực hiện được nhờ một GSM Modem hay một loại điện thoại chuẩn GSM hỗ trợ lập trình AT Command. Các thiết bị phần cứng này có thể kết nối trực tiếp với máy tính và cho phép lập trình để gửi và nhận cũng như xử lý tin nhắn dưới dạng tin nhắn văn bản thông thường cũng như dưới dạng tin nhắn thông minh. Các loại thiết bị này có thể thực hiện vai trò như một tổng đài dịch vụ giả lập. Có thể kể tên một số loại GSM Modem và điện thoại chuẩn sau đây: Modem Siemens MC35, điện thoại Nokia 8310, 6100, 6610, 7250, 6230,…Sony Ericson T68, T610… Để sử dụng các GSM Modem hay các loại điện thoại chuẩn GSM hỗ trợ AT Command chúng ta cần thiết phải làm các bước sau đây: Mua các thiết bị GSM Modem hay loại điện thoại chuẩn cùng với dây cáp nối qua cổng COM, USB hoặc kết nối qua hồng ngoại hay Bluetooth. Kết nối các thiết bị với máy tính và cài đặt phần mềm cho modem. Các phần mềm này được cung cấp bởi các nhà sản xuất thiết bị đó. Sử dụng phần mềm có sẵn hoặc lập trình để gửi nhận tin nhắn từ điện thoại vào máy tính. Xây dựng các ứng dụng xử lý tin nhắn. 2.5. WAP WAP (Wireless Application Protocol - Giao thức ứng dụng không dây) là một tiêu chuẩn dùng cho thông tin di động. WAP cho phép các thiết bị di động như máy điện thoại di động, PDA (Personal Digital Assistant), máy nhắn tin, truy nhập và lấy các thông tin từ các nguồn khác nhau, chủ yếu là từ các Website. WAP, theo định nghĩa của WAP Forum, là những chỉ tiêu kỹ thuật mang tính mở, toàn cầu, cho phép người sử dụng di động dùng các thiết bị không dây dễ dàng truy nhập và tương tác với thông tin và các dịch vụ một cách tức thời. WAP Forum là một hiệp hội công nghiệp bao gồm hơn 500 thành viên với chức năng là phát triển tiêu chuẩn toàn cầu cho thông tin và các dịch vụ điện thoại không dây trên các thiết bị điện thoại di động cũng như các thiết bị không dây khác. Như đã trình bày ở trên, WAP Forum được sáng lập vào tháng 12 năm 1997 bởi 3 nhà cung cấp thiết bị thông tin di động Nokia, Ericsson và Motorola cùng với Unwired Planet (hiện nay là phone.com). Trong số những thành viên của WAP Forum có những nhà cung cấp hạ tầng mạng thông tin di động nổi tiếng hàng đầu thế giới như Nokia, Ericsson, Motorola, Siemens, Alcatel, NEC, … những nhà khai thác mạng thông tin di động như NTT DoCoMo, Vodafone, France Telecom, … cũng như các hãng máy tính, phần mềm nổi tiếng như Microsoft, ORACLE, IBM, HP, Intel … Mục đích của WAP Forum là đề ra các tiêu chuẩn WAP thống nhất trên phạm vi toàn cầu. Các thiết bị WAP giống như các trình duyệt WEB thu nhỏ, cho phép tương tác với các ứng dụng Internet. Tuy nhiên, do hạn chế về kích thước màn hình, khả năng hiển thị đồ họa, dung lượng bộ nhớ, nội dung WAP được soạn không phải bẳng ngôn ngữ HTML (HyperText Mark-up Language) giống như WEB mà sử dụng ngôn ngữ WML (Wireless Mark-up Language). Tương tự như HTML, WML sử dụng các màn hình hiển thị thông tin, gọi là card, để hiển thị thông tin. Thực chất WML chính là một dạng của XML (eXtensible Mark-up Language), ngôn ngữ được sử dụng phổ biến hiện nay cho các ứng dụng Internet. XML mô tả cấu trúc của nội dung thông tin, khác với HTML mô tả các trang được “mark-up”. Các loại nhãn (tag) khác nhau của WML tương ứng với các giao diện khác nhau có thể tạo ra và hiển thị trên các thiết bị WAP. Các Script, có nghĩa là các chương trình ứng dụng nhỏ như các trò chơi, cũng có thể viết cho các thiết bị WAP sử dụng các WMLScript, một dạng Script tương tự như JavaScript. Tóm lại, WAP cho phép người sử dụng: Nhận và gửi E-Mail qua máy điện thoại di động ví dụ như là các dạng E-Mail POP/SMTP. Nhận các thông tin từ Internet, dưới cả hai dạng các trang nội dung và các truy vấn từ cơ sở dữ liệu (database queries). Nhận các thông tin mang tính chất thông báo, ví dụ như là thông báo về giá cổ phiếu thay đổi, thông báo có E-Mail mới … Thực hiện các tác vụ thương mại điện tử (M-Commerce) như mua hàng qua điện thoại di động. WAP thực chất chạy trên dịch vụ Data của mạng thông tin di động. Vì vậy để có thể sử dụng dịch vụ WAP, thuê bao thông tin di động nhất thiết cần phải có dịch vụ Data. 2.5.1. Cấu trúc WAP Hình sau mô tả cấu trúc WAP, bao gồm các giao thức mạng, bảo mật và môi trýờng ứng dụng. Hình 2.11: Cấu trúc WAP Như hình vẽ mô tả, tiêu chuẩn WAP được phân lớp có nghĩa là các tiêu chuẩn được đặt trên tiêu chuẩn khác và do đó phụ thuộc lẫn nhau khi cung cấp các dịch vụ. Việc phân lớp các giao thức được sử dụng để đơn giản hóa việc thiết kế mạng bằng cách chia nhỏ thành các lớp chức năng và ấn định mỗi giao thức thực hiện một chức năng tại lớp đó. Ngoài việc giao tiếp với lớp trên thì mỗi lớp giao thức WAP đều có thể giao tiếp trực tiếp với các dịch vụ và các ứng dụng. Ví dụ như một số ứng dụng nhất định chỉ sử dụng các dịch vụ cung cấp bởi lớp truyền WDP (Wireless Datagram Protocol). Ứng dụng đó có thể sử dụng trực tiếp các dịch vụ WDP mà không cần phần overhead của lớp cao hơn. Tất cả các lớp trên đều đối xứng có nghĩa là các lớp đều chạy cả ở phía thiết bị không dây và phía hạ tầng mạng. Ví dụ như lớp tương tác WTP (Wireless Transaction Protocol) của thiết bị đầu cuối sẽ liên lạc với lớp WTP của hạ tầng mạng. Các thành tố của tiêu chuẩn WAP bao gồm: Phần hỗ trợ vật mang: Xóa bỏ sự khác biệt về các giao thức báo hiệu và kênh của các mạng không dây khác nhau trên thế giới. Các giao thức dịch vụ: Bao gồm các giao thức mang lại các dịch vụ khác nhau để truyền dữ liệu qua mạng không dây. Các dịch vụ này bao gồm bảo mật, đảm bảo độ tin cậy và đệm. Môi trường ứng dụng: Môi trường trình duyệt mạnh để hỗ trợ các loại ứng dụng khác nhau trên các loại máy đầu cuối khác nhau của các hãng sản xuất khác nhau. 2.5.2. Vật mang WAP Hiện nay, trên thế giới, có các loại hạ tầng mạng không dây như sau: Advanced Mobile Phone System (AMPS): Hạ tầng mạng thông tin di động tương tự, sử dụng phổ biến ở Bắc Mỹ. Cellular Digital Packet Data (CDPD): Dịch vụ truyền dữ liệu gói số tốc độ 19.2 Kbps, sử dụng công nghệ FDM, trong đó bên phát gửi các gói dữ liệu trên các tần số khác nhau. Sử dụng ở Mỹ và Canađa. IS-54/IS-136/ANSI-136: sử dụng công nghệ TDMA, phổ biến ở Mỹ và Canađa. IS-95 hay Code Division Multiple Access (CDMA): Công nghệ đa truy nhập theo mã do hãng Qualcomm phát triển và được sử dụng phổ biến ở Mỹ, Canađa và một phần Châu Á. Personal Digital Cellular (PDC): Cung cấp cả dịch vụ thoại và truyền số liệu. Sử dụng kết hợp cả TDM và FDM. Sử dụng rỗng rãi tại Nhật Bản. Personal Handy Phone System (PHS): Điện thoại cordless kỹ thuật số, sử dụng phổ biến ở Nhật Bản. Flex: Giao thức nhắn tin (paging) một chiều của hãng Motorola. Giao thức ReFlex cho phép nhắn tin hai chiều. Global System for Mobile Communications (GSM): Tiêu chuẩn thông tin di động ở tần số 800-900 MHz, sử dụng rộng rãi ở Châu Âu, Úc và Châu Á. Sử dụng kết hợp cả TDM và FDM. Tại Mỹ, GSM sử dụng ở tần số khác và thường được biết tới với tên gọi DCS 1800 (tần số 1800MHz) và PCS 1900 (tần số 1900MHz). Các tiêu chuẩn hạ tầng mạng thông tin di động mới như EDGE, GPRS và UMTS. Như vậy là WAP có thể chạy trên nền của dịch vụ SMS, thông tin di động chuyển mạch kênh như GSM hoặc chuyển mạch gói như CDPD, GPRS. Để có thể xóa bỏ sự khác biệt của các vật mạng khác nhau như trên, sử dụng các giao thức (bearer protocol) khác nhau, WAP sử dụng lớp thấp nhất - Wireless Datagram Protocol (WDP). Dịch vụ WDP là dịch vụ truyền cho phép một đầu của mạng gửi thông điệp tới đầu bên kia của mạng. Dịch vụ này không đảm bảo độ tin cậy, tính bảo mật, thứ tự cũng như thời gian dữ liệu tới đích. Thay vào đó, các dịch vụ này sẽ do các lớp trên đảm nhận. Do các vật mạng khác nhau cung cấp các dịch vụ khác nhau nên WDP là một tập hợp các giao thức. Mỗi khi một ứng dụng nào đó gửi thông điệp qua bộ giao thức WAP, một giao thức WDP riêng sẽ được sử dụng, tùy thuộc vào giao thức mạng của vật mang. Trong một số trường hợp, WDP sử dụng luôn giao thức mạng của vật mang để cung cấp dịch vụ, đặc biệt là đối với các mạng IP sử dụng giao thức UDP (User Datagram Protocol). Trong trường hợp này, các giao thức dịch vụ WAP sẽ được đóng gói vào các gói UDP/IP. Trong một số trường hợp khác, các giao thức mạng có thể có nhiều tính năng hơn WDP, ví dụ như đối với các kết nối chuyển mạch kênh có thêm tính năng đảm bảo thứ tự gói. Khi đó, WDP sẽ chỉ sử dụng các tính năng cần thiết của giao thức mạng và bỏ qua các tính năng khác. Tính năng đảm bảo thứ tự gói của chuyển mạch kênh sẽ được WDP bỏ qua và nhường cho các lớp trên đảm nhận nhằm tránh lặp tính năng có thể gây ra lãng phí băng thông. 2.5.3. Bộ giao thức WAP (WAP Protocol Stack) Bộ giao thức WAP có so sánh với bộ giao thức Internet được mô tả ở hình 2. Hình 2.12: Bộ giao thức WAP so sánh với bộ giao thức internet 2.5.4. Môi trường ứng dụng WAP, WML và WMLScript Môi trường ứng dụng WAP chính là “trình duyệt WAP”. Môi trường ứng dụng WAP bao gồm một bộ tiêu chuẩn xác định một nhóm các định dạng cho các nội dung thông tin và các chương trình ứng dụng có thể tải về máy đầu cuối cũng như cách thức để các máy chủ chạy chương trình ứng dụng có thể đưa các thông tin đó tới môi trường ứng dụng WAP. Các tiêu chuẩn này đã được tối ưu hóa để sử dụng cho các thiết bị đầu cuối có màn hình hiển thị nhỏ, hạn chế về khả năng điều khiển (bàn phím nhỏ, ít phím, không có chuột) cũng như hạn chế về bộ nhớ. Các tiêu chuẩn của môi trường ứng dụng WAP thường dựa trên môi trường ứng dụng Internet WEB với ngôn ngữ HTML cho nội dung thông tin, JavaScript cho các chương trình ứng dụng và XML cho các dữ liệu có cấu trúc. Nhưng các tiêu chuẩn này đã được tối ưu hóa và dành riêng cho các thiết bị đầu cuối và hạ tầng mạng không dây. Môi trường ứng dụng WAP độc lập hoàn toàn đối với các giao thức WAP và các tiêu chuẩn lớp của WAP. Thật vậy, một thiết bị đầu cuối WAP vẫn có thể tải các ứng dụng WAP trên một mạng IP băng rộng và ngược lại, một máy tính với đầy đủ bàn phím, chuột, màn hình, bộ nhớ lớn vẫn có thể chạy các ứng dụng WEB trên một mạng không dây băng thông hẹp. Tuy nhiên, trong môi trường ứng dụng WAP, người ta sử dụng ngôn ngữ đánh dấu không dây WML (Wireless Markup Language) cho nội dung thông tin và WMLScript cho các chương trình ứng dụng. Ngôn ngữ đánh dấu không dây WML là một dạng nội dung được thiết kế sử dụng đối với các thiết bị có màn hình nhỏ và không có cơ chế nhập số liệu (bàn phím và chuột) phức tạp. WML được thiết kế để cho phép các thiết bị đầu cuối thực hiện các thao tác xử lý sao cho giảm số lượng tương tác với mạng mà vẫn có thể nhận được nội dung thông tin trong quá trình truy cập thông tin. Kết hợp cùng với tiêu chuẩn Wireless Binary XML (WBXML), sử dụng để mã hóa văn bản WML, WML và WBXML tạo thành một bộ tiêu chuẩn dùng cho các mạng băng thông hẹp. Các đặc tính của WML: Cấu trúc văn bản theo kiểu “Deck of Cards”: Mối địa chỉ WML URL tham chiếu tới một văn bản, gọi là “deck”. Deck bao gồm nhiều trang, gọi là “card”. Mặc dù toàn bộ deck được tải về thiết bị đầu cuối, tại một thời điểm, chỉ có duy nhất một card được hiển thị tại thiết bị đầu cuối. Mô hình deck bao gồm nhiều card cho phép các trang màn hình kích thước nhỏ chứa nội dung thông tin được thu nhận trong một tương tác với mạng. Mô hình truy cập Intradeck và Interdeck: Mỗi card nằm trong một deck được ấn định một tên duy nhất. Do đó, mỗi lệnh truy cập có thể tham chiếu tới bất kỳ card nào trong cùng một deck hoặc tham chiếu tới card nằm trong deck khác. Hơn thế nữa, trình duyệt còn duy trì một ngăn lịch sử, một danh sách theo kiểu LIFO (Last-in First-out: Vào sau ra trước) các card đã được người sử dụng truy cập trước đó. Các lệnh truy cập có thể gọi ngăn lịch sử để hiển thị các card đã truy nhập trước đó. Mô hình đệm (Caching): Đặc tính WAP xác định việc lưu trữ các văn bản WML trong bộ đệm của thiết bị đầu cuối. Khi chuyển một văn bản WML tới thiết bị đầu cuối, máy chủ sẽ thiết kế khoảng thời gian để văn bản đó được lưu trong bộ đệm của thiết bị đầu cuối một cách an toàn trước khi buộc phải bị làm tươi (refresh) từ máy chủ. Mô hình đệm này là hết sức cần thiết giống như giao thức HTTP trên mạng Internet để người sử dụng có thể xem ở chế độ off-line và giảm thời gian kết nối mạng. Giao tiếp người máy độc lập đối với các thiết bị khác nhau: Các thiết bị Mobile Internet có thể rất khác nhau về khả năng nhập dữ liệu từ việc sử dụng bàn phím với đầy đủ các phím của các thiết bị PDA đến một số phím tối thiểu của điện thoại di động hoặc là một hoặc hai phím của thiết bị nhắn tin. Để tránh phụ thuộc vào một loại thiết bị đầu cuối cụ thể, WML cung cấp mô hình giao tiếp người máy trừu tượng cho phép mỗi thiết bị đầu cuối lựa chọn phương thức tốt nhất để truy cập nội dung thông tin. Một số ví dụ về các tính năng của mô hình này: Các bộ đếm theo loại trình duyệt: WML deck có thể đặt các bộ đếm và thực hiện một hành động nào đó khi thời gian vượt quá giới hạn của bộ đếm. Các dạng vào dữ liệu: Người sử dụng có thể nhập dữ liệu theo một số cách khác nhau đối với WML trong đó bao gồm cách lựa chọn hoặc cách nhập văn bản. Khi mô tả một thực đơn (menu), WML có thể yêu cầu một mục của thực đơn tương ứng với một phím nhập nhất định. Ví dụ như mục đầu tiên của thực đơn tương ứng với phím “1”. Thiết bị đầu cuối sẽ tự động ấn định phím này dựa trên yêu cầu tạo ra bởi WML deck và khả năng thực tế của thiết bị đầu cuối đó. Các phím mềm: Các phím mềm là các phím ảo do các nhà lập trình WML tạo ra. WML xác định một số loại sự kiện bao gồm Accept, Prev, Help, Reset, Options và Delete. Khi nhận được văn bản WML, thiết bị đầu cuối sẽ ấn định các sự kiện trên tương ứng với các tác động vật lý vào các phím trên thiết bị đầu cuối đó. Bằng cách này thì giao tiếp với người sử dụng sẽ được thực hiện một cách hoàn toàn chủ động dựa vào năng lực của từng thiết bị đầu cuối. Mô hình quản lý trạng thái: Trình duyệt WML duy trì trạng thái động của các bộ thuộc tính - một cặp giá trị bao gồm tên của biến và giá trị tương ứng của biến đó. Các lệnh thực hiện trong văn bản WML có thể đọc hoặc viết các biến này. Một biến mới sẽ tự động được tạo ra khi được viết lần đầu tiên. Hơn thế nữa, WML còn cho phép thay thế theo thời gian thực các biến này vào các dòng văn bản hiển thị trên các thiết bị đầu cuối. Trạng thái này của trình duyệt cho phép truy cập thông tin một cách rất hiệu quả không những giữa các card trong một deck riêng lẻ mà còn giữa các deck. Màn hình hiển thị và ảnh: WML thừa kế rất nhiều nhãn (tags) của HTML để điều khiển việc hiển thị văn bản và ảnh. Các nhãn này bao gồm xuống dòng, bảng, chữ béo, chữ gạch chân, chữ nghiêng, font to, nhỏ. WML đồng thời còn hỗ trợ hiển thị ảnh dưới dạng WBMP (Wireless Bitmap) trên màn hình thiết bị đầu cuối. Ngôn ngữ WMLScript xác định dạng của các logic được tải về và chạy trên thiết bị đầu cuối. Các Script này có thể được sử dụng cho rất nhiều mục đích khác nhau: Kiểm tra tính hợp lệ của dữ liệu được nhập vào các trường WML. Lựa chọn và truy cập URL điều khiển bởi ứng dụng. Tạo ra đối thoại động với người sử dụng mà không cần kết nối mạng. Truy nhập vào các phụ kiện của thiết bị đầu cuối ví dụ như các tính năng điện thoại, SIM card. Cho phép tải về các chương trình ứng dụng hoặc các phần mềm như Screen Saver để chạy trên thiết bị đầu cuối. WMLScript dựa trên ECMAScript, một dạng Script dựa trên ngôn ngữ Netscape JavaScript và Microsoft Jscript. Tuy nhiên, WMLScript nhỏ hơn, đơn giản hơn ECMAScript và thêm vào các tính năng cho môi trường điện thoại di động. Khác với ECMAScript, WMLScript được xây dựng theo cú pháp mã byte xác định và WMLScript được dịch trước tại máy chủ trước khi tải về thiết bị đầu cuối WAP. Việc mã hóa nhị phân cho phép giảm băng thông mạng khi tải WMLScript về thiết bị đầu cuối. Đồng thời mã hóa nhị phân cũng cho phép giảm bộ nhớ cần thiết của thiết bị đầu cuối để lưa trữ WMLScript cũng như giảm tài nguyên vi xử lý để chạy WMLScript. Môi trường WMLScript bao gồm các thư viện như thư viện ngôn ngữ chính, thư viện dialog, thư viện giao tiếp trình duyệt. Các nhà sản xuất thiết bị đầu cuối, các nhà cung cấp trình duyệt cũng như các nhà lập trình có thể xác định những thư viện WMLScript của riêng mình. 2.5.5. WAP Push Một trong những khả năng của WAP đó là cho phép đưa các nội dung đến các thiết bị di động. Có hai cách để lấy nội dung về một thiết bị di động. Cách thứ nhất là “pull” có nghĩa là người dùng tự nguyện tải nội dung về máy khi họ duyệt WAP. Nói một cách khác có nghĩa là khi họ duyệt trang WAP mà gặp các nội dung có sẵn trên internet mà họ muốn tải về (tất nhiên là nội dung này được phép tải) thì họ sẽ tự nguyện tải nội dung về thiết bị di động, cách này được gọi là “pull” nghĩa quá trình tải được thiết lập bởi người dùng WAP. Tuy nhiên thế giới internet là vô cùng rộng lớn thế nhưng mỗi người lại chỉ cần một số thông tin nhất định ví dụ như Email, thông tin về thị trường chứng khoán. Vì thế có một cách khác để tải thông tin về đó là “push” nghĩa là quá trình tải được thiết lập bởi một nơi khác chứ không phải người dùng WAP. Một nội dung cần tải được gửi tới một thiết bị di động qua dưới dạng tin nhắn dịch vụ mà không nhất thiết thiết bị nhận tin nhắn đó có kết nối WAP hay không và người dùng có tải về không là tùy họ. Khi người dùng muốn tải thì thiết bị di động mới kết nối WAP để tải nội dung đó về. Tương ứng với 2 cách trên là 2 dạng WAP Push đó là SI (Service Indication) và SL (Service Loading). Service Loading Service Indication Nội dung được tự động chuyển về thiết bị di động Một tin nhắn dịch vụ dưới dạng thông báo cho gửi tới thiết bị di động Người dùng sẽ không thấy gì cả cho tới khi dịch vụ được tải bởi kỹ thuật pull Người dùng có thể tải nội dung hoặc không Không an toàn và hiện nay không còn hỗ trợ bởi các loại điện thoại mới. An toàn được dùng phổ biến trong các dịch vụ cung cấp nhạc chuông hình ảnh hiện nay. Bảng 2.5 : So sánh giữa WAP Push SL và SI 2.5.6. WTA (Wireless Telephony Applications) WTA là những ứng dụng cho phép tương tác với các chức năng của điện thoại trong khi duyệt WAP và chúng được cung cấp bởi các nhà cung cấp sóng điện thoại, hay chính xác hơn là WAP Gateway cung cấp những chức năng này. Việc lập trình cụ thể cho các chức năng này có thể tham khảo ở các tài liệu về lập trình WML và WAP. Sau đây là các chức năng hay dùng: Thực hiện cuộc gọi Nhận cuộc gọi Gửi và nhận tin nhắn Thêm, tìm kiếm hay xóa một địa chỉ trong danh bạ Ví dụ đoạn mã thực hiện cuộc gọi: <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN" ""> Nhap so dien thoai can goi: Kết quả hiện thị trên mà hình điện thoại: Hình 2.13: Thiết lập cuộc gọi từ trình duyệt WAP CHƯƠNG 3 XÂY DỰNG HỆ THỐNG MVAS (Mobile Value Added Service) Nội dung chương này đề cập đến những vấn đề chính sau: Giới thiệu hệ thống MVAS Thiết kế hệ thống MVAS Xây dựng hệ thống MVAS 3.1. Giới thiệu hệ thống MVAS là một hệ thống chương trình cho phép cung cấp dịch vụ nội dung cho các điện thoại di động. Hệ thống cho phép khách hàng có thể truy cập vào website để lấy các nội dung cũng như tra cứu thông tin. Hệ thống cho phép nhà cung cấp nội dung kết nối với các nhà cung cấp điện thoại di động để mở các dịch vụ cung cấp nội dung cũng như các cuộc thi, bình chọn. Hệ thống MVAS gồm 2 hệ thống con là: hệ thống Website(MVAS-WEB), hệ thống kết nối để xử lý gửi nhận tin nhắn(MVAS-SMS). Hệ thống dự kiến được xây dựng trên nền tảng ngôn ngữ java và cơ sở dữ liệu Oracle. Hệ thống Website được xây dựng trên nền tảng struts và jsp. Sau đây là biểu đồ phân cấp hệ thống: Hình 3.1: Biểu đồ phân cấp hệ thống MVAS 3.2. Thiết kế hệ thống 3.2.1. Mô hình hệ thống Mô hình hệ thống Hình 3.2: Mô hình hệ thống MVAS 3.2.2. Biểu đồ phân cấp chức năng Hình 3.3: Biểu đồ phân cấp chức năng hệ thống MVAS-WEB Hình 3.4: Biểu đồ phân cấp chức năng hệ thống MVAS-SMS 3.2.3. Chi tiết các chức năng Tên chức năng Loại Mô tả 1.1.1 Cung cấp thông tin về chủ đề nhạc chuông Web Form Hiển thị thông tin về chủ đề nhạc chuông 1.1.2 Cung cấp thông tin về tên và mã số nhạc chuông Web Form Hiển thị thông tin về tên và mã số nhạc chuông 1.2.1 Cung cấp thông tin về chủ đề hình nền Web Form Hiển thị thông tin về chủ đề hình nền 1.2.2 Cung cấp thông tin về tên và mã số hình nền Web Form Hiển thị thông tin về tên và mã số hình nền 1.3.1 Cung cấp thông tin về chủ đề Logo Web Form Hiển thị thông tin về chủ đề Logo 1.3.2 Cung cấp thông tin về tên và mã số Logo Web Form Hiển thị thông tin về tên và mã số Logo 1.4.1 Đăng ký tài khoản Web Form Cho phép người dùng đăng ký tài khoản trên Website 1.4.2 Đăng nhập, thoát khỏi hệ thống Web Form Đăng nhập và thoát khỏi hệ thống Website 2.1.1 Nhận tin nhắn từ số dịch vụ Web Service Nhận tin nhắn từ số dịch vụ 2.1.2 Gửi tin nhắn đến mô đun xử lý tin nhắn Service Gửi tin nhắn đã nhận đến mô đun xử lý tin nhắn 2.2.1 Kiểm tra tin nhắn Proccessing Program Kiểm tra tính hợp lệ của tin nhắn - Nếu tin nhắn là hợp lệ thì tạo ra nội dung được yêu cầu cung cấp. - Nếu tin nhắn không hợp lên thì tạo ra nội dung thông báo lỗi. 2.2.2 Cập nhật tin nhắn vào hệ thống Proccessing Program Sau khi kiểm tra tin nhắn thì cập nhật tin nhắn vào cơ sở dữ liệu của hệ thống để tiện cho việc tổng hợp kết quả và tính cước. Có hai loai tin nhắn là thành công và không thành công 2.2.3 Gửi nội dung tin nhắn trả lại đến Mô đun gửi tin nhắn Proccessing Program Gửi nội dung tin nhắn trả lại đên Mô đun gửi tin nhắn để gửi cho khách hàng 2.3.1 Gửi tin nhắn đến số dịch vụ WebService Gửi tin nhắn cần gửi đến khách hàng đến số dịch vụ của nhà cung cấp sóng điện thoại 2.3.2 Cập nhật tin nhắn đã gửi vào cơ sở dữ liệu của hệ thống Proccessing Program Cập nhật nội dung tin nhắn đã gửi cho khách hàng vào cơ sở dữ liệu của hệ thống để tiện cho việc theo dõi và đối chiếu. Bảng 3.1: Chi tiết các chức năng hệ thống MVAS Mã hóa chức năng chi tiết của hệ thống MVAS STT Tên chức năng Mã chức năng 1 Cung cấp thông tin về chủ đề nhạc chuông F001.01.01 2 Cung cấp thông tin về tên và mã số nhạc chuông F001.01.02 3 Cung cấp thông tin về chủ đề hình nền F001.02.01 4 Cung cấp thông tin về tên và mã số hình nền F001.02.02 5 Cung cấp thông tin về chủ đề Logo F001.03.01 6 Cung cấp thông tin về tên và mã số Logo F001.03.02 7 Đăng ký tài khoản F001.04.01 8 Đăng nhập, thoát khỏi hệ thống F001.04.02 9 Nhận tin nhắn từ số dịch vụ F002.01.01 10 Gửi tin nhắn đến mô đun xử lý tin nhắn F002.01.02 11 Kiểm tra tin nhắn F002.02.01 12 Cập nhật tin nhắn vào hệ thống F002.02.02 13 Gửi nội dung tin nhắn trả lại đến Mô đun gửi tin nhắn F002.02.03 14 Gửi tin nhắn đến số dịch vụ F002.03.01 15 Cập nhật tin nhắn đã gửi vào cơ sở dữ liệu của hệ thống F002.03.02 Bảng 3.2: Mã hóa các chức năng 3.2.4. Thiết kế cơ sở dữ liệu Các bảng trong cơ sở dữ liệu SUBJECT_RINGTONE (Chủ đề nhạc chuông) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có SUBJECT_TYPE INTEGER Không Không SUBJECT_NAME VARCHAR (50) Không Không Bảng 3.3: Chủ đề nhạc chuông RINGTONE (Nhạc chuông) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có SUBJECT_TYPE INTEGER Không Không RING_NAME VARCHAR (100) Không Không RING_DATA VARCHAR (100) Không Không RING_FILE VARCHAR (100) Không Không RING_CODE VARCHAR (10) Không Không NUM_DOWNLOAD NUMERIC(10,0) Không Không DATE_UPDATE DATE Không Không Bảng 3.4: Nhạc chuông SUBJECT_IMAGE (Chủ đề hình ảnh) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có SUBJECT_TYPE INTEGER Không Không SUBJECT_NAME VARCHAR (50) Không Không Bảng 3.5: Chủ đề hình ảnh IMAGE (Hình ảnh) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có SUBJECT_TYPE INTEGER Không Không IMG_FILE VARCHAR (100) Không Không IMG_CODE VARCHAR (10) Không Không NUM_DOWNLOAD NUMERIC(10,0) Không Không DATE_UPDATE DATE Không Không Bảng 3.6: Hình ảnh SUBJECT_LOGO (Chủ đề Logo) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có SUBJECT_TYPE INTEGER Không Không SUBJECT_NAME VARCHAR (50) Không Không Bảng 3.7: Chủ đề Logo LOGO (Logo) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có SUBJECT_TYPE INTEGER Không Không LG_FILE VARCHAR (100) Không Không LG_CODE VARCHAR (10) Không Không NUM_DOWNLOAD NUMERIC(10,0) Không Không DATE_UPDATE DATE Không Không Bảng 3.8: Logo SMS_TYPE (Kiểu tin nhắn) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có SMS_TYPE INTEGER Không Không TYPE_DETAIL VARCHAR (200) Có Không Bảng 3.9: Kiểu tin nhắn SMS_IN (Tin nhắn yêu cầu) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID NUMERIC(12,0) Không Có TEL_IN VARCHAR(15) Không Không TEL_SER VARCHAR (15) Không Không FULLSMS VARCHAR (160) Có Không TIME_RE DATE Không Không ORDER NUMERIC(11,0) Không Không SMS_TYPE INTEGER Không Không SUCCESS BIT Không Không Bảng 3.10: Tin nhắn nhận SMS_OUT (Tin nhắn gửi khách hàng) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID NUMERIC(12,0) Không Có TEL_OUT VARCHAR(15) Không Không TEL_SER VARCHAR (15) Không Không FULLSMS VARCHAR (160) Có Không TIME_SE DATE Không Không ORDER NUMERIC(11,0) Không Không SMS_TYPE INTEGER Không Không Bảng 3.11: Tin nhắn gửi KEY_SCE (Từ khóa kịch bản) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có KEY_WORD VARCHAR(10) Không Không NAME_SCE VARCHAR (200) Không Không START_DATE DATE Có Không END_DATE DATE Có Không SCE_RULE VARCHAR(15) Không Không TEL_SER INTEGER Không Không LIMITED BIT Không Không Bảng 3.12: Từ khóa kịch bản PAR_SCE (Tham số kịch bản) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có ID_SCE INTEGER Không Không PARAMETER INTEGER Không Không NUM_VALUE INTEGER Không Không Bảng 3.13: Tham số kịch bản PAR_VALUE (Giá trị tham số kịch bản) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID_PARA INTEGER Không Có VAUE VARCHAR(20) Không Không PRE_RE VARCHAR(100) Không Không MID_RE VARCHAR(100) Không Không POS_RE VARCHAR(100) Không Không Bảng 3.14: Giá trị tham số kịch bản RESULT (Kết quả dịch vụ bình chọn) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có SCE_ID INTEGER Không Không ID_MES NUMERIC(11,0) Không Không PRICE_NAME VARCHAR(100) Không Không PRICE_VALUE VARCHAR(100) Không Không CUSTOMER_TEL VARCHAR(15) Có Không CUSTOMER_NAME VARCHAR(100) Có Không CUSTOMER_ADDRESS VARCHAR(200) Có Không Bảng 3.15: Kết quả dịch vụ bình chọn USER_INFO (Thông tin người sử dụng) Tên trường Kiểu dữ liệu Cho phép để trắng Khóa chính Ghi chú ID INTEGER Không Có USERNAME VARCHAR(32) Không Không PASSWORD VARCHAR(32) Không Không EMAIL VARCHAR(50) Có Không BIRTH_DATE DATE Có Không TEL VARCHAR(15) Có Không SERCRET_QUESTION VARCHAR(100) Có Không SECRET_ANSWER VARCHAR(200) Có Không ACOUNT NUMBER(13,0) Không Không Bảng 3.16: Thông tin người sử dụng Mô hình quan hệ giữa các bảng Hình 3.5: Cơ sở dữ liệu hệ thống Xây dựng cơ sở dữ liệu đã thiết kế trên cơ sở dữ liệu Oracle Hệ thống MVAS dự định sẽ xây dựng là một hệ thống lớn còn mở rộng trong tương lai. Hệ thống được xây dựng trên nền tảng ngôn ngữ lập trình java chính vì thế cơ sở dữ liệu được lựa chọn để xây dựng là Oracle 9i. Sau đây là một số so sánh với các cơ sở dữ liệu khác. TT Các Tiêu chí SQL SERVER DB2 ORACLE 1 Tính phổ dụng ở thị trường Việt Nam Cao Thấp Cao 2 Hệ thống đào tạo & Bảo hành - bảo trì - dịch vụ đi kèm TB Cao Cao 3 Quy mô dữ liệu (đạt hiệu quả cao) Thấp. Vài chục ngàn bản ghi . Cao. Hàng triệu bản ghi Cao. Hàng triệu bản ghi 4 Có công cụ phân tích & thiết kế ứng dụng Không Không Có ( Rất hiện đại) 5 Kết nối với Cơ sở dữ liệu Phải qua ODBC hayADO. Tốc độ truy xuất CSDL bị hạn chế Trực tiếp. Tốc độ tốt Trực tiếp qua SQL Net Tốc độ tốt 6 Platform (cơ sở hạ tầng) Kém Phát triển trên nền tảng công nghệ INTEL - WINDOWNT không ổn định Khá PC SERVER, AS400, OS2 Tốt Multi platform: NT, UNIX, PC SERVER RS/6000, SUN, HP... 7 An toàn và bảo mật dữ liệu Thấp ( Thông qua hệ điều hành WINDOWNT) Cao thông qua hệ điều hành OS400 Cao ( Cơ chế bảo mật tới từng bản ghi trong table) 8 Khả năng giải quyết các bài toán dữ liệu phân tán TB Cao Cao 9 Giá thành TB Có nhiều lựa chọn Có nhiều lựa chọn 10 Khả năng nâng cấp Thấp ( chỉ nâng cấp được cấu hình phần cứng) Thấp Cao ( nâng cấp được cơ sở dữ liệu mà không ảnh hưởng dữ liệu; nâng cấp cả phần cứng Bảng 3.17: So sánh giữa cơ sở dữ liệu DB2, MS SQL Server, Oracle 3.3. Xây dựng hệ thống MVAS 3.3.1. Xây dựng hệ MVAS-WEB Hệ thống MVAS-WEB là hệ thống Website được xây dựng trên nền tảng ngôn ngữ java, Tomcat WebServer và cơ sở dữ liệu Oracle. Khi sử dụng ngôn ngữ java mà cụ thể là các trang jsp xây dựng ứng dụng Web thì chúng ta có hai kiến trúc để lựa chọn sau đây: Kiến trúc 1: Kiến trúc 1 là đơn giản, một yêu cầu được gửi đến trang jsp hoặc servlet sau đó trang jsp hay servlet sẽ xử lý và trả lại kết quả yêu cầu. Kiến trúc này dễ xây dựng nhưng gặp khó khăn khi mà lôgic nghiệp vụ trở nên phức tạp. Hình 3.6: Kiến trúc 1 Kiến trúc 2: Kiến trúc 2 được sử dụng khá phổ biến hiện nay, nó còn được gọi dưới cái tên MVC (Model-View-Controller). Kiến trúc này giải quyết được rất nhiều vấn đề phức tạp mà kiến trúc 1 không giải quyết được bằng việc chia thành các phần ứng dụng rất rõ ràng. Phần Controller là Servlet, phần View là jsp và Model là phần logic nghiệp vụ. Tiêu biểu cho kiến trúc này là struts. Hình 3.7: Kiến trúc MVC Với 2 mô hình trên thì chúng ta ứng dụng kiến trúc 1 vào việc xây dựng trang hiện thị các nội dung cung cấp, còn kiến trúc 2 (MVC) vào xây dựng chức năng đăng nhập hệ thống và gửi nội dung từ trang Web. Hệ thống cung cấp thông tin nội dung xây dựng bằng các trang jsp kết hợp với java bin, còn hệ thống đăng nhập và gửi thông tin từ web được xây dựng bằng struts. Xây dựng Website cung cấp nội dung Hệ thống website hiện thị nội dung cung cấp bao gồm các thành phần sau: Trang chủ, ringtone.jsp, image.jsp, logo.jsp. Trang chủ: Mục đích giới thiệu những nhạc chuông, hình nền, logo mới nhất. Hình 3.8: Trang chủ hệ thống web ringtone.jsp: Mục đích là giới thiệu về nhạc chuông theo chủ đề. Hình 3.9: Trang web ringtone.jsp Màn hình chức năng nghe thử nhạc chuông từ web: Hình 3.10: Màn hình chức năng nghe thử nhạc chuông image.jsp: Mục đích là giới thiệu về hình nền theo chủ đề Hình 3.11: Trang web image.jsp logo.jsp: Mục đích là giới thiệu về logo theo chủ đề. Hình 3.12: Trang web logo.jsp Phần đăng nhập và gửi nội dung từ web vẫn nằm trong các trang web trên nhưng thêm phần đăng nhập và kiểm tra đăng nhập. Muốn gửi nội dung thì phải đăng ký là thành viên của website và phải đăng nhập hệ thống. Phần này bao gồm những trang chính sau: register.jsp Hình 3.13: Đăng

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

  • docXây dựng hệ thống XÂY DỰNG HỆ THỐNG MVAS.doc
Tài liệu liên quan