Proxy Cache di Internet
Di satu sisi peningkatan yang pesat ini sangat menggembirakan, tetapi di sini lain -setidaknya untuk saat ini- perkembangan tersebut cukup mengkhawatirkan. Kekhawatiran ini terutama disebabkan oleh keterbatasan kapasitas prasarana Internet dan perkembangan kapasitas ini tidak dapat mengimbangi perkembangan penggunaan Internet.
Salah satu contoh ekstrem terjadinya beban jaringan yang tinggi adalah pada saat terjadinya event astronomi tahun 90-an: tabrakan komet Shumaker-Levy 9 dengan planet Jupiter. Ini adalah salah satu contoh publikasi ‘real-time’ di Internet. Gambar-gambar teleskop dari seluruh dunia ditempatkan pada server FTP dan WWW hanya beberapa jam setelah tabrakan tersebut. Beban pada server pada beberapa lokasi NASA sangat tinggi sehingga beberapa mesin harus ditambah untuk melayani beban permintaan atas gambar komet tersebut. Selama seminggu setelah tabrakan itu, Jet Propulsion Laboratories (JPL) NASA mencatat telah terjadi lebih dari 880.000 akses. Server lain yang terletak di Goddard Space Flight Center diakses lebih dari 420.000 kali dan mengirim data lebih dari 6 Terabyte.
Mirroring, Replicating, dan Caching
Pada kasus seperti di atas, kita dapat memperhatikan dua fenomena yaitu server WWW mengalami kelebihan beban dan aliran data yang lewat di jaringan sangat tinggi. Ada beberapa upaya yang dilakukan untuk mengurangi kemungkinan terjadinya kasus-kasus seperti di atas. Beberapa upaya tersebut adalah dengan menggunakan metoda yang dikenal dengan mirroring dan replicating, serta dengan caching. Mirroring dan replicating adalah metode yang menduplikasikan file dan/atau server pada tempat-tempat lain di Internet. Server yang tersebar di Internet mempercepat waktu respon dan mengurangi aliran data pada jalur wide area network (WAN). Metode mirroring ini tentu saja cukup membantu dalam mengurangi akses ke server asal tetapi ini bukan solusi yang ideal. Masalahnya adalah pengguna masih dapat memilih server mana yang akan dituju. Seorang pengguna mungkin memilih server asal dengan beberapa alasan. Mungkin ia tidak pernah tahu adanya mirror site, ia lupa nama server mirror tersebut, atau ia tidak percaya mirror site itu menyediakan file-file yang up-to-date.
Berbeda dengan metode di atas, metode caching berorientasi kepada client. Metode caching di Internet mirip dengan cache memory pada komputer yaitu dengan menempatkan object-object (dalam bentuk file) yang baru saja diakses pada situs yang dekat dengan client sehingga ketika file tersebut diakses kembali, maka file tersebut diambil dari situs yang dekat. Hal ini dimungkinkan karena protokol HTTP yaitu protokol jaringan yang digunakan pada aplikasi WWW mengenal fasilitas yang disebut sebagai server proxy. Proxy ini bertindak sebagai perantara antara client dengan server pada waktu pengaksesan dokumen.
Untuk lebih memperjelas, kita perhatikan
gambar 1. Pada gambar tersebut host A dan B menjalankan program client
dan host C menjalankan program server. Host A dan B terletak dalam satu
LAN yang umumnya lebih cepat dibandingkan dengan kecepatan hubungan LAN
tersebut ke Internet menggunakan WAN. Kita tinjau model hubungan
client-server yang biasa berlaku pada aplikasi WWW. Pada hubungan
seperti ini, client meminta koneksi dengan server. Setelah koneksi
terjadi, client meminta akses terhadap dokumen di server. Server
kemudian memberikan jawaban atas permintaan client dengan mengirimkan
dokumen yang diminta. Pada kasus seperti contoh ini dapat terjadi
inefisiensi atas penggunaan bandwidth WAN jika dokumen yang sama diakses
berkali-kali. Sebagai contoh, pengguna di host A meminta dokumen pada
host C dan keesokan harinya pengguna di host B juga meminta dokumen yang
sama pada host C. Tentu saja akan lebih mudah jika dokumen tersebut
diambil dari host A, waktu pengiriman dokumen lebih singkat dan
bandwidth WAN ke Internet dapat dihemat.
Pada contoh di atas terlihat bagaimana upaya yang mungkin dilakukan
untuk menghemat bandwidth. Kasus pengambilan dokumen yang sama
berkali-kali merupakan kasus yang umum dalam aplikasi WWW dan FTP. Tentu
saja akan sangat baik jika user di host B dapat mengambil dokumen yang
sebelumnya telah diambil user di host A. Penggunaan metode ini hanya
dapat berlangsung jika user di host B mengetahui bahwa duplikat dokumen
yang diinginkannya telah berada di host A dan host A menjalankan
aplikasi server sehingga user di host B memilih untuk mengambil dokumen
tersebut dari host A. Kelemahan metode ini terlihat jelas jika jumlah
user dan host banyak dan perilaku mereka biasanya saling bebas sehingga
dokumen yang telah diambil user yang satu belum tentu akan diambil oleh
user yang lain. Kelemahan lain adalah setiap host client juga harus
menjalankan aplikasi server dan user yang ingin mengambil dokumen harus
mengetahui di mana duplikat dokumen tersimpan.
Cara yang lebih baik adalah jika setiap
user mengakses suatu dokumen, maka duplikat dokumen tersebut juga
disimpan di sebuah situs yang dekat dengan user. Pada skenario ini
terdapat tiga host yang terlibat dalam sebuah hubungan client-server
agar dokumen yang diminta user dapat tersimpan di situs yang dekat.
Hubungan client-server demikian tidak lagi seperti hubungan
client-server sederhana yang telah digambarkan di atas. Dalam hubungan
seperti ini, host ketiga yang disebut sebagai proxy bertindak sebagai
perantara antara client dengan server yaitu meneruskan permintaan dari
client kepada server jika perlu. Jika dokumen yang ada di proxy dianggap
masih baru maka dokumen yang diminta client cukup diambil dari proxy.
Pada posisi ini, proxy akan bertindak sebagai server dari sisi client
dan sebagai client dari sisi server, karena itu yang sebenarnya terjadi
adalah dua buah hubungan client-server sederhana (gambar 2). Walaupun
demikian, user tidak akan merasakan terjadinya dua hubungan tersebut
karena pada tingkat aplikasi yang tampak hanyalah user melakukan
hubungan langsung dengan server tempat dokumen tersebut berada.
Proses duplikasi dokumen yang dijelaskan di
atas memiliki kemiripan dengan metode mirroring. Perbedaan utama antara
keduanya terletak pada orientasi duplikasi dokumen. Metode mirroring
lebih berorientasi kepada server sedangkan metode proxy-cache lebih
berorientasi kepada client. Di sini kita dapat melihat kelebihan
penggunaan metode proxy-cache dibandingkan dengan mirroring. Proxy-cache
dapat ditempatkan secara terdistribusi dan dekat dengan client yaitu
dengan menempatkannya satu LAN dengan client. Server mirror, walaupun
ditempatkan secara terdistribusi, memiliki kelemahan karena user yang
ingin mengambil dokumen yang sama dalam waktu yang tidak berbeda jauh
harus mengadakan hubungan client-server melalui jalur WAN yang biasanya
memiliki bandwidth lebih sempit dibandingkan bandwidth LAN.
Jenis-jenis Cache
Masalah lain yang dihadapi dalam penduplikasian dokumen adalah
bagaimana menjaga agar dokumen yang diduplikasikan sama dengan dokumen
yang terakhir ada di server asli. Server mirror atau cache harus
melakukan pembaruan kembali dokumen agar user percaya bahwa dokumen yang
ia terima dari server mirror atau server proxy-cache sama dengan
dokumen yang terdapat di server. Saat ini terdapat setidaknya dua jenis
pembaruan kembali yang biasa digunakan yaitu jenis persistent dan jenis
non-persistent. Pada jenis persistent, jika terdapat dokumen dalam cache
maka dokumen yang disampaikan ke user adalah dokumen yang berada dalam
cache tersebut. Dokumen tersebut selalu diambil dari cache kecuali jika
user memaksa agar dokumen diambil langsung dari sumbernya. Contoh jenis
ini adalah seperti yang digunakan oleh browser Netscape. Untuk
memerintahkan Netscape agar mengambil langsung dari sumber dokumen, user
harus memilih ikon reload. Kelemahan utama jenis ini adalah pembaruan
kembali dokumen harus dipaksakan dan tidak ada mekanisme untuk memeriksa
apakah dokumen yang disimpan masih sama dengan dokumen yang terdapat
pada server asal atau dokumen harus diambil kembali dari server asal
tersebut.Berbeda dengan cache jenis persistent, cache non-persistent memiliki mekanisme untuk memperbarui dokumen di dalam cache sehingga dokumen yang diterima oleh user dapat selalu sama dengan dokumen di server asal tanpa perlu dipaksa oleh user. Mekanisme pembaruan kembali dokumen dalam cache ini menggunakan dua buah algoritma yang saling mendukung: algoritma Ageing dan algoritma Least Recently Used (LRU). Algoritma LRU bertugas untuk menjaga agar selalu tersedia tempat untuk menyimpan dokumen yang baru diakses. Jika cache sudah hampir penuh, algoritma ini menghapus dokumen-dokumen yang lama tidak diakses (least recently used) sampai batas tertentu. Algoritma Ageing memeriksa tanggal dokumen yang terdapat di dalam cache untuk menentukan apakah dokumen tersebut harus dihapus. Di samping itu algoritma Ageing juga menentukan apakah dokumen yang sedang diakses user perlu diambil dari server asal atau cukup dengan menggunakan dokumen yang terdapat di dalam cache. Server proxy umumnya menggunakan cache non-persistent karena kelebihan yang disebutkan di atas.
Hierarki Cache
Server proxy dapat dihubungkan dengan server-server proxy lain dan membentuk hierarki seperti pada sebuah organisasi. Jika server proxy bergabung dalam sebuah hierarki, sebuah server proxy bisa memilih untuk mengambil dokumen yang diinginkan dari server proxy lain dalam hierarki atau mengambil dari server asal. Saat ini National Laboratory of Applied Network Research (NLARN) sedang mengembangkan prototipe hierarki cache dengan beberapa buah server proxy-cache pada tingkat hierarki yang paling tinggi (root cache). Hierarki ini terdiri dari cache pada tingkat nasional, regional, dan organisasi. Dalam prototipe ini cache pada tingkat nasional melayani permintaan akses untuk domain negara tersebut. Misalnya terdapat permintaan dokumen dari URL http://www.titech.ac.jp yang berada di bawah domain jp (Jepang), maka dokumen tersebut diminta dari cache tingkat nasional di Jepang.
Institut Teknologi Bandung sekarang juga sedang mengembangkan hierarki cache untuk jaringan di dalam kampus. Dalam hierarki yang kami kembangkan terdapat beberapa server proxy-cache yang diletakkan secara terdistribusi agar dapat mengurangi beban lalu lintas jaringan. Berdasarkan pengalaman kami, di jaringan gedung Pusat Antar Universitas dalam satu minggu dapat terjadi transfer data yang mencapai 1 Gigabyte untuk aplikasi WWW dan penggunaan server proxy-cache untuk gedung ini dapat menghemat lalu lintas data aplikasi WWW sampai sekitar 23%. Jadi dengan contoh kasus ini dapat terlihat bagaimana keuntungan menggunakan server proxy-cache untuk menghemat bandwidth WAN.