ayo cari tau model name service dalam distribusi itu apa!

Untuk kali ini kita mau bahas tentang apa itu name service dan apa aja model dalam name service itu. Sebenernya tema akan lebih fokus dijelasin disini itu tentang apa saja model name service? Tapi gimana kita bisa tau apa aja model dari name service kalau kita ga tau name service itu apa! Disini di jelaskan yang di dapat dari wikipeida kalau, suatu name service menyimpan kumpulan satu atau lebih kontak penamaan – yaitu  himpunan keterkaitan antara nama dan atribut objek, seperti user, komputer, services dan remote object.
Dalam sistem terdistribusi, name service digunakan untuk menunjuk ke suatu sesumber yang beragam dan tersebar seperti komputer, layanan (services), file, remote object, use yang dapat memudahkan pengguna.
Contoh penamaan pada aplikasi sistem terdistribusi:
  • URL untuk mengakses suatu halaman web. 
  • Alamat e-mail utk komunikasi antar pemakai.
 Sebenarnya apa sih hubungan dari name service dengan pengantar terdistribusi? Nih sedikit dibahas apa sih sistem distrubusi itu, Sistem terdistribusi adalah kelompok komputer dan prosesor dihubungkan oleh jaringan. Sistem terdistribusi memungkinkan kumpulan komputer untuk memberikan pandangan global yang sama berbagi sumber daya. Sistem Terdistribusi vs sistem Jaringan itu terdapat perbedaan sistem terdistribusi dan sistem jaringan adalah bahwa sistem jaringan dilakukan  tidak mencoba untuk memberikan pandangan global yang konsisten dari sumber daya bersama. Sistem terdistribusi mempunyai sistem erat dan sistem jaringan tidak erat. Terdistribusi Sistem ini erat karena sistem terdistribusi memiliki banyak aturan yang harus  diikuti pada rangka mempertahankan integritas.

Model Sistem Terdistribusi
Sistem Terdistribusi memiliki dua model utama: model Client Server dan Peer-to-peer model. Model Client Server memiliki node klien membuat permintaan dan node Server  menerima permintaan dan proses permintaan klien. Dalam model peer-to-peer,  setiap komputer dalam sistem terdistribusi dapat memproses permintaan komputer lain. Sistem terdistribusi menyediakan berbagai tingkat transparansi untuk setiap node dalam jaringan. Sistem terdistribusi menyediakan transparansi nama, transparansi lokasi, akses transparansi, transparansi migrasi, transparansi replikasi, bersamaan dan paralelisme transparansi dan transparansi kegagalan. Transparansi terutama berarti bahwa ketika pengguna meminta layanan, pengguna tidak akan dapat membedakan apakah bersama sumber daya berada pada PC saat ini, atau dari sistem PC dalam sistem terdistribusi.

Selain itu, Kebutuhan terhadap Name Services itu seperti:
  • penamaan unik yang standard 
  • scalability 
  • consistency 
  • performance dan availability 
  • mudah menyesuaikan terhadap perubahan 
  • perlindungan kegagalan
Secara khusus, name service juga merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama. Kebutuhan akan penamaan juga memicu munculnya layanan penamaan (Naming Services) yang menyediakan mekanisme dan struktur penamaan objek itu sendiri. Contohnya DNS (Domain Name Service), X.500, COBRA, dan GNS.

Contoh Name Service
  1. DNS (Domain Name Service) – memetakan nama domain ke alamat
  2. GNS (Global Name Service) – memetakan global name ke atribut-atribut dan skalabilitas, dapat menangani perubahan
  3. X500 directory service – memetakan nama orang ke dalam alamat suatu e-mail dan nomor telepon
  4. Jini discovery service – mencari objek sesuai dengan atribut yang ada
Dalam rangka memenuhi kebutuhan tersebut, sebuah name server setidaknya dapat menerapkan mekanisme berikut :  
  1.  Partitioning  : Tidak ada satu name server yang dapat menyimpan seluruhnama dan atribut untuk seluruh jaringan. Data nama dipartisi berdasarkan domain.  
  2. Replication : Sebuah domain biasanya memiliki lebih dari satu name server. Untuk meningkatkan availability dan performance. 
  3. Caching : Sebuah name server dapat melakukan mekanisme caching terhadap data nama dari name server lain. Hal ini dilakukan untuk mencegah operasi permintaan sama berulang ulang.
 Name servers and navigation

