Sabtu, 02 Februari 2013

Replikasi Basis Data, Web Service, dan Replikasi Basis Data dalam Web Service

1. Replikasi Basis Data

Replikasi database bisa di artikan pengcopyan data atau mentransfer data dari database ke database lain yang tersimpan pada komputer yang berbeda dalam satu jaringan. Untuk membuat replikasi ini minimal di butuhkan 2 komputer yang saling terkoneksi, satu komputer sebagai master server dan yang satunya lagi sebagai slave server. Master server sendiri berfungsi sebagai pusat dari pengolahan data, sedangkan slave master berfungsi
pencatat sekaligus replikasi/pengcopyan data dari master server.


Di atas adalah gambaran setruktur replikasi database yang akan di implementasikan pada web nantinya. Sekarang kita buat replikasinya. Pertama-tama siapkan semua kebutuhan yaitu 2 mesin berbasis Ubuntu yang telah diinstal MySQL. Nah mesin pertama (misal IP: 192.168.1.5) yang akan kita gunakan sebagai Master dan yang kedua (misal IP: 192.168.1.1) sebagai Slave, pastikan terkoneksi dalam jaringan dan tidak ada masalah dengan port yang digunakan MySQL (defaultnya 3306).

 1.1. Konfigurasi Master Server

Langkah-langkah konfigurasi antara lain:
Memperbolehkan (enable) networking untuk MySQL, sehingga MySQL di mesin ini bisa diakses dari jaringan/berbagai IP Address. Caranya dengan memastikan pada my.cnf (biasanya di /etc/mysql/my.cnf) 2 baris, ‘skip-networking’ dan ‘bind-address=127.0.0.1' tidak aktif dengan menambahkan karakter komentar (#) di awal barisnya, sehingga menjadi;
# skip-networking
# bind-address = 127.0.0.1


Selanjutnya setup lokasi file log-bin, id-server dan nama database (di tutorial ini kita akan menggunakan database tes).
server-id = 12345
log_bin = /var/log/mysql/mysql-bin.log
max_binlog_size = 100M = 10
binlog_do_db = tes


Agar konfigurasi baru bisa langsung berfungsi, silahkan restart MySQL dengan perintah:
#/etc/init.d/mysql restart

 1.1.1.Konfigurasi MySQL Master Server

Setelah kita selesai dengan konfigurasi file my.cnf sekarang kita masuk ke MySQL dengan perintah:#mysql -u root -p

Maka prompt-nya akan berubah dari $ (atau #) menjadi mysql> . Nah disini kita akan membuat user baru database MySQL yang akan diberi hak untuk melakukan replikasi;
mysql> GRANT REPLICATION SLAVE ON *.* TO 'tiptop' @ '%' IDENTIFIED BY 'tiptop';
mysql> FLUSH PRIVILEGES;


Keterangan = Username 'tiptop' dan Password 'tiptop' silahkan ganti sesuai keinginan. Setelah itu kita ambil informasi binary log dari database yang kita ingin replikasi,
mysql> CREATE DATABASE tes;
mysql> USE tes;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;



Maka akan muncul keluaran seperti ini:




Simpan informasi ini untuk digunakan pada konfigurasi di mesin Slave. Setelah itu jangan lupa unlock dulu semua table tadi, dan keluar dengan perintah;
mysql> UNLOCK TABLES;
mysql> quit


 1.2. Konfigurasi Slave Server

Edit file my.cnf yang berada pada folder /etc/mysql/my.cnf dengan perintah:
#nano /etc/mysql/my.cnf
server-id = 12
master-host=192.168.1.5
master-user=tiptop
master-password=tiptop
master-connect-retry=60
replicate-do-db=tes


Keterangan:
Nilai server-id, dapat diganti dengan angka integer positif selain 12345 yang sudah dipakai oleh Master.

Setelah selesai restart MySQLnya dengan perintah:
#/etc/init.d/mysql restart


1.2.1.Konfigurasi MySQL Slave Server

Setelah kita selesai dengan konfigurasi file my.cnf sekarang kita masuk ke MySQL di terminal dan jalankan, perintah berikut ini;
#mysql -u root -p
mysql>SLAVE STOP;
mysql>CHANGE MASTER TO MASTER_HOST=’192.168.1.5′, MASTER_USER=’tiptop’, MASTER_PASSWORD=’tiptop‘,
MASTER_LOG_FILE=’mysql-bin.000001‘,
MASTER_LOG_POS=187;
mysql>START SLAVE;
mysql>FLUSH PRIVILEGES;
mysql> SHOW SLAVE STATUS \G
mysql>exit;


Silahkan dites, harusnya kalau tidak ada langkah yang salah, jika di Master server terjadi perubahan database, maka database Slave server akan ikut berubah.

 2.Web Service

Web service merupakan layanan di dalam suatu lingkungan web yang terdiri dari method yang siap pakai. Web service bersifat independent (tidak tergantung pada platform), karena melakukan pertukaran data dengan XML. Teknologi web service memungkinkan kita dapat menghubungkan berbagai jenis software yang memiliki platform dan sistem operasi yang berbeda.

Jadi, kita tetap mendapatkan sebuah potongan informasi dari suatu website tanpa harus mengunjungi website tersebut, cukup dengan mengetahui fungsi/method web service yang disediakan oleh web itu. Kita dapat mengakses potongan informasi itu dengan meletakkan fungsi/method itu pada aplikasi kita.
Untuk membuat web service ini di butuhkan NuSOAP. NuSOAP adalah library yang digunakan untuk membangun web service berbasis SOAP yang ditulis dengan menggunakan bahasa PHP. Dan library ini di simpan di dalam client dan server.

Dalam membangun sebuah sistem aplikasi berbasis web service, dibutuhkan dua komponen utama yaitu, server sebagai provider entity dan client sebagai requester entity.

 3.Kombinasi Replikasi Basis Data dan Web Service    


Di atas adalah gambar arsitektur Replikasi Database dan webservice, Di mana ip master server (server) adalah 192.168.1.5 dan ip slave master (server1) yang ke jaringan local adalah 192.168.1.1 sedangkan ip publiknya 202.91.10.214. Master server (server) ini hanya bisa di akses dari jaringan local saja sehingga di butuhkan web service agar bisa di akses dari jaringan public. Fungsi slave server (server1) di sini mereplikasi database dari master server, di dalam server1 (lab.akprind.ac.id) di tanamkan server.php yang isinya adalah fungsi fungsi untuk menampilkan, update, tambah dan delete, yang nantinya dapat di akses dari client (ayhez.16mb.com).

Untuk fungsi menampilkan data (membaca data), database yang di akses adalah database slave server, sedangkan untuk fungsi tambah, edit dan delete database yang digunakan adalah database master server. Jadi saat jaringan lokal mati maka proses tambah, edit dan delete tidak berfungsi karena master server berada pada jaringan lokal, tetapi untuk proses menampilkan data dapat berfungsi karena database yang di akses adalah slave server yang berada pada jaringan publik.



Berikut adalah link simulasi dari client replikasi database dan code untuk server web service.

Tidak ada komentar:

Posting Komentar