Jumat, 07 Agustus 2009

Membuat Agregrator Hemat Resources

Sebagaimana yang saya jelaskan sebelumnya, gampang sekali untuk membuat atau lebih tepatnya memasang agregrator. Banyak perangkat lunak bebas yang bisa dimanfaatkan. Namun untuk membuat Agregrator yang hemat sumber daya saya kira perlu sedikit trik.

Dalam agregrator, bagian yang cukup berat adalah saat pengambil konten (crawler) mengambil feed dari beberapa situs / blog anggota. Pengambil konten akan mengunjungi setiap situs satu persatu, mengambil kontennya, dan kemudian memparsingnya, dan mencocokkan dengan data yang sudah tersimpan. Jika agregator mempunyai anggota sepuluh dua puluh orang mungkin tak terasa, namun jika ada lebih 100 orang sebagaimana komunitas muslimblog ?

Selain itu, karena sifat agregator pada dasarnya hanya untuk melihat update member, maka saya tidak melakukan penyimpanan data ke database. Cukup menggunakan sebuah file cache saja.

Oleh karenanya saya membuat beberapa penghematan resources untuk agregrator yang ingin saya buat dengan teknik berikut,

Pengambilan Dan Manajemen Konten Via Google Reader

Pengambil konten (crawler) dilakukan oleh pihak ketiga. Dulu saya melihat ada layanan feed reader berbasis web seperti bloglines dan newsgator. Namun kedua layanan tersebut tidak bisa mengeluarkan output dalam bentuk feed yang di bisa share ke publik. Mas Hendra memberikan saya petunjuk ketika dia menggunakan google reader sebagai alat pengambil konten untuk sebuah agregasi.

Caranya adalah dengan memberi kategori / tag pada feed yang ingin kita share, lalu kita kita share. Output dari share berbentuk feed.

Dengan demikian, nantinya pengelolaan situs anggota agregator, seperti menambah, menghapus, mengaktifkan dan menonaktifkan kita lakukan via google reader.

Output feed melalui Feedburner 

Sebenarnya output dari google reader sudah berbentuk feed, namun karena feedburner memberikan alamat feed yang lebih cantik dan memberikan fasilitas manajemen feed yang bagus, maka kita umpankan feed keluaran dari google reader ke feedburner.

Menampilkan output dalam bentuk situs web

Karena kita tidak hanya ingin menampilkan feed, namun ingin menampilkan output dalam bentuk sebuah situs dengan tampilan yang kita kehendaki maka kita harus melakukan parsing terhadap feed dan menampilkannya dalam sebuah halaman web.

Sebuah library yang lengkap dan mudah untuk memparsing feed adalah library simplepie yang ditulis dengan bahasa PHP. Jika sudah menjadi variabel array maka kita tinggal mengambil elemen yang kita butuhkan, memformatnya menjadi array kembali, kita serialize dan menyimpannya ke dalam sebuah file (cache). Cache lantas kita beri waktu kedaluarsa. Nantinya, setiap request dari pengunjung maka data yang akan ditampilkan adalah data dari cache ini, namun jika dia sudah expired maka, simplepie akan membaca feed dari google reader dan memeriksa apakah ada posting baru atau tidak ? Jika ada dia melakukan parsing dan menambahkan data pada cache.

Agar tidak membengkak, maka kita membatasi record posting yang ada pada cache dengan jumlah record atau waktu (misalnya sebulan).   Sebuah posting yang sudah melewati jumlah record atau sudah melewati waktu tertentu maka datanya akan dibuang dari cache.

Jika anda menggunakan data yang banyak, maka anda cukup perlu untuk membuat paging untuk menampilkan cache, agar data yang ditampilkan tidak terasa berat.

Penutup

Sejauh ini saya sudah menerapkannya pada dua agregator. Planet trenggalek dan Agregator Muslimblog. So far so good.

1 komentar:

  1. boz.. gua mau tanya nih.. ni gua mau bikin web agregator d mana web q ini bs search kos2an.. berdasarkan beberapa kos-kosan yang ada.. dengan mengambil konten mereka secara otomatis... to gmana ya boz.. ? boleh donk shar boz... hehehehe.. maklum orang awan... ^^"

    BalasHapus

Artikel mungkin sudah tidak up to date, karena perkembangan jaman. Lihat tanggal posting sebelum berkomentar. Komentar pada artikel yg usianya diatas satu tahun tidak kami tanggapi lagi. Terimakasih :)