Navigasi dan name servers di sini memiliki arti petunjuk pengaksesan nama data dari lebih dari satu name server untuk menyelesaikan suatu pemetaan nama (resolve a name). Yang didalamnya terdapat 3 metode,yaitu :
  • Iterative Navigation 

  • Non-recursive, server-controlled 
 
  • Recursive, server-controlled;

Kebutuhan akan penamaan tersebut memicu munculnya layanan penamaan (Naming Services) yang menyediakan mekanisme dan struktur penamaan objek itu sendiri. Contoh : DNS (Domain Name Service). Dan juga kebutuhan untuk pencarian objek berdasar nama dan juga atribut objek itu sendiri (Directory Service). Suatu nama akan diterjemahkan ke dalam suatu data tentang sesumber atau objek yang dimaksudkan. Gabungan antara objek dan nama disebut binding.
Dalam nama objek terdapat beberapa atribut yang merupakan properti suatu objek. Contoh :
• DNS : memetakan dari nama ke atribut alamat IP host
• X.500 : memetakan suatu nama seseorang ke beberapa atribut, seperti email, telepon, dsb.
• CORBA Naming Service yang memetakan nama remote objek ke remote object reference.

Jenis Nama
  1. User names: Merujuk pada suatu obyek atau layanan; Terdiri dari strings of characters.
Contoh: hp201 untuk pencetak, ~bettyp/tmp/test.c untuk berkas.
2. System names: Terdiri dari bit string; Internal untuk sistem, tidak ditujukan untuk manusia.

Ancaman terhadap Nama Layanan

Nama layanan adalah target serangan potensial pada mobile agent infrastruktur mendatang. DoS (Denial of Service) menyerang pada koneksi jaringan server nama yang sangat mengganggu karena semua agen dilayani oleh itu dipengaruhi simulta-  neously.

Ini salah satu model dari name service, contohnya ada linux, oracle, corba dll. CORBA adalah sebuah arsitektur software yang berbasis pada teknologi berorientasi obyek atau Object Oriented (OO) dengan paradigma client-server. Dalam terminologi OO, sebuah obyek berkomunikasi dengan obyek lain dengan cara pengiriman pesan (message passing). Beberapa contoh perangkat pengembangan berbasis CORBA yang berjalan di Linux antara lain: MICO dari mico.org (bahasa yang didukung: C++), Fnorb dari DSTC, Australia (Python), JacORB oleh Gerard Brose dari Freie Universitat, Berlin (Java), OmniORB2 dari AT&T (C++), serta tak ketinggalan pula ORBit keluaran laboratorium riset RedHat (mendukung bahasa C) yang dipakai dalam proyek Gnome. CORBA dirancang oleh Object Management Group (OMG) untuk terutama memberikan berorientasi objek interoperabilitas aplikasi dalam sistem terdistribusi heterogen. Itu penggunaan Object-Oriented desain, analisis, dan pengembangan menggunakan CORBA memungkinkan lebih besar usabilitas di sistem. Keuntungan dari Berorientasi Objek fitur seperti warisan, enkapsulasi, redefinisi dan dinamis mengikat diimplementasikan dalam CORBA. Obyek- fitur berorientasi objek CORBA juga efektif lebih mudah untuk memperluas dan memodifikasi tanpa mempengaruhi aplikasi lain dan objek. CORBA merangkum aplikasi dan menyediakan infrastruktur umum untuk komunikasi menggunakan ORB CORBA dan digunakan untuk menerima permintaan dan menemukan server objek.
CORBA mendorong pengembangan aplikasi yang terbuka, aplikasi yang dapat terintegrasi dengan sistem yang lebih besar. Kelebihan CORBA juga meliputi: transparansi lokasi, bahasa pemrograman transparansi, Sistem Operasi transparansi dan transparansi Komputer

