WAP untuk pengembang Java

Sebagian besar teknologi Internet telah dirancang untuk desktop dan komputer besar yang berjalan pada jaringan yang dapat diandalkan (dengan bandwidth yang relatif tinggi). Perangkat nirkabel genggam, bagaimanapun, memiliki lingkungan komputasi yang lebih terbatas dibandingkan dengan komputer desktop. Perangkat genggam cenderung memiliki lebih sedikit memori, CPU kurang kuat, perangkat input yang berbeda, dan layar yang lebih kecil. Lebih lanjut, jaringan nirkabel memiliki lebih sedikit bandwidth dan lebih banyak latensi dibandingkan dengan jaringan komputer berkabel.

WAP, Protokol Aplikasi Nirkabel, dirancang untuk memanfaatkan beberapa pendekatan penanganan data yang sudah digunakan. WAP mengintegrasikan Handheld Device Markup Language (HDML) dan Handheld Device Transport Protocol (HDTP) yang dikembangkan oleh Unwired Planet (sekarang dikenal sebagai Phone.com), serta Nokia's Smart Messaging Protocol (SMP), dan Intelligent Terminal Transfer Protocol ( ITTP). Layanan WAP dapat disimpan di server Web menggunakan teknologi seperti Java servlet dan JavaServer Pages (JSP). Pada artikel ini, saya tunjukkan kepada Anda bahwa WAP dan Java adalah teknologi yang saling melengkapi, bukan bersaing. WAP ditujukan untuk telepon seluler, dan Java ditujukan untuk terminal jaringan yang lebih canggih.

Platform WAP adalah spesifikasi terbuka yang membahas karakteristik jaringan nirkabel dengan mengadaptasi teknologi jaringan yang ada (dan memperkenalkan yang baru jika sesuai) dengan persyaratan khusus perangkat nirkabel genggam. Oleh karena itu, WAP bermaksud untuk membakukan cara perangkat nirkabel (ponsel, PDA, dan sebagainya) mengakses data dan layanan Internet. Penggunaan kembali protokol Internet yang ada oleh WAP akan memudahkan pengembangan layanan WAP untuk Java dan pengembang Web lainnya.

Untuk memudahkan pengiriman data internet ke perangkat nirkabel tentunya akan mengarah pada pengenalan teknologi baru. Misalnya, perangkat nirkabel memiliki layar kecil dibandingkan dengan komputer desktop, dan oleh karena itu HTML (yang kaya visual) tidak sesuai untuk layar kecil. Layar kecil dan daya komputasi, yang meningkat, merupakan faktor pembatas dalam menjalankan aplikasi Java yang rumit dengan grafik yang intensif. Namun, upaya sedang dilakukan untuk memiliki subset bahasa Java yang cocok untuk aplikasi seluler. Pada artikel ini, Anda akan mempelajari bagaimana mengembangkan aplikasi WAP menggunakan servlet Java dan Java Server Pages.

Tetapi pertama-tama, saya menjelaskan platform WAP dan bagaimana ia menggabungkan beberapa teknologi yang mirip dengan yang sudah ada tetapi telah dirancang khusus untuk perangkat nirkabel.

Arsitektur WAP

Standar WAP mendefinisikan dua elemen penting: protokol aplikasi ujung ke ujung dan lingkungan aplikasi berdasarkan browser. Protokol aplikasi adalah tumpukan protokol komunikasi yang disematkan di setiap perangkat nirkabel yang mendukung WAP (juga dikenal sebagai agen pengguna). Sisi server mengimplementasikan ujung protokol yang lain, yang mampu berkomunikasi dengan klien WAP apa pun. Sisi server dikenal sebagai gateway WAP dan merutekan permintaan dari klien ke server HTTP (atau Web). Gateway WAP dapat ditemukan di jaringan telekomunikasi atau di jaringan komputer (ISP). Gambar 1 mengilustrasikan contoh struktur jaringan WAP.

