Agen bukan merupakan hal baru di dunia informatika. Sejak perkembangan AI (
Artificial Intelligence
- Kecerdasan Buatan), agen sebenarnya merupakan inti dari pembahasan.
Jika dirunut sejak awal, kita bisa melihat teori agensi pada pemodelan
ekonomi (
principal-agents). Teori agensi pada pemodelan tersebut mendasarkan pada pemikiran bahwa
principal selaku pemilik merekrut, menggaji, mempekerjakan
agents untuk melakukan pekerjaan-pekerjaan tertentu. Tentu saja para
agents
tersebut harus mempunyai kecerdasan (keahlian) tertentu dan bisa
bersikap serta mengambil keputusan (dalam ruang lingkupnya) terkait
dengan tujuan kerjasama tersebut. Dalam kerjasama tersebut, dipastikan
tidak akan muncul
agency problems, yaitu konflik yang muncul karena perbedaan
goals
di antara mereka. Konsep inilah yang sebenarnya ingin dikerjakan pada
AI. Sederhana dalam penggambaran, tetapi sangat sulit dalam
implementasi. Agen itu sendiri bisa berupa agen tunggal serta MAS (
Multi-Agent Systems). Agen tunggal tentu lebih mudah diimplementasikan. MAS merupakan topik yang sangat sulit (jaman dulu disebut sebagai DAI -
Distributed Artificial Intelligence). Kompleksitas MAS disebabkan karena adanya interaksi antar agen.
Sementara
itu, perkembangan teknologi jaringan yang sudah sampai tingkat
konektivitas di seluruh dunia ternyata membuat perkembangan tuntutan
pengguna aplikasi menjadi lebih kompleks. Ingat, semakin ringan dan
semakin ingin dimanjakan, semakin sulit pekerjaan para pengembang
aplikasi. Pada era ini, aplikasi pada dasarnya bisa kita bagi menjadi
aplikasi yang
headless serta aplikasi berbasis Web. Aplikasi
headless adalah aplikasi yang tidak menggunakan
user interface
untuk si pemakai karena memang tidak dikhususkan untuk pemakai biasa.
Pemakai menggunakan aplikasi ini, tetapi tidak menyadari jika aplikasi
ini ada. Contoh sederhana aplikasi ini antara lain aplikasi
crawler dari
berbagai situs mesin pencari. Pemakai hanya perlu ke (misalnya) google,
dan mencari kata kunci yang dikehendaki. Mekanisme dan penyediaan
infrastruktur dari aplikasi tersebut kebanyakan tidak diketahui dan
dipahami pemakai biasa. Aplikasi Web pada dasarnya menyediakan
user interface untuk berkomunikasi dengan pemakai.
Apa
keterkaitan antara kedua hal itu? Web menyedian berbagai macam sumber
daya yang sangat melimpah ruah, mulai dari sumber daya yang hanya bisa
dipahami oleh manusia (era Syntactic Web dengan HTML tanpa kandungan
semantik) maupun sumber daya yang berupa sumber daya yang bisa
"dipahami" mesin (dikenal dengan istilah sumber daya semantik - Semantic
Web). Nah sekarang, kondisi seperti ini bisa memungkinkan orang untuk
berpikir dalam kerangka teori agensi di atas. Pemakai menjadi
pincipal, sementara
agents
akan berupa software: "saya ingin sesuatu dari Web, kerjakan dan
berikan ke saya hasilnya" dengan seminimal mungkin intervensi ke
software tersebut. Tugas para pengembang barangkali untuk memungkinkan
hal-hal di atas bisa terjadi serta memungkinkan otomasi di Internet/Web
seperti yang dicetuskan oleh Tim Berners-Lee pada tahun 2001:
- Merealisasikan software agent, dalam konteks ini sofware agent yang bisa berkomunikasi dengan si pemakai. Riset di bidang human-agent communication ini juga diperlukan, bersamaan dengan NLP (Natural Language Processing). Pemakai "berbicara" dan menyuruh agen untuk mengerjakan sesuatu on behalf of its owner. Pada konteks ini, penelitian yang dulu pernah dikembangkan oleh Terry Winograd menjadi penting (LAP - Language-Action Perspective).
- Merealisasikan
aplikasi Web yang juga sebenarnya merupakan salah satu agen pada suatu
masyarakat MAS. Agent ini mempunyai dua "muka", satu merupakan aplikasi
Web dengan user interface HTML-CSS-JavaScript-etc, muka yang lain adalah agen. Agen ini merupakan wakil dari pemilik Web yang siap berkolaborasi dengan software agent dari pemakai. Komunikasi Agent-to-Agent ini juga merupakan hal yang kompleks dan merupakan salah satu standar yang dihasilkan oleh FIPA (http://www.fipa.org) berupa ACL (Agent Communication Language).
Nah,
silahkan mulai bersiap-siap jika memang (berniat) terjun ke dunia
pengembangan software. That should be pretty interesting. :p
Awesome Window Manager (3.5.2) and Java 7 GUI Problem