Dalam satu sistem, Layanan Penamaan diimplementasikan menggunakan mendasari perusahaan- lebar penamaan server seperti CDS DCE. Layanan Penamaan digunakan untuk membangun besar, perusahaan-lebar penamaan grafik mana NamingContexts model "direktori" atau "Folder" dan nama lain mengidentifikasi "dokumen" atau "file" jenis objek. Di lain kata-kata, layanan penamaan digunakan sebagai tulang punggung sebuah sistem pengarsipan perusahaan-lebar.

Model Penamaan Layanan
Penamaan adalah gudang yang referensi nama toko objek. Layanan Penamaan digunakan untuk terletak objek dalam CORBA. Layanan Penamaan dapat digunakan untuk mengambil objek referensi. Operasi layanan dapat dipanggil, melalui referensi objek.  Penamaan mendukung dua operasi dasar: toko (mengikat) dan mengambil (menyelesaikan). Layanan mengiklankan ketersediaan mereka untuk Layanan Penamaan dengan referensi objek mereka nama.

Keuntungan dari Layanan Penamaan
Penamaan mendukung lingkungan didistribusikan. Penamaan Service adalah layanan standar dan implementasi yang platform independen.

Kekurangan Penamaan Layanan
Layanan penamaan tidak tersedia untuk semua implementasi, tetapi dapat dengan mudah diimplementasikan jika diperlukan

 referensi:

Apa ya pengertian serta kelebihan dari proses dan thread pada OS itu?

Dari judul yang sudah kita lihat bisa kita tebak apa yang akan dibahas, nah bagi siapapun itu saya mau coba jelasin nih apa itu thread?, apa itu proses? Dan kekurangan serta kelebihannya di dalam OS.

Thread merupakan unit dasar dari penggunaan CPU yang terdiri dari Thread_ID, program counter, register set, dan stack dan thread disebut juga lightweight process. Secara umum kita bisa simpulkan bahwa, Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari pengguna (responsif), pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. Akan tetapi, multithread juga dapat merugikan pengguna. Salah satunya, jika digunakan secara berlebihan, multithreading akan berdampak pada pemborosan resource dan CPU yang dialokasikan untuk switching threads.

                Selain itu dapat dilihta disini keuntungan dari thread yaitu:
  • Responsiveness : Melakukan multithreading pada aplikasi yang interaktif dapat membuat program terus berjalan meskipun bagian dari program tersebut diblok atau sedang menjalankan operasi yang panjang, karena itu dapat meningkatkan respon kepada user. 
  • Resource sharing : sebuah aplikasi dapat mempunyai beberapa thread yang berbeda dalam sebuah alamat memori yang sama karena Thread berbagi memori dan sumber daya dari proses yang memilikinya.
  • Economy: karena mahal untuk mengalokasikan memori dan sumber daya untuk pembuatan proses. Alternatifnya adalah dengan pengunaan thread sebab thread berbagi sumber daya dari proses yang memilikinya oleh sebab itu akan lebih ekonomis untuk membuat sebuah thread 
  • Utilization of multiproccesor architectures: keuntungan dari multithreading dapat meningkat secara drastis dalam arsitektur multiprosesor, dimana setiap thread dapat berjalan secara pararel pada prosesor yang berbeda.
Keadaan thread yang dapat kita ketahui seperti:

  1. new: sebuah thread pada keadaan ini ada ketika objek dari thread tersebut dibuat. 
  2. runnable: memanggil start() method untuk mengalokasikan memori bagi thread baru dalam JVM dan memanggil run() method untuk membuat objek. 
  3. block: sebuah thread akan diblok jika menampilkan sebuah kalimat pengeblokan. Contohnya: sleep() atau suspend(). 
  4. dead: sebuah thread dipindahkan ke keadaan dead ketika run() method berhenti atau ketika stop() method dipanggil.


Thread pada OS seperti, Threads di dalam Solaris 2 sudah dilengkapi dengan library mengenai API-API untuk pembuatan dan managemen thread. Di dalam Solaris 2 terdapat juga level tengah thread. Di antara level pengguna dan level kernel thread terdapat proses ringan/ lightweight (LWP). Setiap proses yang ada setidaknya mengandung minimal satu buah LWP. Library thread memasangkan beberapa thread level pengguna ke ruang LWP-LWP untuk diproses, dan hanya satu user-level thread yang sedang terpasang ke suatu LWP yang bisa berjalan. Sisanya bisa diblok mau pun menunggu untuk LWP yang bisa dijalankan.

Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel thread.
  • Model many to one: memetakan beberapa user level thread hanya ke satu buah kernel thread.
  • Model one to one: memetakan setiap user thread ke dalam satu kernel thread. Berakhir.
  • Model many to many: mengizinkan pengembang untuk membuat user thread sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Nah kan thread udah sedikit saya bahas sekarang saatnya bahas tentang proses yuk! Proses adalah suatu program yang sedang dieksekusi. Suatu proses meliputi:
