Oktober 01, 2013

Aplikasi Web di Masa Depan: Semakin Konvergen dengan Teknologi Agen

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:
  1. 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).
  2. 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

0 comments:

Poskan Komentar