BAB I PENDAHULUAN

advertisement
BAB I
PENDAHULUAN
1.1 Latar Belakang
Arsitektur software three tier berkembang pada tahun 1990an untuk mengatasi
keterbatasan arsitektur two-tier(client-server). Pada gambar I-1 dapat dilihat bahwa
arsitektur ini menambahkan middle tier server yang berada di antara komponen
presentation/user interface tier dan komponen data management tier. Middle tier
server ini merupakan tempat dilakukan eksekusi application/business logic dari suatu
aplikasi dan dapat mengakomodasi ratusan user dengan menyediakan fasilitas seperti
queueing, application execution, dan database staging. Dibandingkan dengan two tier
[DIC95], arsitektur three tier meningkatkan performansi, fleksibilitas, kemudahan
perawatan, reusability, dan scalability. Selain itu arsitektur ini juga menyembunyikan
kompleksitas pemrosesan dari user. Karena sifatnya tersebut, arsitektur ini merupakan
pilihan yang populer pada aplikasi Internet dan sistem informasi yang membutuhkan
banyak pertukaran data pada jaringan komputer.
Gambar I-1 Three Tier Architecture
Untuk membuat aplikasi dengan arsitektur three tier yang reliable, dibutuhkan server
yang fault tolerant. Fault tolerant merupakan suatu properti dari sistem yang
membuat sistem tersebut dapat terus beroperasi walaupun ada kegagalan dari sebagian
komponen sistem. Properti fault tolerant ini dibutuhkan untuk membangun sistem
dengan tingkat availability yang tinggi. Contoh sistem yang harus memiliki properti
fault tolerant adalah sistem perbankan yang harus melayani ribuan transaksi perhari;
I-1
I-2
apabila sistem mengalami kegagalan yang mengakibatkan banyak transaksi gagal,
maka bank akan mengalami kerugian yang besar.
Properti fault tolerant ini dapat diimplementasikan dengan menggunakan strategi
replikasi sehingga kegagalan sebuah komponen dapat digantikan oleh replikanya.
Gambar I-2 Replikasi pada Three Tier Architecture
Pada arsitektur three tier di gambar I-2, komponen middle tier dan data management
tier merupakan komponen yang vital untuk direplikasi.
Replikasi pada data
management tier telah banyak tersedia. Contohnya adalah MySQL Cluster untuk
MySQL. Karena alasan inilah, pembahasan replikasi akan difokuskan kepada bagian
middle tier.
Secara umum, interaksi pada aplikasi three tier yang mendukung proses transaksional
adalah sebagai berikut :
a. User mengirimkan request ke mid-tier via user interface. Request dari user
dapat dijalankan sebagai sebuah transaksi terpisah atau sebagai bagian dari
sebuah transaksi yang meliputi beberapa eksekusi request user sekaligus.
b. Untuk eksekusi request user yang merupakan awal dari sebuah transaksi, midtier akan mengirimkan perintah begin transaction ke DBMS (Database
Management System).
c. Mid-tier memproses request dari client dengan menggunakan data yang
diambil dari database. Setelah proses selesai, mid-tier akan mengirimkan
hasilnya ke client.
d. Request berikutnya dari client yang masih merupakan bagian dari transaksi
yang sama akan dieksekusi seperti pada tahap (c). Pada saat akhir pelaksanaan
I-3
eksekusi request yang merupakan akhir dari sebuah transaksi, mid-tier akan
mengirimkan perintah end transaction ke DBMS. Setelah transaksi berakhir,
maka data akan menjadi permanen.
Untuk memudahkan mid-tier mengakses database pada data management tier
dibutuhkan suatu mekanisme standar pengaksesan yang diterjemahkan ke dalam
bentuk API (Application Programming Interface). Ada beberapa standar API untuk
mengakses database diantaranya adalah ODBC (Open Database Connectivity) dan
JDBC (Java Database Connectivity). ODBC menyediakan akses yang tidak
tergantung kepada bahasa pemrograman, DBMS, atau sistem operasi serta
mempunyai paradigma prosedural. Sedangkan JDBC menyediakan akses database
untuk Java Platform dengan paradigma berorientasi objek. Pemilihan JDBC untuk
pengerjaan tugas akhir ini disebabkan oleh banyaknya application server di mid-tier
yang berjalan di atas Java Platform sehingga pemakaian JDBC yang berbasis Java
Platform akan lebih efisien.
JDBC Connector merupakan suatu program yang yang menyediakan akses bagi
aplikasi Java ke berbagai macam database. JDBC Connector akan menghubungkan
aplikasi Java dengan driver JDBC yang disediakan oleh vendor database maupun
oleh Third Party.
Pada sistem yang tereplikasi, jika terjadi kegagalan pada middle tier server, backup
server dapat mengambil alih komputasi dan meneruskan transaksi yang gagal. Namun
yang menjadi masalah adalah saat terjadi kegagalan, semua transaksi yang sedang
aktif akan dibatalkan (abort), meskipun mungkin saja client telah menerima hasil
eksekusi request yang merupakan bagian dari transaksi yang batal tersebut. Saat
transaksi tersebut dieksekusi oleh backup mid-tier server, mungkin saja eksekusi
transaksi ini menghasilkan data yang berbeda dengan transaksi asalnya karena apabila
koneksi antara mid-tier dengan DBMS terputus, semua lock pada data akan dilepas
sehingga ada kemungkinan client lain yang mempunyai prioritas yang lebih tinggi
untuk melakukan transaksi daripada backup server melakukan perubahan terhadap
data tersebut.
I-4
1.2 Rumusan Masalah
Berdasarkan pada latar belakang di atas, maka masalah yang akan dikaji dan
diselesaikan dalam tugas akhir ini adalah:
1. Bagaimana cara MySQL Server berkomunikasi dengan client.
2. Apa yang diperlukan pada sisi database server agar dapat mendukung
replikasi pada middle tier, dimana application server di middle tier akan
berkomunikasi dengan DBMS MySQL dengan menggunakan connector
JDBC.
3. Bagaimana strategi replikasi pada middle tier dapat diterapkan dengan
menggunakan protokol komunikasi yang sudah ada.
1.3 Tujuan
Tujuan utama tugas akhir ini adalah mengimplementasikan JDBC connector yang
fault tolerant pada DBMS MySQL untuk mendukung replikasi di middle tier. Adapun
tujuan detil yang ingin dicapai dalam pelaksanaan Tugas Akhir ini adalah sebagai
berikut :
1. Memahami protokol komunikasi antara driver JDBC dengan MySQL.
2. Memodifikasi MySQL Server sehingga memungkinkan terjadinya koneksi
yang fault tolerant dengan middle tier server.
1.4 Batasan Masalah
Dalam pengerjaan Tugas Akhir ini, ditetapkan beberapa batasan masalah, yaitu:
1. Pengembangan aplikasi dilakukan di layer aplikasi (application layer) pada
TCP/IP stack.
2. Penanganan fault tolerance diimplementasikan di sisi database server (data
management tier).
3. Implementasi fault tolerance yang dilakukan adalah terhadap koneksi ke basis
data, bukan basis data itu sendiri.
1.5 Metodologi
Dalam penyusunan Tugas Akhir ini akan dilakukan tahapan-tahapan sebagai berikut:
I-5
1. Studi literatur dan eksplorasi
Tahap ini dilakukan dengan mempelajari literatur-literatur baik berupa
textbook maupun artikel yang terdapat pada Internet. Eksplorasi dilakukan
dengan mempelajari dokumentasi internal MySQL dan source code MySQL
pada bagian penanganan koneksi dan transaksi.
2. Analisis dan perancangan
Analisis dan perancangan dilakukan agar aplikasi yang dibangun bersifat
moduler.
3. Implementasi
Implementasi algoritma akan dilakukan berdasarkan hasil analisis dan
perancangan.
4. Pengujian
Pengujian dilakukan untuk menjamin aplikasi dapat berjalan sesuai dengan
yang diharapkan.
1.6 Sistematika Pembahasan
Sistematika penulisan laporan tugas akhir ini adalah sebagai berikut:
1. Bab I Pendahuluan, berisi penjelasan mengenai latar belakang, rumusan
masalah, tujuan, batasan masalah, metodologi, serta sistematika pembahasan
yang digunakan untuk menyusun laporan tugas akhir.
2. Bab II Kajian Pustaka, berisi kajian pustaka yang digunakan dalam analisis,
perancangan, dan implementasi tugas akhir.
3. Bab III Eksplorasi Internal MySQL Server, berisi hasil eksplorasi internal
MySQL Server.
4. Bab IV Analisis dan Perancangan, berisi analisis protokol MySQL serta
rancangan solusi untuk mendukung replikasi di mid-tier.
5. Bab V Implementasi dan Pengujian, berisi implementasi hasil perancangan
beserta hasil pengujian.
6. Bab VI Kesimpulan dan Saran, berisi kesimpulan dan saran yang
didapatkan selama pelaksanaan Tugas Akhir.
Download