·         Program counter
Tempat untuk menyimpan alamat suatu proses yang akan dieksekusi selanjutnya
·         Stack
tempat penyimpanan temporary data yang dibutuhkan selama program dieksekusi
·         Data section
mengandung variabel global dari suatu proses

Itu kan dibahas secara khusus, tapi kalo secara informal; proses adalah program dalam eksekusi. Suatu proses itu merupakan lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global.
Keadaan proses itu seperti di bawah ini:

·         New                      : Proses sedang dikerjakan/ dibuat.
·         Running              : Instruksi sedang dikerjakan.
·         Waiting               : Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah penyelesaian I/Oatau penerimaan sebuah tanda/ signal).
·         Ready                  : Proses sedang menunggu untuk ditugaskan pada sebuah prosesor.
·         Terminated      : Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.

Dari pernyataan dan pengertian antara thread dan proses maka kita bisa simpulkan bahwa perbedaan thread dengan prose situ adalah thread berbeda dengan proses karena thread memiliki address space yang sama yang artiya mereka berbagi variable global. karenanya masing2 thread dapat saling mengakses virtual address, membaca, menulis bahkan menghentikan thread lain. Sedangkan proses bisa dimiliki oleh user dan kemungkinan proses tersebut menunggu atau ditahan proses yang lain. proses selalu dimiliki oleh satu user sehingga mereka dapat saling bekerja sama tidak saling berbenturan.

alhasil hanya segitu yang bisa saya bagiin deh informasinya, makasih juga buat referensi di bawah yang udah membantu banget. kalo masi ada yang kurang dilanjutin pembahasan lain kali ya.. terima kasih...
Referensi :
file.unsri.ac.id/.../%5BRev%5DTugas3_SO_MayaKinanty_SK4B.doc
[1] Naghibzadeh, Mahmoud  (2005) Operating Systems Concepts and Techniques. United Stated of America. iUniverse (Published)
[2] Tanenbaum, Andrew and Woodhull, Albert (1997) Operating Systems Design and Implementation Second Edition. United State of America. Pearson Education International (Published)
[3] Stallings, William (2009) Operating Systems Internals and Design Principles Sixth Edition. United State of America. Pearson Prentice Hall (Published)
[4] Silberschatz, Abraham and Galvin, Peter Baer and Gagne, Greg (2005) Operating System Concepts Seventh Edition. United State of America. John Wiley and Sons (Published)
[5] Patterson, David A. and Hennessy, John L (2005) Computer Organization and Design. United State of America. Morgan Kauffman Publishers (Published)

software, technology dan bahasa komunikasi agent

Software, technologi dan bahasa komunikasi agent


Agent merupakan suatu teknologi baru dalam dunia rekayasasoftware. Kemampuan agen yang otonom, personal, mobile dan mampu bekerja sama secara terus menerus membuat para pengembangsoftware memanfaatkan teknologi ini untuk aplikasi yang mempunyai lingkungan yang memiliki jenis informasi yang beragam dan tersebar di banyak lokasi (Lange, 1998).
Menurut, Graesser (Graesser dalam Jeaning, 1998) software agent adalah “An autonomous agent is sistem situated within and part of environment that senses that environment and acts on it, over time, in pursuit of its own agenda and so as to effect what it senses in the future.”
Di dalam kamus Webster’s New World Dictionary [Guralnik, 1983], agent didefinisikan sebagai: “A person or thing that acts or is capable of acting or is empowered to act, for another.”
Disini ada dua point yang bisa kita ambil:
·        Agent mempunyai kemampuan untuk melakukan suatu tugas/pekerjaan.
·        Agent melakukan suatu tugas/pekerjaan dalam kapasitas untuk sesuatu, atau untuk orang lain.
Ditarik dari point-point diatas Caglayan [Caglayan et al., 1997] mendefinisikan software agent sebagai: “Suatu entitas software komputer yang memungkinkan user (pengguna) untuk mendelegasikan tugas kepadanya secara mandiri (autonomously).”
Definisi agen yang akan dipakai dalam penelitian ini yaitu dapat dilihat dalam dua perspektif, yaitu perspektif user dan perspektif sistem. Dalam perspektif user agen merupakan sebuah software yang bertindak selaku perantara/ agen atau broker bagi user yang memungkinkan user untuk mendelegasikan tugas kepadanya serta melakukan pekerjaan seperti yang diperintahkannya. Sedangkan dalam perspektif sistem, agen dapat mengenali lingkungan kerjanya dan memiliki sifat-sifat keagenan.