Pada Gambar 1, klien berkomunikasi dengan gateway WAP di jaringan nirkabel. Gateway WAP menerjemahkan permintaan WAP menjadi permintaan WWW, sehingga klien WAP dapat mengirimkan permintaan ke server Web. Juga, gateway WAP menerjemahkan tanggapan Web menjadi tanggapan WAP atau format yang dipahami oleh klien WAP.

Model pemrograman WAP

Model pemrograman WAP mirip dengan model pemrograman Web dengan ekstensi yang cocok, tetapi mengakomodasi karakteristik lingkungan nirkabel. Gambar 2 mengilustrasikan model ini.

Seperti yang Anda lihat, model pemrograman WAP sangat didasarkan pada model pemrograman Web. Tetapi bagaimana cara kerja gateway WAP dengan HTML? Dalam beberapa kasus, layanan data atau konten yang terletak di server Web berbasis HTML. Beberapa gateway WAP dapat dibuat untuk mengubah halaman HTML menjadi format yang dapat ditampilkan pada perangkat nirkabel. Tetapi karena HTML tidak benar-benar dirancang untuk layar kecil, protokol WAP menentukan bahasa markupnya sendiri, Wireless Markup Language (WML), yang mengikuti standar XML dan dirancang untuk mengaktifkan aplikasi yang kuat dalam batasan perangkat genggam. Dalam kebanyakan kasus, aplikasi sebenarnya atau konten lain yang terletak di server Web adalah WAP asli yang dibuat dengan WML atau dibuat secara dinamis menggunakan Java servlet atau JSP.

Dalam HTML, tidak ada fungsi untuk memeriksa validitas masukan pengguna atau untuk menghasilkan pesan dan kotak dialog secara lokal. Untuk mengatasi keterbatasan ini, JavaScript dikembangkan. Demikian pula, untuk mengatasi pembatasan yang sama di WML, bahasa skrip baru yang dikenal sebagai WMLScript telah dikembangkan. Saya akan membahas lebih lanjut tentang WML dan WMLScript di bagian selanjutnya.

Tumpukan protokol WAP

Untuk meminimalkan kebutuhan bandwidth, dan menjamin bahwa berbagai jaringan nirkabel dapat menjalankan aplikasi WAP, tumpukan protokol ringan baru yang disebut tumpukan protokol WAP dikembangkan. Gambar 3 mengilustrasikan protokol tumpukan ini dan juga menunjukkan perbandingan dengan tumpukan protokol berbasis web. (Akronim lapisan dapat diterjemahkan ke Wireless Application Environment, Wireless Session Protocol, Wireless Transaction Protocol, Wireless Transport Layer Security, dan Wireless Datagram Protocol).

Tumpukan protokol WAP memiliki empat lapisan: lapisan sesi, lapisan transaksi, lapisan keamanan, dan lapisan datagram. Perhatikan bahwa protokol WAP dirancang untuk beroperasi pada berbagai layanan pembawa, termasuk Code Division Multiple Access (CDMA), Cellular Digital Packet Data (CDPD), dan sebagainya.

WML

Wireless Markup Language (WML) adalah bahasa markup berbasis XML yang dirancang untuk menjelaskan bagaimana konten WAP ditampilkan pada terminal nirkabel. WML berbeda dari HTML sebagai berikut:

  • WML dirancang khusus untuk terminal nirkabel dengan layar target yang panjangnya hanya beberapa baris dan lebar sekitar satu inci.
  • WML peka huruf besar / kecil, dan semua tag dan atribut harus menggunakan huruf kecil.
  • Tidak seperti HTML, WML tidak memaafkan tag bertingkat yang salah.
  • WML tidak berasumsi bahwa keyboard atau mouse "QWERTY" tersedia untuk input pengguna.

Berdasarkan perbedaan ini, WML menyediakan set tag yang lebih kecil dan sadar-telepon yang membuatnya lebih sesuai daripada HTML untuk terminal nirkabel genggam. Serupa dengan HTML, dengan WML Anda dapat memberikan opsi input pengguna dan menentukan bagaimana agen pengguna harus merespons ketika, misalnya, pengguna menekan tombol.

Asal mula WML

