PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web...

19
BAB 2 LANDASAN TEORI 2.1 Server Server (Sosinsky, 2009:108) adalah sebuah program perangkat lunak yang menyediakan layanan ke komputer lain melalui koneksi jaringan. Server dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat lunak harus rutin menyediakan layanan ini untuk sistem lain atau setidaknya mampu memberikan layanan. 2.2 Web Server Mesin ini (Yadav, 2009:3) menyimpan dan mengambil data internet (dan intranet) untuk perusahaan. Beberapa dokumen, data, dan lain – lain, berada pada web server. Web application menyediakan akses ke dokumen dan data lainnya. Klien "thin" biasanya menggunakan web browser untuk meminta dokumen – dokumen tersebut. Server tersebut membagi dokumen – dokumen di intranet, atau di 6

Transcript of PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web...

Page 1: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

BAB 2

LANDASAN TEORI

2.1 Server

Server (Sosinsky, 2009:108) adalah sebuah program perangkat lunak yang

menyediakan layanan ke komputer lain melalui koneksi jaringan. Server dapat

dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat lunak

harus rutin menyediakan layanan ini untuk sistem lain atau setidaknya mampu

memberikan layanan.

2.2 Web Server

Mesin ini (Yadav, 2009:3) menyimpan dan mengambil data internet (dan

intranet) untuk perusahaan. Beberapa dokumen, data, dan lain – lain, berada

pada web server. Web application menyediakan akses ke dokumen dan data

lainnya. Klien "thin" biasanya menggunakan web browser untuk meminta

dokumen – dokumen tersebut. Server tersebut membagi dokumen – dokumen di

intranet, atau di internet (atau extranet). Protokol yang paling umum digunakan

adalah HTTP (Hyper Text Transfer Protocol).

2.3 Database Server

Data (Yadav, 2009:3) berada di server, dalam bentuk database SQL.

Database server menyediakan akses ke data kepada klien, dalam menanggapi

permintaan SQL. Database server membagi data yang berada dalam database

melalui jaringan. Database server memiliki protokol yang lebih efisien daripada

6

Page 2: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

7

file server. Database server menerima permintaan SQL dan memproses mereka

dan hanya mengembalikan data yang diminta; sehingga klien tidak harus

berurusan dengan data yang tidak relevan.

2.4 Cluster

Beberapa mesin stand-alone (Deshpande dan Kamalapur, 2008:6-33) yang

bekerja secara paralel dan terhubung melalui jaringan kecepatan tinggi

membentuk cluster. Berikut klasifikasi cluster:

1. High Availability Cluster

Dalam jenis cluster ini (Deshpande dan Kamalapur, 2008:6-34)

beberapa redundant node diberikan. Ketika komponen sistem gagal,

redundant node ini digunakan untuk menyediakan layanan. Dalam

kasus kegagalan apapun, high availability clustering mendeteksi

kesalahan dan restart aplikasi segera pada node baru.

Pada high availability clustering, setiap node dalam cluster

dipantau menggunakan koneksi private network. High availability

cluster juga disebut sebagai failover cluster. Pada operasi normal, ada

berbagai node dalam cluster terhubung oleh heartbeat private network.

2. Load Balancing Cluster

Jenis cluster ini (Deshpande dan Kamalapur, 2008:6-35)

digunakan untuk load balancing. Ketika beberapa permintaan datang

ke node cluster, Cluster ini mendistribusikan mereka ke berbagai node.

Distribusi ini dibuat sesuai dengan ketersediaan node. Setiap node

Page 3: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

8

dalam cluster mampu menangani setiap permintaan. Dalam kasus

permintaan gagal, permintaan itu dikirimkan ke node lain dalam sistem.

2.5 Load Balancing

Load balancing (Membrey, Plugge dan Hows, 2012:109) merupakan

kemampuan untuk mentransfer setiap bagian dari proses untuk permintaan sistem

ke sistem independen lain yang akan menanganinya secara bersamaan. Load

balancing membagi beban yang masuk ke satu server diantara sejumlah

perangkat lain. Load balancing memiliki keuntungan mengurangi jumlah proses

yang dilakukan oleh server penerima primer—memungkinkan untuk menangani

permintaan lebih banyak dan meningkatkan kinerja—karena ada sedikit

kompetisi untuk sumber daya dan ada lebih banyak perangkat memproses

seluruh beban.

Gambar 2.1 Load Balancing

Page 4: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

9

Sebagai load balancer (Dix, 2010:148) menerima setiap permintaan, load

balancer harus memutuskan proses (atau backend) yang harus menangani

permintaan. Algoritma paling sederhana load balancer bisa

mengimplementasikan mungkin untuk secara acak memilih backend yang

diketahui, tetapi hasilnya akan tidak sangat seimbang. Beberapa backend