Karakteristik dan Atribut Software Agent

1.          Autonomy: Agent dapat melakukan tugas secara mandiri dan tidak dipengaruhi secara langsung oleh user, agent lain ataupun oleh lingkungan (environment). Untuk mencapai tujuan dalam melakukan tugasnya secara mandiri, agent harus memiliki kemampuan kontrol terhadap setiap aksi yang mereka perbuat, baik aksi keluar maupun kedalam [Woolridge et. al., 1995]. Dan satu hal penting lagi yang mendukung autonomy adalah masalah intelegensi (intelligence) dari agent.
2.        Intelligence, Reasoning, dan Learning: Setiap agent harus mempunyai standar minimum untuk bisa disebut agent, yaitu intelegensi (intelligence). Dalam konsep intelligence, ada tiga komponen yang harus dimiliki: internal knowledge base, kemampuan reasoning berdasar pada knowledge base yang dimiliki, dan kemampuan learning untuk beradaptasi dalam perubahan lingkungan.
3.        Mobility dan Stationary: Khusus untuk mobile agent, dia harus memiliki kemampuan yang merupakan karakteristik tertinggi yang dia miliki yaitu mobilitas. Berkebalikan dari hal tersebut adalah stationary agent. Bagaimanapun juga keduanya tetap harus memiliki kemampuan untuk mengirim pesan dan berkomunikasi dengan agent lain.
4.        Delegation: Sesuai dengan namanya dan seperti yang sudah kita bahas pada bagian definisi, agent bergerak dalam kerangka menjalankan tugas yang diperintahkan oleh user. Fenomena pendelegasian (delegation) ini adalah karakteristik utama suatu program disebut agent.
5.        Reactivity: Karakteristik agent yang lain adalah kemampuan untuk bisa cepat beradaptasi dengan adanya perubahan informasi yang ada dalam suatu lingkungan (enviornment). Lingkungan itu bisa mencakup: agent lain, user, adanya informasi dari luar, dsb [Brenner et. al., 1998].
6.        Proactivity dan Goal-Oriented: Sifat proactivity boleh dikata adalah kelanjutan dari sifat reactivity. Agent tidak hanya dituntut bisa beradaptasi terhadap perubahan lingkungan, tetapi juga harus mengambil inisiatif langkah penyelesaian apa yang harus diambil [Brenner et. al., 1998]. Untuk itu agent harus didesain memiliki tujuan (goal) yang jelas, dan selalu berorientasi kepada tujuan yang diembannya (goal-oriented).
7.         Communication and Coordination Capability: Agent harus memiliki kemampuan berkomunikasi dengan user dan juga agent lain. Masalah komunikasi dengan user adalah masuk ke masalah user interface dan perangkatnya, sedangkan masalah komunikasi, koordinasi, dan kolaborasi dengan agent lain adalah masalah sentral penelitian Multi Agent System (MAS). Bagaimanapun juga untuk bisa berkoordinasi dengan agent lain dalam menjalankan tugas, perlu bahasa standard untuk berkomunikasi. Tim Finin [Finin et al., 1993] [Finin et al., 1994] [Finin et al., 1995] [Finin et al., 1997] dan Yannis Labrou [Labrou et al., 1994] [Labrou et al., 1997] adalah peneliti software agent yang banyak berkecimpung dalam riset mengenai bahasa dan protokol komunikasi antar agent. Salah satu produk mereka adalah Knowledge Query and Manipulation Language (KQML). Kemudian masih berhubungan dengan ini komunikasi antar agent adalah Knowledge Interchange Format (KIF).

