Download Buku Membangun Aplikasi Client Server Menggunakan Java


Daftar Isi

  • Apa Itu RMI?
  • Syarat object bisa diakses lewat RMI
  • Class harus implements Interface
  • Interface harus extends java.rmi.Remote
  • Class harus exteds java.rmi.server.UnicastRemoteObject
  • Class harus memiliki konstruktor yang throw java.rmi.RemoteException
  • Seluruh metode Interface harus throw java.rmi.RemoteException
  • Membuat Server RMI
  • Menyimpan Object ke Server
  • Menghapus Object dari Server
  • Membuat Client RMI
  • Mengakses Object yang ada di Server
  • Menjalankan RMI
  • Menjalankan Server
  • Menjalankan Client
  • Aplikasi SayHello Berbasih Client-Server
  • Membuat Interface SayHello
  • Membuat Class SayHelloServer
  • Cara membuat project Client Server di NetBeans IDE
  • Membuat Server SayHello
  • Membuat Client SayHello
  • Menjalankan Aplikasi SayHello
  • Lampiran
  • Instalasi JDK
  • Instalasi NetBeans IDE
  • Instalasi MySQL
  • Tentang Penulis

Download

SIlahkan klik tautan dibawah ini untuk mengunduh ebook Membangun Aplikasi Client-Server Menggunakan Java secara gratis :D

http://stripbandunk.googlecode.com/files/Membangun-Aplikasi-Client-Server-Dengan-Java.pdf

Selamat membaca :D

Iklan

Mendeteksi Terputusnya Koneksi dalam Remote Method Invocation


RMI (Remote Method Invocation) merupakan salah satu teknologi dalam Java yang dapat digunakan untuk membangun aplikasi berbasis client-server. Dalam membangun aplikasi client-server, kita tidak bisa menjamin bahwa koneksi jaringan akan selalu stabil. Bisa saja suatu waktu koneksi terputus. Lantas bisakah kita mendeteksi ketika koneksi dari client ke server terputus?

Pasti bisa, karena dalam RMI setiap metode yang di remote akan mengeluarkan error RemoteException, sehingga jika terjadi error tersebut, maka otomatis jaringan terputus. Namun jika kita membangun kelas dengan banyak metode, maka apa kita harus mengecek di semua metode?

Enggak juga 😀 Kita bisa membuat sebuah remote method ping() yang dapat kita gunakan untuk melakukan proses ping ke server, jika proses ping tersebut gagal, maka otomatis koneksi ke server terputus, dan saat itu kita jalankan di client aksi saat koneksi terputus, misal memberi tahu pengguna client bahwa koneksi terputus.

Jadi bagaimana cara pembuatannya? Pertama buatlah sebuah interface Ping yang digunakan untuk melakukan ping. Baca lebih lanjut

Memanfaatkan ConcurrentLinkedQueue sebagai Manajeman Tugas yang Multithreaded


Membangun sistem yang multithreaded tidaklah mudah, banyak sekali yang harus diperhatikan, seperti syncronisasi resource yang digunakan antar thread sampai jangan sampai terjadi deadlock pada sistem yang dibangun. Contohnya jika kita membangun sebuah sistem berbasis client-server, maka otomatis server harus dapat menangani permintaan client yang terjadi secara bersamaan.

Misal ada sebuah Bank, bank tersebut tidak melakukan sistem antrian untuk nasabah yang datang ke Bank tersebut, sehingga nasabah dapat seenaknya datang ke teller. Bisa dibayangkan apa yang akan terjadi saat teller hanya ada 5 dan nasabah sekaligus datang sebanyak 50 orang, maka bisa dipastikan teller akan kewalahan menanganinya, bahkan bisa jadi teller salah melakukan pelayanan.

Namun berbeda jika Bank tersebut menggunakan sistem antrian, maka otomatis dengan begitu, satu teller akan menangani satu nasabah. Bahkan walaupun pada Bank tersebut hanya ada satu teller, maka jika yang datang ada 100, maka teller tersebut tetap dapat menanganinya karena adanya sistem antrian, sehingga hanya satu nasabah yang dapat datang ke teller, dan nasabah yang lainnya harus menunggu sampai nasabah yang berada didepannya selesai bertransaksi dengan teller.

Sekarang kembali ke topik…

Misal kita membangun sebuah sistem berbasiskan client-server, dimana terdapat sebuah server dan banyak client. Client dapat melakukan permintaan ke server, permintaan tersebut bisa berupa request data atau perintah menjalankan tugas. Request dari client bisa datang kapan saja, sehingga bisa saja pada saat yang bersamaan beberapa client melakukan request ke server. Jika kita tidak menggunakan sistem antrian, maka kejadian pada Bank sebelum menggunakan proses antrian dapat terjadi. Dengan begitu perlu dilakukan sistem antrian pada sistem server, sehingga proses request dari client dapat dieksekusi satu per satu oleh server.

Dalam java, struktur data antrian adalah Queue, namun Queue tidaklah thread safe. Karena sistem yang dibangun berbasiskan miltithread, maka kita dapat menggunakan ConcurrentLinkedQueue, yang merupakan Queue thread safe.

package khannedy.learning.queue;

import java.util.concurrent.ConcurrentLinkedQueue;

public class Server implements Runnable {

	private ConcurrentLinkedQueue<Tugas> queue = new ConcurrentLinkedQueue<Tugas>();
	private Thread thread;

	public Server() {
		thread = new Thread(this);
	}

	public void tambahTugas(Tugas tugas) {
		queue.offer(tugas);
	}

	public void startServer() {
		thread.start();
	}

	public void stopServer() {
		thread.interrupt();
	}

	@Override
	public void run() {
		while (!thread.isInterrupted()) {
			Tugas tugas = queue.poll();
			if (tugas != null) {
				// eksekusi tugas...
			}
		}
	}

}

Kode diatas adalah contoh sederhana dari sistem server, metode startServer() digunakan untuk menjalankan server, metode stopServer() digunakan untuk menghentikan server dan metode tambahTugas(Tugas) digunakan untuk menambah tugas, metode tambahTugas(Tugas) digunakan oleh client untuk menambahkan tugas ke server.

Download eBook Membangun Aplikasi Client Server Menggunakan Java RMI


Membangun Aplikasi Client Server Menggunakan Java

Membangun Aplikasi Client Server Menggunakan Java

Kata Pengantar

Selamat datang di buku “Membangun Aplikasi Client Server dengan Java”. Dimana dalam buku ini saya akan membahas tentang cara membangun aplikasi Client Server dengan Java memanfaatkan fasilitas yang dimiliki oleh Java yaitu RMI.

Saat ini jarang sekali aplikasi yang dibangun standalone, kalaupun ada biasanya program tersebut bersifat general seperti OpenOffice, GIMP, Photoshop. Kebanyakan aplikasi saat ini yang dibuat untuk mengelola
Database, biasanya dibangun menggunakan konsep Client Server.

Misal saja aplikasi perpustakaan akan lebih baik jika dibangun menggunakan konsep Client Server, kenapa? Jika kita menggunakan konsep Client Server, maka seluruh aktifitas manipulasi data ke database akan terpusat di Server, sehingga Client tidak akan tau menahu tentang urusan Database, Client hanya merequest dan Server lah yang melakukan. Hal ini sangat baik karena Client tidak akan bekerja keras karena semuanya dikerjakan oleh Server, selain itu tingkat keamanan Sistem akan lebih terkontrol karena Client tidak akan langsung berhubungan dengan Database, melainkan harus lewat Server.

Download

Download eBook-nya