mungkin menerima terlalu banyak permintaan sementara yang lain posisi diam.

Untungnya, ada sejumlah strategi load balancing baik yang mudah digunakan,

termasuk round-robin, least-connection dan URI-based load balancing.

2.5.1 Algoritma Load Balancing

Terdapat beberapa macam algoritma untuk load balancing

diantaranya:

1. Random Allocation

Dalam Random allocation (Deshpande dan Kamalapur,

2008:B-4) permintaan HTTP ditugaskan ke server dengan

memilih secara acak diantara sekelompok server. Dalam kasus

seperti ini, salah satu server mungkin dapat ditugaskan

permintaan yang banyak, sedangkan server lainnya menganggur

atau diam.

2. Round Robin

Sebuah load balancer (Dix, 2010:149) beroperasi

menggunakan algoritma round-robin membuat internal counter

dari backend yang terakhir digunakan, dan menggunakan

pilihan berikutnya dari daftar berurutan dari semua backend

Page 5: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

10

yang diketahui. Ketika setiap permintaan tiba, backend

berikutnya dipilih, dan counter bertambah, perulangan kembali

ke awal dari daftar apabila diperlukan.

3. Least Connection

Dengan algoritma least connection (Dix, 2010:150), load

balancer mencoba untuk menyalurkan permintaan berdasarkan

pada jumlah beban saat ini. Counter sebuah koneksi backend

akan bertambah sebagai permintaan yang dikirim dan berkurang

setelah mereka menyelesaikannya.

4. URI-Based Load Balancing

URI-based load balancer (Dix, 2010:151) dimana semua

permintaan untuk setiap data dapat diteruskan ke backend

(server) yang sama selagi masih tersedia, jika backend menjadi

kelebihan beban, load balancer menyesuaikan dengan

menyalurkan permintaan untuk backend yang masih tersedia.

2.5.2 Tipe Load Balancer

Terdapat dua pilihan untuk digunakan ketika merancang load

balancer. Pilihannya adalah menggunakan software load balancing atau

hardware load balancing.

1. Software Load Balancing

Load balancer yang biasanya paling sering digunakan

adalah yang berbasis perangkat lunak (Deshpande dan

Kamalapur, 2008:B-5). Sering kali terintegrasi dengan

Page 6: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

11

perangkat lunak web server dan paket aplikasi perangkat lunak.

Proses load balancing dipengaruhi oleh perangkat komputer

yang digunakan. Perangkat keras yang dapat mempengaruhi

performa metode ini adalah kartu jaringan (Network Interface

Card) yang digunakan, besarnya RAM (Random Access

Memory) pada perangkat, dan juga media penyimpanan.

2. Hardware Load Balancing

Load balancer perangkat keras (Deshpande dan

Kamalapur, 2008:B-5) dapat menyalurkan paket TCP/IP untuk

berbagai server di dalam cluster. Jenis load balancer ini

menyediakan topologi yang solid dan didukung dengan

ketersediaan tinggi, tetapi tentu datang dengan harga yang jauh

lebih mahal.

2.6 Failover

Failover (McBee, 2008:456) sebenarnya adalah sebuah proses multi

langkah. Jika salah satu node mengalami kegagalan hardware, sinyal heartbeat

dari node gagal berhenti. Node yang masih bekerja mendeteksi ini karena tidak

adanya heartbeat node lain.

Heartbeat (Simmons dan Carstarphen, 2012:34) adalah pemeriksaan

kesehatan dikirim antara node untuk menjamin ketersediaan setiap node.

Dua atau lebih (Gibson, 2010:340) server yang dikonfigurasi bersama-

sama, dengan beberapa server yang ditunjuk sebagai node aktif dan yang lain

ditunjuk sebagai node tidak aktif. Node aktif memberikan layanan kepada klien

Page 7: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

12

dan node tidak aktif memantau node aktif. Jika node aktif gagal, node tidak aktif

dapat mengambil alih dengan sedikit gangguan kepada klien.

Gambar 2.2 – Failover

Failback (McBee, 2008:457) adalah ketika layanan mendeteksi heartbeat

dari node gagal sebelumnya telah pulih, failback dapat dimulai. Proses ini

melalui step yang sama dengan failover, perbedaanya hanya kembalinya node

gagal yang telah di failover menjadi sedia kala.

Page 8: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

13

Gambar 2.3 – Failback

2.7 Parallel Database

Dalam arsitektur parallel database, (Ricardo, 2011:454) ada beberapa

prosesor yang mengontrol beberapa unit disk yang berisi database. Database

dapat dipartisi pada disk, atau mungkin direplikasi. Jika fault-tolerance adalah

prioritas tinggi, sistem dapat diatur sehingga masing-masing komponen dapat