Klasifikasi Software Agent Menurut Karakteristik Yang Dimiliki

1.        Collaborative Agent: Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System (MAS).
2.      Interface Agent: Agent yang memiliki kemampuan untuk berkolaborasi dengan user, melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan user.
3.      Mobile Agent: Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke tempat lain, dan secara mandiri melakukan tugas ditempat barunya tersebut, dalam lingkungan jaringan komputer.
4.      Information dan Internet Agent: Agent yang memiliki kemampuan untuk menjelajah internet untuk melakukan pencarian, pemfilteran, dan penyajian informasi untuk user, secara mandiri. Atau dengan kata lain, memanage informasi yang ada di dalam jaringan Internet.
5.      Reactive Agent: Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan lingkungan baru dimana dia berada.
6.      Hybrid Agent: Kita sudah mempunyai lima klasifikasi agent. Kemudian agent yang memiliki katakteristik yang merupakan gabungan dari karakteristik yang sudah kita sebutkan sebelumnya adalah masuk ke dalam hybrid agent.
7.       Heterogeneous Agent System: Dalam lingkungan Multi Agent System (MAS), apabila terdapat dua atau lebih hybrid agent yang memiliki perbedaan kemampuan dan karakteristik, maka sistem MAS tersebut kita sebut dengan heterogeneous agent system.

Klasifikasi menurut Lingkungan Dimana Dijalankan
1.        Desktop Agent : Agent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating System (OS).
2.              Internet Agent : Agent yang hidup dan bertugas dalam lingkungan jaringanInternet, melakukan tugas memanage informasi yang ada di Internet. Termasuk dalam klasifikasi ini adalah: Web Search Agent, Web Server Agent, Information Filtering Agent, Information Retrieval Agent, Notification Agent, Service Agent, Mobile Agent.
3.      Intranet Agent : Agent yang hidup dan bertugas dalam lingkungan jaringanIntranet, melakukan tugas memanage informasi yang ada di Intranet.
Termasuk dalam klasifikasi ini adalah: Collaborative Customization Agent, Process Automation Agent, Database Agent, Resource Brokering Agent.

Software agent dalam konsepsi black-box bisa divisualisasikan sebagai berikut. Pertama agent mendapatkan input atau perception terhadap suatu masalah, kemudian bagian intelligent processing mengolah input tersebut sehingga bisa menghasilkan output berupa action. Software agent memiliki module interaksi (interaction module) yang berguna untuk melakukan komunikasi (communication), koordinasi (coordination) dan kooperasi (cooperation) dengan lingkungannya. Lingkungan (environment) dari agent bisa berwujud agent lain, user atau pengguna, ataupun berupa sumber-sumber informasi (information sources). Agent menggunakan module interaksi untuk mendapatkan informasi dari lingkungan dan juga untuk melakukan aksi. Oleh karena itu module interaksi disediakan dalam level input (perception) dan output (action).
Mobile agent adalah agen yang aktif dan dapat bergerak menuju komputer lain, atau mejelajahi jaringan untuk menjalankan tugasnya. Mobile agent sering digunakan untuk mengumpulkan data, informasi atau suatu perubahan. Mobile agent tidak terikat pada sistem dimana ia mulai dieksekusi. Beberapa penerapan dari Mobile agent: Pengumpulan data, pencarian dan penyaringan, pemantauan asinkron, dan pemrosesan paralel.
Keuntungan Mobile agent
1. Mengurangi beban jaringan
2. Efisiensi sumber daya
3. Menanggulangi latency jaringan
4. Encapsulate protocol
5. Eksekusi secara asynchronous dan autonomous
6. Beradaptasi secara dinamis
7. Andal dan toleran terhadap kesalahan
8. Mendukung lingkungan yang heterogen
9. Real Time Notification
10. Ekekusi paralel
11. Paradigma Komputasi yang adaptif
12. Skalabilitas

