Rabu, 23 Januari 2013

Replikasi Database dan Webservice

Menindak lanjuti tugas yang pertama dan kedua sekarang saya menuliskan lagi tugas sistem terdistribusi mengenai replikasi database yang acaranya dirangkaikan dengan webservice #ce illeh, kaya pesta aja ada rangkaian acara :D,, oke cekidooot...

  1. Replication Database

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 ini 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).

Konfigurasi Master Server
Adapun yang harus dilakukan adalah:
Membolehkan (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
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

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
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 ditest, 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.
Di bawah ini adalah struktur gambaran replikasi database sekaligus penggunaan 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 webservice agar bisa di akses dari jaringan public. Fungsi slave server (server1) di sini mereplikasi database dari master server, didalam 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.

Untuk contoh webservicenya bisa di lihat di sini

2 komentar:

  1. www.indobet77.com

    Master Agen Bola , Casino , Tangkas , Togel Terbesar
    dan Terpercaya Pilihan Para Bettor

    Promo Terbaru :
    - Bonus  10% New Member Sportsbook
    - Bonus 5% New Member Casino Online
    - Bonus 10% Setiap Hari Bola Tangkas
    - CASHBACK untuk Member
    - BONUS REFERRAL 5% + 1% Seumur Hidup

    untuk Informasi lebih jelasnya silahkan hubungi CS kami :
    - YM : indobet77_sb2@yahoo.com
    - EMAIL : indobet77@gmail.com
    - WHATSAPP : +63 905 213 7238
    - WECHAT : indobet77
    - SMS CENTER : +63 905 213 7238
    - PIN BB : 2B65A547 / 24CC5D0F

    Salam Admin ,
    http://indobet77.com/

    BalasHapus
  2. Pengen yang lebih seru ...
    Ayo kunjungi wwwasianbet77com
    Buktikan sendiri ..

    Real Play = Real Money

    - Referal 5 + 1 % ( seumur hidup ) .
    - Cash Back up to 10 % .
    - Bonus Royalty Rewards setiap bulan .

    untuk Informasi lebih jelasnya silahkan hubungi CS kami :
    - YM : op1_asianbet77@yahoo.com
    - EMAIL : asianbet77@yahoo.com
    - WHATSAPP : +63 905 213 7234
    - WECHAT : asianbet_77
    - SMS CENTER : +63 905 209 8162
    - PIN BB : 2B4BB06A / 28339A41

    Salam Admin ,
    http://asianbet77.com/

    BalasHapus