Unit dasar WML adalah kartu yang menetapkan satu interaksi antara pengguna dan agen pengguna. Beberapa kartu dikelompokkan menjadi satu dalam tumpukan. Dek adalah elemen paling atas dari dokumen WML. Saat agen pengguna menerima setumpuk (dengan mengunduh setumpuk lengkap), ini hanya mengaktifkan kartu pertama di dek. Kode 1 menunjukkan contoh dokumen WML dengan satu kartu:

Kode 1. Example1.wml

Contoh WML Pertama Saya

Ketika dilihat pada telepon yang mendukung WAP, Daftar 1 ditampilkan dan ditampilkan seperti yang ditunjukkan pada Gambar 4.

Seperti yang saya sebutkan sebelumnya, WML didasarkan pada XML. Oleh karena itu, dek harus berupa dokumen XML yang valid, yang menyiratkan bahwa dokumen WML (seperti yang ditunjukkan pada Daftar 1) harus dimulai dengan header XML standar dan referensi ke DTD WML. Itu

Now, take a look at an example that has two cards and uses other WML features. Listing 2 shows the Ottawa City Guide example.

Listing 2. Example2.wml

Business

Education

Entertainment

Restaurants

Shopping

Travel

Weather

Canadian

Chinese

Continental

French

German

Greek

Italian

This example was developed using the Ericsson WapIDE (WAP integrated development environment). WapIDE is shown in Figure 5 along with the output of Listing 2.

The example in Listing 2 has two cards: city and food. When a device receives this deck, it loads the first card automatically as shown in Figure 6.

Once the city card is loaded, you can navigate through it using the soft key on your device. Figure 7 shows what happens when the Restaurants option is selected.

Navigation in this example is implemented using anchors (), which are the WML counterpart of tags in HTML. An anchor can be defined as:

 Go to food   

This is identical to:

Go to food 

In the preceding example, I have used instead of because it allows more efficient tokenization. The same thing can be accomplished using the element. For example, the preceding anchor is identical to:


  

Therefore, , , and can all contain a task. The only difference is that anchors do not appear as an option in the soft-key menu, but are rendered as links (similar to HTML links) in WML.

Graphics in WML

Like HTML, WML has an tag to support images. However, I should note a couple things about the tag in WML. First, the alt attribute of the tag is mandatory. Second, it is one of the few tags in WML that doesn't have a closing tag. Therefore, it needs to have its own closing mark (/) in the tag, as shown in Listing 2.

In the preceding food card, I am using the image food.wbmp. The new .wbmp format stands for wireless bitmaps, which is specifically designed for wireless devices with a small monochrome screen. You can use a package like Paint Shop Pro to create your graphics, but to be able to save or edit the .wbmp format, you need a converter or a plugin. See Resources for URLs.

There are other tags defined in WML, such as , and tags for user input. More important, WML integrates variables in a different way from that used in HTML and JavaScript.

WMLScript

WMLScript, which is based on ECMAScript (the standard for JavaScript), is a language that you can use to provide programmed functionality to WAP applications. It is part of the WAP specification, and it can be used to add script support to the client. The main difference between WMLScript and ECMAScript is that WMLScript is compiled into byte code before it is sent to the client. The main reason for this is of course to cope with the narrowband communication channels and to keep client memory requirements to a minimum.

You can use WMLScript to check the validity of user input, but most important, you can use it to generate messages and dialogs locally, so error messages and confirmations can be viewed faster, and to access facilities of the user agent -- for example, it allows the programmer to make phone calls, access the SIM card, or configure the user agent after it has been deployed.

WAP and Java

WAP applications, which will be hosted on normal Web servers, can be written in WML and WMLScript. But you can also write them using existing Web technologies. Dynamic WML documents can be generated by CGI scripts, servlets, JavaServer Pages, Active Server Pages, Perl, Tcl, and so forth. In other words, you can implement your own first WAP service in Java, with the help of the WAP technologies described earlier. In this section, I am going to show you how WAP applications can be easily developed in Java using servlets and JSP.

WAP and servlets

Dynamic WML documents for wireless devices can be easily developed using Java servlets. Once you know the WML syntax, building WAP applications using Java servlets can be an easy task.