berfungsi sebagai cadangan untuk komponen lain dari jenis yang sama,

mengambil alih fungsi dari setiap komponen serupa yang gagal. Arsitektur

sistem parallel database bisa shared-memory, shared-disk, shared-nothing, atau

hierarchical.

1. Shared-memory

Dalam sistem shared-memory, (Ricardo, 2011:454) semua

prosesor memiliki akses ke memori yang sama dan berbagi disk.

Database berada pada disk, baik di replikasi pada mereka atau di partisi

Page 9: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

14

diantara mereka. Ketika prosesor membuat permintaan data, data dapat

diambil dari salah satu disk ke memori buffer yang dimiliki oleh semua

prosesor. Database management system menginformasikan prosesor

apa halaman dalam memori berisi halaman data yang diminta.

Gambar 2.4 – Shared-memory

2. Shared-disk

Dalam desain shared-disk, (Ricardo, 2011:454) masing-masing

prosesor memiliki akses eksklusif ke memori sendiri, tetapi semua

prosesor memiliki akses ke unit disk bersama. Ketika prosesor meminta

data, halaman database dibawa ke memori prosesornya.

Page 10: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

15

Gambar 2.5 – Shared-disk

3. Shared-nothing

Dalam sistem shared-nothing, (Ricardo, 2011:454) masing –

masing prosesor memiliki kontrol eksklusif unit disk-nya sendiri atau

beberapa unit dan memorinya sendiri, namun prosesor bisa

berkomunikasi dengan satu sama lain.

Gambar 2.6 – Shared-nothing

Page 11: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

16

4. Hierarchical

Dalam arsitektur hierarchical, (Ricardo, 2011:455) sistem terdiri

dari node yang shared-memory, dihubungkan oleh jaringan

interconnection. Sistem hanya berbagi komunikasi dengan satu sama

lain, membuat secara keseluruhan arsitektur inter-system shared-

nothing.

Gambar 2.7 – Hierarchical

Ada dua metrik penting (ITL Education Solutions Limited, 2010:387)

untuk mengukur efisiensi dari suatu sistem parallel database, yaitu, scale-up dan

Page 12: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

17

speed-up. Menjalankan tugas dalam sedikit waktu dengan meningkatkan derajat

paralelisme disebut speed-up, dan penanganan tugas yang lebih besar dengan

meningkatkan derajat paralelisme disebut scale-up.

Parallel database (Ricardo, 2011:458) menggunakan arsitektur shared-

nothing memberikan speed-up linier, yang berarti sesuai jumlah penambahan

prosesor dan disk, kecepatan operasi meningkat secara linier. Mereka juga

menyediakan scale-up linier, yang berarti bahwa mereka terukur, sehingga jika

banyak prosesor dan disk ditambahkan, tingkat kinerja tertopang. Hal ini

memungkinkan untuk meningkatkan jumlah data yang disimpan dan diproses

tanpa mengorbankan kinerja. Karakteristik shared-nothing ini telah manjadi

arsitektur pilihan untuk web application.

2.8 Database Replication

Replication (Bell, Kindahl dan Thalmann, 2010:5) digunakan untuk

mereplikasi semua perubahan yang dibuat pada server—disebut master server

atau hanya master—ke server lain, yang disebut slave server atau hanya slave.

Hal ini biasanya digunakan untuk membuat salinan tepat dari server master,

tetapi replikasi dapat digunakan untuk keperluan lain juga. Berikut adalah jenis

dari replication:

1. Synchronous Replication

Synchronous, (Greenwald, Stackowiak dan Stern, 2008:287) atau

real-time, replikasi yang dapat digunakan bila tidak ada toleransi untuk

perbedaan data atau data yang hilang. Data di site sekunder harus

sesuai dengan site utama setiap saat dan mencerminkan semua transaksi

Page 13: PERANCANGAN SERVER DENGAN …library.binus.ac.id/eColls/eThesisdoc/Bab2DOC/2012-1... · Web viewServer dapat dijalankan pada sistem lokal atau pada sistem remote, tetapi perangkat

18

yang dilakukan. Setiap transaksi di site utama akan memicu

pemanggilan prosedur di site sekunder untuk mereproduksi transaksi.

2. Asynchronous Replication

Dengan asynchronous replication, (Greenwald, Stackowiak dan

Stern, 2008:287) transaksi yang dilakukan di site utama dan beberapa

waktu kemudian direplikasi ke site sekunder. Sampai antrian transaksi

yang ditangguhkan "pushed" ke site sekunder, mereplikasi perubahan,

data di sekunder akan berbeda dari data site utama. Jika database utama

hilang tidak dapat ditarik kembali, transaksi unpushed yang

ditangguhkan dalam antrian juga akan hilang.

Gambar 2.8 – Synchronous dan asynchronous replication