Oleh:
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun Microsystems dan diterbitkan tahun 1995. Java tidak boleh disalah pahami sebagai JavaScript. JavaScript adalah bahasa scripting yang digunakan oleh web browser. Ada beberapa alasan mengapa Java dipilih untuk aplikasi komunikasi bergerak : 1. Java merupakan bahasa pemrograman yang aman. Hal ini disebabkan karena kode Java harus selalu dieksekusi dengan Java Virtual Machine (JVM), yang menyediakan lingkungan yang aman untuk eksekusi kode yang telah di download. Sebuah aplikasi biner dapat mengacaukan sebuah peralatan (misalnya tampilan blue screen pada handphone) namun aplikasi Java, dalam hal yang paling buruk, hanya dapat mengacaukan virtual Machine nya saja. 2. Bahasa pemrograman Java adalah bahasa yang kokoh. Penggunaan garbage collector akan mengurangi waktu yang diperlukan oleh programmer untuk menemukan kebocoran dalam penggunaan memori. Demikian pula penggunaan mekanisme exception pada Java mampu meningkatkan kemampuan programmer dalam membuat aplikasi yang kokoh. Portabilitas Java sangat berguna dalam aplikasi wireless. Pertama, dengan menulis sebuah program saja, aplikasi tersebut dapat dijalankan di berbagai peralatan. Alasan kedua, adalah karena aplikasi tersebut dapat dikirimkan ke sebuah peralatan melalui jaringan wireless (proses ini sering dinamakan overthe- air, atau OTA) provisioning. Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya : a. java.lang: Peruntukan kelas elemen-elemen dasar. b. java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
c. java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan. d. java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP. e. java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI) f. java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.
Java API for XML based messaging (JAXM),Java API for XML Processing (JAXP) dan Java API for XML Binding (JAXB).
Sistem
operasi
menyediakan
identifier
untuk
tujuan
pesan,
memetakannya ke dalam alamat yang berada dalam level rendah untuk mengirim pesan pada port.
Reliabilitas Komunikasi dengan reliabilitas adalah suatu komunikasi yang memiliki nilai validitas dan integritas yang baik. Suatu pesan memiliki reliabilitas baik jika ia terkirim secara utuh dan tidak ada duplikasi. Pengurutan Beberapa aplikasi membutuhkan pesan yang dapat dikirimkan dengan urutan, yaitu urutan transmisi dari sender. Pengiriman pesan yang tidak sesuai urutan dianggap gagal oleh beberapa aplikasi. 2. Socket
Komunikasi antar proses terdiri atas transmisi pesan diantara socket pada salah satu proses dan socket lain pada proses lain, seperti yang digambarkan pada gambar di atas. Untuk menerima pesan, socket harus terhubung dengan local port dan alamat internet computer. Pesan dikirim ke suatu alamat Internet dan port tertentu bisa diterima oleh proses yang socketnya terkait dengan alamat internet dan nomor port. Proses bisa menggunakan socket yang sama untuk mengirim dan menerima pesan. Proses bisa menggunakan lebih dari satu port untuk menerima pesan, namun suatu proses tidak bisa berbagi port dengan proses lain dalam computer yang sama. Namun ada perkecualian untuk proses IP multicast. Sebaliknya berapapun proses bisa mengirimkan pesan ke satu port yang sama. Setiap socket terkait dengan protokol khusus, bisa UDP atau TCP. 3. Java API untuk alamat internet
Java memberikan kelas untuk merepresentasikan alamat internet yaitu InetAddress. Pengguna kelas menunjuk pada computer berdasarkan Domain Name Service (DNS). Sebagai contoh, instans dari InetAddress yang mengandung alamat internet bisa dibuat dengan cara memanggil metode static, dengan memberikan hostname DNS sebagai argument.
Java API untuk Datagram Java API menyediakan dua kelas untuk datagram: DatagramPacket dan Datagram Socket. Format DatagramPacket terdiri atas: Array pesan Panjang pesan Alamat internet Nomor port
Send dan receive Metode ini digunakan untuk mentransmit diagram diantara sepasang
socket. setSiTimeout Metode ini akan mengeset timeout connect Metode ini digunakan untuk menghubungkan dengan port dan alamat internet yang remote. C. KOMUNIKASI DARI STREAM TCP Karakteristik dari stream TCP meliputi : Ukuran pesan Aplikasi bisa memilih seberapa banyak data yang ditulis pada sebuah stream data atau membacanya. Ukuran pesan bisa sangat kecil maupun sangat besar. Status hilang Protokol TCP menggunakan skema acknowledgement. Ketika sebuah packet terkirim pihak penerima akan memberikan acknowledgement atas semua paket yang sudah sampai. Pengaturan Flow Digunakan untuk mengatur kecepatan TCP protokol dan proses agar tetap bisa cocok. Ketika salah satu terlalu cepat maka akan diblock. Pengurutan dan penggandaan pesan Setiap pesan yang memiliki identifier yang terasosiasi pada setiap paket IP. Ini berguna untuk mendeteksi dan menolak duplikasi dan melakukan pengurutan pesan yang sampai. Tujuan Pesan
Sepasang proses terkomunikasi akan membuat satu kobeksi sebelum mereka melakukan komunikasi lewat stream. Komunikasi Stream melakukan metode berikut: 1. Pencocokan data Dua proses harus melakukan persetujuan atyas isi data ada sebuah stream. Jika pasangan proses tidak berkooperasi dengan benar, maka proses pembacaan bisa terjadi eror ketika menginterpretasikan data. 2. Blocking Data yang dituliskan pada stream disimpan pada antrian pada socket tujuan. Proses yang menulis data pada suatu stream akan diblock oleh TCP flow control jika data mengantri pada socket melebihi yang bisa ditampung protokolnya. 3. Thread Thread akan digunakan ketika berkomunikasi dengan klien baru. Keuntunganmenggunakan thread yang berbeda adalah server bisa melakukan blocking ketika menunggu suatu input tanpa harus mendelay klien lain. Failure Model Ketika koneksi terputus, sebuah proses akan diberitahu jika ia berusaha melakukan read atau write. Pengaruhnya adalah seperti berikut: Kegunaan TCP Banyak servis yang berjalan dengan koneksi TCP, dengan jumlah port tertentu. Termasuk protokol berikut: HTTP Hypertext transfer protocol digunakan untuk komunikasi antara browser dan web server FTP File transfer protocol digunakan untuk membuat direktori pada computer remote untuk mengakses file dan folder. File ini juga bisa ditransferkan ke computer. Proses menggunakan koneksi tidak bisa membedakan antara kesalahan jaringan dan kesalahan proses pada sisi lain Proses yang berkomunikasi tidak bisa mengetahui apakah pesan sebelumnya diterima atau tidak
Telnet Menyediakan akses dengan sesi ke computer remote SMTP Simple mail transfer protokol digunakan untuk mengirim mail diantara computerkomputer. Java API untuk STREAMING TCP Java API menyediakan dua kelas untuk TCP stream yaitu kelas ServerSocket dan Socket.ServerSocket digunakan oleh server untuk membuat socket pada sebuah portnya. Sedangkan Socket digunakan oleh sepasang proses yang terkoneksi. D. KOMUNIKASI SERVER-CLIENT Bentuk komunikasi didisain untuk mendukung peran dan pertukaran pesan dalam interaksi clientserver yang khusus. Pada kasus normal, komunikasi requestreply bersifat sinkron karena client memproses blok hingga reply sampai di server. Komunikasi dapat diandalkan karena reply dari server berupa knowledgement ke client. Komunikasi request reply asinkron adalah sebuah alternative yang mungkin sangat berguna dalam situasi dimana client dapat menerima reply setelahnya. E. KOMUNIKASI GRUP Dalam komunikasi grup ini dikenal multicast operation, yaitu operasi yang mengirim pesan tunggal dari proses tunggal ke suatu grup. Terdapat banyak kemungkinan untuk mengadakan komunikasi multicast. Yang paling sederhana adalah komunikasi grup yang tidak memberikan jaminan urutan dan pengiriman pesan. Pesan multicast menyediakan infrastruktur untuk mengkonstruksi sistem terdistribusi dengan karakteristik sebagai berikut : 1. Toleransi Fault berdasar services replicated Replicated service terdiri dari satu grup server. Request client adalah multicast ke seluruh anggota grup. Tiaptiap request melakukan operasi yang serupa. Apabila beberapa anggota gagal, client lain tetap dapat dilayani. 2. Menemukan discovery server dalam jaringan spontaneous Pesan multicast digunakan oleh sever dan klien untuk menentukan service discovery yang tersedia guna mendaftarkan interface atau melihat interface layanan lainnya dalam system terdistribusi. 3. Performansi yang lebih baik melalui data replikasi Data direplikasi untuk meningkatkan performansi layanan. Tiap waktu data berubah, nilai baru dimulticast ke proses untuk mengatur replica. 4. Propagasi dari event notifications
Multicast ke grup dapat digunakan untuk memberitahu proses ketika sesuatu terjadi. Misalnya, suatu sistem baru mungkin memberitahu user ketika pesan baru telah dikiri ke newsgroup tertentu. Sistem Jini menggunakan multicast untuk menginformasikan keberadaannya. client tertentu ketika layanan baru memberi tahu
10