Aplikasi
terdistribusi adalah suatu aplikasi yang
procesing requirementnya terdiri dari beberapa computer, dan datanya
bias disimpan di beberapa lokasi (secara fisik), tetapi fungsi logikanya tidak
ditentukan oleh topologi fisiknya yang digunakan untuk mengimplementasikan
aplikasi tersebut.
Alasan Aplikasi
Terdistribusi Dibutuhkan
Yang mendorong
peemrosesan dan penyimpanan data menjadi terdistribusi adalah :
1. Biaya
Mainframe
Dalam aplikasi
terdistribusi, semua computer dapat saling share data. Dalam melakukan share,
setiap computer tidak diharuskan untuk memiliki mainframe yang sama. Sehingga
biaya mainframe dapat ditekan.
2. Kepimilikan
data
Data dapat
diakses bebas tanpa adanya perizinan
dari pemiliknya.
Karena tanggung jawab memanage data tidak didelegasikan.
3. Keamanan
Untuk sebuah
organisasi, sebagian besar datanya harus dapat diakses dengan mudah. Namun,
data perusahaan yang sensitive harus tetap diamankan. Sehingga aplikasi
terdistribusi itu men-segmantasi (membagi) data secara fisik (antara data yang
secure dan data yang easily accesible).
Aplikasi
Terdistribusi sebagai Service Provider
Aplikasi
terdistribusi menyediakan layanan yang fungsional bagi aplikasi yang membutuhkannya.
sehingga client
cukup mengaksesnya saja tanpa harus membuat aplikasi tersebut.
Problem with
Traditional Distributed Application
Sejauh ini telah
dikembangkan 2 arsitektur Aplikasi terdistribusi :
Remote Procedura
Call-Based (RPC-based) architecture
Message-based
architectures
Hal yang perlu
dipertimbangkan dala membuat desain Aplikasi terdistribusi :
1. Perbedaan type
data
bagaimana Kita harus bisa menghandle type data yang
tidak kompatibel dengan Sistem Operasi yang ada.
2. Masalah pada
Server
Bagaimana kita
bisa menghandle saat server sedang down dan tidak memberikan respon, sedangkan
data dapat diakses setiap saat.
3. Masalah pada
client
Tidak semua data
disimpan di sisi server. Kita harus mempertimbangkan bagaiman server mengetahui
bahwa terjadi masalah pada client yang menyimpan data.
4. Retrying Calls
Jika client sudah
memanggil suatu method dan server tidak memberikan respon, maka tidak akan
diterima ketika memanggil ulang method tersebut.
5. Keamanan
Pada aplikasi
terdistribusi, banyak ancaman keamanan. Disini kita tidak hanya memperhatikan
autentikasi dan authorisasi, tetapi juga harus memperhatikan keamanan
komunikasi antara client dan server.
6. Synchronizing
clock
Kita harus
memastikan sinkronisasi waktu di berbagai computer yang berkomunikasi di dalam
aplikasi terdistribusi.
RPC-based
Architectures
RPC adalah sebuah
metode yang memungkinkan kita untuk mengakses sebuah prosedur atau fungsi dari
computer lain.
RPC menyediakan :
1. Location
Transparency
Programmer tidak
harus mengetahui lokasi service providernya.
2. A Familiar
programming model
Kebanyakan
programmer dibiasakan untuk menggunakan beberapa procedure call
Tujuan
Tujuan dari
komputasi terdistribusi adalah menyatukan kemampuan dari sumber daya (sumber
komputasi atau sumber informasi) yang terpisah secara fisik, ke dalam suatu
sistem gabungan yang terkoordinasi dengan kapasitas yang jauh melebihi dari
kapasitas individual komponen-komponennya.
Tujuan lain yang
ingin dicapai dalam komputasi terdistribusi adalah transparansi. Kenyataan
bahwa sumber daya yang dipakai oleh pengguna sistem terdistribusi berada pada
lokasi fisik yang terpisah, tidak perlu diketahui oleh pengguna tersebut.
Transparansi ini memungkinkan pengguna sistem terdistribusi untuk melihat
sumber daya yang terpisah tersebut seolah-olah sebagai satu sistem komputer
tunggal, seperti yang biasa digunakannya.
Salah satu
masalah yang dihadapi dalam usaha menyatukan sumber daya yang terpisah ini
antara lain adalah skalabilitas, dapat atau tidaknya sistem tersebut
dikembangkan lebih jauh untuk mencakup sumber daya komputasi yang lebih banyak.