Bahasa Pemrograman atau komunikasi agent
Bahasa pemrograman yang dipakai untuk tahap implementasi dari softwareagent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yangdiharapkan. Beberapa peneliti memberikan petunjuk tentang bagaimana karakteristik bahasa pemrorgaman yang sebaiknya di pakai. Diantaranya yaitu :
1. Object-Orientedness:
Karena agent adalah berhubungan dengan obyek, bahkan beberapa penelitimenganggap agent adalah obyek yang aktif, maka juga agent harusdiimplementasikan kedalam pemrorgaman yang berorientasi obyek (object-orientedprogramming language).
2. Platform Independence:
Seperti sudah dibahas pada bagian sebelumnya, bahwa agent hidup danberjalan diberbagai lingkungan. Sehingga idealnya bahasa pemrograman yang dipakaiuntuk implementasi adalah yang terlepas dari platform, atau dengan kata lain programtersebut harus bisa dijalankan di platform apapun (platform independence).
3. Communication Capability:
Pada saat berinteraksi dengan agent lain dalam suatu lingkungan jaringan(network environment), diperlukan kemampuan untuk melakukan komunikasi secarafisik. Sehingga diperlukan bahasa pemrograman yang dapat mensupportpemrograman yang berbasis network dan komunikasi.
4. Security:
Faktor keamanan (security) adalah factor yang sangat penting dalam memilihbahasa pemrorgaman untuk implementasi software agent. Terutama untuk mobilagent, diperlukan bahasa pemrograman yang mensupport level-level keamanan yangbisa membuat agent bergerak dengan aman.
5. Code Manipulation:
Beberapa aplikasi software agent memerlukan manipulasi kode programsecara runtime, sehingga diperlikan bahasa pemrograman untuk software agent yangdapat menangani masalah runtime tersebut.Dari karakteristik di atas dapat disimpulkan bahwa bahasa pemrograman yang layak untuk mengimplementasikan software agent adalah sebagai berikut :
Java
• Telescript
• Tcl/Tk, Safe-Tcl, Agent-Tcl

Teknologi agen telah menunjukkan potensi besar untuk memecahkan masalah dalam skala besar sistem terdistribusi.
Aplikasi Software Agent di Dunia Industri
Teknologi agent sudah diaplikasikan secara luas di dunia Industri. Bagaimanapun juga harus diakui bahwa secara sejarah penelitian, selain dunia Internet dan bisnis, teknologi agent banyak didesain untuk dimanfaatkan di bidang industry, yaitu:
·         Manufacturing
·         Process Control
·         Telecommunications
·         Air Traffic Control
·         Transportation System

Aplikasi Software Agent di Dunia Internet dan Bisnis

Teknologi agent paling banyak diaplikasikan dalam dunia Internet dan bisnis ini. Bagaimanapun juga ini tak lepas dari maju dan berkembang pesatnya teknologi jaringan komputer yang membuat perlunya paradigma baru untuk menangani masalah kolaborasi, koordinasi dalam jarak yang jauh, dan salah satu yang penting lagi adalah menangani kendala membengkaknya informasi, yaitu:
·         Information Management
·         Electronic Commerce
·         Distributed Project Management

Aplikasi Software Agent di Dunia Entertainment

Adanya software agent, memungkinkan komunitas informatika dan komputer untuk ikut andil merealisasikan pemikirannya, contohnya:
·         Games
·         Interactive Theatre and Cinema
Aplikasi Software Agent di Dunia Medis
Teknologi agent pun dicoba untuk diimplementasikan dalam rangka mencoba mengatasi masalah-masalah yang berhubungan dengan monitoring pasien [Larsson et al., 1998], manajemen kesehatan dari pasien [Huang et al., 1995], dsb.

Aplikasi Software Agent di Dunia Pendidikan

Dengan perkembangan teknologi jaringan komputer, dunia pendidikan pun salah satu yang merasakan manfaatnya. Sistem pengajaran pun mengalami perkembangan kearah lebih modern dengan memanfaatkan teknologi jaringan. Berhubungan dengan teknologi agent, dewasa ini banyak sekali riset dan aplikasi untuk dunia pendidikan yang menggunakan teknologi agent, misalnya [Chen et al., 1996], [Espinosa et al., 1996], [Florea, 1999], dsb.

http://romisatriawahono.net
http://translate.google.co.id/translate?hl=id&langpair=en|id&u=http://www.imes.mtu.edu/PubDocs/TRC.pdf