Parallel computation is one of the computer programming that allows to execute commands simultaneously and concurrently in a single or multiple processors inside a CPU. Parallel computation itself is useful to improve the performance of the computer as more and more processes that can be done at the same time it will be faster.

A. The concept of Parallel
The concept of parallel processors is an ability to perform a task or multiple tasks simultaneously or concurrently, in other words, the processor is able to perform one or many tasks at one time.

B. Distributed Processing
Distributed processing is the process of parallel processing in distributed parallel processing using multiple machines. So, it could be said the ability of the computers that run simultaneously to solve a problem with the process quickly.

C. Parallel Computer Architecture
According to a Processor Designer, taxonomy Flynn, Computer Architecture baguan divided into four, namely: Read the rest of this entry »

The internet is changing the way we conduct business and interact as a society. Traditionally, hardware and software is fully contained on a user’s computer. This means that you access your data and programs exclusively within your own computer.

Cloud computing allows you to access your data and programs outside of your own computing environment. Rather than storing your data and software on your personal computer or server, it is stored in ‘the cloud’. This could include applications, databases, email and file services.

A common analogy to describe cloud computing is renting versus buying. Essentially, you rent capacity (server space or access to software) from a cloud service provider, and connect over the internet. Instead of buying your own IT requirements, you are renting from a service provider, paying for only the resources you use.

Cloud computing has 4 models in terms of different access and security options. Before you move your data into the cloud, you will need to consider which model works best for your business and data needs.


Private cloud

A private cloud is where the services and infrastructure are maintained and managed by you or a third party. This option reduces the potential security and control risks, and will suit you if your data and applications are a core part of your business and you need a higher degree of security or have sensitive data requirements.

Community cloud

A community cloud exists where several organisations share access to a private cloud, with similar security considerations. For example, a series of franchises have their own public clouds, but they are hosted remotely in a private environment.

Public cloud

A public cloud is where the services are stored off-site and accessed over the internet. The storage is managed by an external organisation such as Google or Microsoft. This service offers the greatest level of flexibility and cost saving; however, it is more vulnerable than private clouds.

Hybrid cloud

A hybrid cloud model takes advantages of both public and private cloud services. By spreading your options across different cloud models, you gain the benefits of each model.

For example, you could use a public cloud for your emails to save on large storage costs, while keeping your highly sensitive data safe and secure behind your firewall in a private cloud.

The Benefits of Cloud Computing

  1. Achieve economies of scale – increase volume output or productivity with fewer people. Your cost per unit, project or product plummets.
  2. Reduce spending on technology infrastructure. Maintain easy access to your information with minimal upfront spending. Pay as you go (weekly, quarterly or yearly), based on demand.
  3. Globalize your workforce on the cheap. People worldwide can access the cloud, provided they have an Internet connection.
  4. Streamline processes. Get more work done in less time with less people.
  5. Reduce capital costs. There’s no need to spend big money on hardware, software or licensing fees.
  6. Improve accessibility. You have access anytime, anywhere, making your life so much easier!
  7. Monitor projects more effectively. Stay within budget and ahead of completion cycle times.
  8. Less personnel training is needed. It takes fewer people to do more work on a cloud, with a minimal learning curve on hardware and software issues.
  9. Minimize licensing new software. Stretch and grow without the need to buy expensive software licenses or programs.
  10. Improve flexibility. You can change direction without serious “people” or “financial” issues at stake.

How cloud computing works

There are 3 main types of cloud computing service models available, commonly known as:

  • Software as a Service (SaaS)
  • Infrastructure as a Service (IaaS)
  • Platform as a Service (PaaS).

Depending on your needs, your business could use one of these service models, or a mixture of the 3.

Software as a Service (SaaS)

SaaS is the most common form of cloud computing for small businesses. You can access internet-hosted software applications using a browser, rather than traditional applications stored on your own PC or server. The software application host is responsible for controlling and maintaining the application, including software updates and settings. You, as a user, have limited control over the application and configuration settings.

A typical example of a SaaS is a web-based mail service or customer relationship management system.

Infrastructure as a Service (IaaS)

IaaS typically means buying or renting your computer power and disk space from an external service provider. This option allows you access through a private network or over the internet. The service provider maintains the physical computer hardware including CPU processing, memory, data storage and network connectivity.

Examples of an IaaS include Amazon EC2, Rackspace and Windows Azure.

Platform as a Service (PaaS)

PaaS can be described as a crossover of both SaaS and IaaS. Essentially you rent the hardware, operating systems, storage and network capacity that IaaS provides, as well as the software servers and application environments. PaaS offers you more control over the technical aspects of your computing setup and the ability to customise to suit your needs.

Characteristics of Cloud Computing

Individual use on request

A user can use the resources when he desires, from any place and at any time via the global network. These resources include server time or a network space (physical space on storage devices) that is accessed without the need for human intervention from a client or the service provider.

Wide range of network access capacities

System capacities are available to customers through a network and can be accessed from different devices such as desktop computers, mobile phones, smartphones and tablet devices…

Allocation of resources

Computer resources of providers are grouped in order to serve a large number of simultaneous users. The mechanism of processing power distribution, or the amount of memory, operates in such a way that the system dynamically allocates these parameters according to customer requirements. The users themselves have no control over the physical parameters, i.e. resources location, but at some higher level of the system customatisation, Cloud solutions can choose where their data will be stored and processed (for example, geographical location of data centers).

The elasticity and flexibility of the system

Possibilities of cloud solutions can be available to the system user in a short period of time, if it is necessary. Let us suppose that our site is in the Cloud and that the traffic, in terms of the number of visitors, is similar every day. Then, let us suppose that one day, for some reason, the  Web site traffic rises by 100%. If the is site hosted on our own, private server, there is a strong possibility for it to simply “go down” and stop working  because of software and hardware limitations. In such cases, Cloud dynamically allocates necessary resources in order to ensure a smooth operation, and when the flow decreases again, resources are automatically restored to its original condition. The user is free to purchase additional resources and opportunities in any quantity and at any time.

Measurable service – payment pay-per-use

Cloud systems automatically control and optimize necessary resources depending on the needs of users and required types of services (disk space, power of processor, amount of RAM and so on). All these services are measurable and their usage is transparent, both for the provider and  clients. This is very important because the financial momentum plays a huge role when it comes to this new technology, especially for large enterprise systems and companies.

Cloud Computing Security

NaviSite Managed Cloud Services (MCS) offer you a robust, virtualized infrastructure deployed as multiple, secure clouds hosted in NaviSite’s data centers. The NaviCloud platform enforces security, privacy, and integrity of your applications and data. And NaviSite’s comprehensive, multi-pronged approach to security addresses physical, infrastructure, network, identity, data, and compliance requirements.

NaviSite MCS includes all the basic building blocks you need – virtualized servers, Windows and Linux operating systems, fast and reliable storage, speedy and responsive networking, and best-of-breed firewalls.

These innovative security services integrate seamlessly into the broader NaviSite hosted and cloud environments and are delivered through a customized offering based on the needs of the individual business customer. 

Managed Security Services Designed to Meet the Security and Compliance Needs of Today’s Enterprises

NaviSite, in conjunction with our partner, Alert Logic, a leading provider of Security-as-a-Service solutions for the cloud, offers simplified managed security solutions. These enterprise-class services are fully monitored and managed 24 hours a day, seven days a week. These Security-as-a-Service solutions provide customers a predictable low monthly fee, and the service is implemented without requiring capital investments, unexpected expenses or the burden of managing staff and technology.

These innovative security services integrate seamlessly into the broader NaviSite hosted and cloud environments and are delivered through a customized offering based on the needs of the individual business customer. 

Security-as-a-Service Solutions from Alert Logic and NaviSite include:

Network Intrusion Detection and Prevention: Via the Alert Logic Threat Manager solution, NaviSite deploys network security in any hosted or cloud environment – irrespective of hypervisor and networking architecture – and identifies threats found in network traffic.

  • Vulnerability assessments are also available to scan internal and external networks from known vulnerabilities. Vulnerabilities are categorized and prioritized based on severity with step-by-step remediation instructions provided.

Real-Time Log Flow Analysis: Utilizing the Alert Logic Log Manager application, NaviSite boosts real-time security monitoring or critical security logs – alerting users of critical security issues, in some cases even in advance of a breach.

  • Log Manager collects Windows event log, Syslog, and Flat-File logs. Three types of search capabilities are run for forensic analysis – full text search, “One-Click” filtering, contextual views. All logs are securely stored in redundant offsite data centers eliminating the need for local SAN.

Web Application Security: Through the NaviCloud platform, Web Security Manager delivers critical web protection and cost-effective management, as well as state-of-the-art firewall protection and blocking capabilities.

How Cloud Computing Works

The goal of cloud computing is to apply traditional supercomputing, or high-performance computing power, normally used by military and research facilities, to perform tens of trillions of computations per second, in consumer-oriented applications such as financial portfolios, to deliver personalized information, to provide data storage or to power large, immersive computer games.

To do this, cloud computing uses networks of large groups of servers typically running low-cost consumer PC technology with specialized connections to spread data-processing chores across them. This shared IT infrastructure contains large pools of systems that are linked together. Often, virtualization techniques are used to maximize the power of cloud computing.



Thread sangat berguna untuk membuat proses yang interaktif; misalnya pada
permainan (game). Dengan menggunakan sejumlah thread, program tetap dapat
menggerakkan sejumlah objek sembari memberikan kesempatan pemakai untuk
melakukan tanggapan melalui keyboard. Web browser merupakan contoh lain
penggunaan thread. Tanpa thread, Web browser akan menghentikan segala tanggapan
terhadap pemakai ketika perangkat lunak tersebut sedang mengambil isi dari suatu URL

A. Pengenalan Thread dalam Distribusi

Untuk memahami peran thread dalam sistem terdistribusi, penting untuk memahami apa suatu proses, dan bagaimana proses saling berhubungan. Untuk mengeksekusi sebuah Program, sebuah sistem operasi menciptakan sejumlah prosesor virtual, masing-masing untuk menjalankan program yang berbeda. Untuk melacak prosesor virtual, operasi sistem memiliki tabel proses, mengandung catatan untuk menyimpan daftar nilai CPU , memori peta, file terbuka, informasi akunting. Hak istimewa, dll Suatu proses sering didefinisikan sebagai sebuah program dalam eksekusi, yaitu, sebuah program yang saat ini sedang dieksekusi di salah satu prosesor virtual sistem operasi. Suatu hal yang penting adalah bahwa sistem operasi membutuhkan perhatian besar untuk memastikan bahwa proses yang independen tidak bisa merugikan atau tidak sengaja mempengaruhi ketepatan dari perilaku masing-masing.

Transparansi Hal ini konkurensi membutuhkan biaya yang relatif tinggi. Sebagai contoh, setiap kali sebuah proses dibuat, sistem operasi harus membuat lengkap ruang alamat yang independen. Alokasi dapat berarti menginisialisasi memori dengan segmen, misalnya, zeroing data segmen, menyalin program yang berkaitan ke dalam teks segmen, dan mengatur stack untuk data sementara. Demikian juga, CPU beralih antara dua proses mungkin relatif mahal juga. Selain dari penghematan CPU konteks (yang terdiri dari nilai-nilai , program counter, stack pointer, dll), sistem operasi juga akan harus memodifikasi register memori unit manajemen (MMU) dan cache membatalkan terjemahan alamat seperti di terjemahan lookaside buffer (TLB). Selain itu, jika sistem operasi mendukung proses lebih dari itu secara bersamaan dapat terus di memori utama, mungkin harus menukar proses antara memori utama dan disk sebelum beralih yang sebenarnya dapat mengambil tempat.

Ada dua implikasi penting dari pendekatan ini. Pertama-tama, kinerja dari aplikasi multithreaded hampir tidak pernah lebih buruk daripada pendamping single-threaded. Bahkan, dalam banyak kasus, multithreading mengarah pada keuntungan kinerja. Kedua, karena thread tidak secara otomatis dilindungi jalan prosesnya terhadap satu sama lain, pengembangan aplikasi multithreaded membutuhkan tambahan intelektual usaha. Tepat desain dan menjaga hal-hal sederhana.

Multithreading juga berguna dalam konteks aplikasi besar. seperti aplikasi yang sering dikembangkan sebagai kumpulan program yang bekerja sama, masing-masing untuk dieksekusi oleh proses yang terpisah. Pendekatan ini adalah khas untuk lingkungan UNIX.
Kerjasama antara program-program dilaksanakan dengan cara komunikasi interprocess (IPC) mekanisme. Untuk sistem UNIX, mekanisme ini biasanya mencakup (bernama) pipa, antrian pesan, dan segmen memori bersama, Kelemahan utama dari semua mekanisme IPC adalah bahwa komunikasi sering memerlukan konteks switching yang luas.


B. Implementasi Thread

Thread pada Java ditangani melalui dua mekanisme. Cara pertama dilakukan
dengan memperluas kelas Thread, sedangkan cara kedua dilakukan dengan
mengimplementasikan Runnable.

  • Thread dengan Menggunakan kelas Thread
    Cara pertama untuk membuat thread adalah dengan memperluas kelas Thread
    dan kemudian menuliskan kembali kode pada metode run(). Secara prinsip, hal ini
    dilakukan dengan bentuk semacam berikut:
    class namaKelas extends Thread {
    public void run() {

  • Thread Melalui Runnable
    Runnable sesungguhnya adalah sebuah interface. Dengan mengimplementasikan interface ini, sebuah kelas yang menangani thread dapat diciptakan. Kelas Thread merupakan implementasi dari Runnable. Secara prinsip, hal ini dilakukan dengan bentuk semacam berikut:
    ObjekRunnable objek = new ObjekRunnable();
    Thread namavar = new Thread(Objek Runnable);
    New Thread(new ObjekRunnable()).a. Thread di dalam Distribusi Sistem
    Sebuah properti penting dari thread adalah bahwa mereka dapat menyediakan sarana yang mudah digunakan yang memungkinkan panggilan sistem memblokir tanpa menghalangi seluruh proses di mana thread berjalan. Properti ini membuat thread sangat menarik untuk digunakan dalam sistem terdistribusi karena membuat lebih mudah untuk mengekspresikan komunikasi dalam bentuk mempertahankan koneksi logis beberapa pada saat yang sama. Kami menggambarkan ini titik dengan melihat lebih dekat pada klien dan server multithreaded, masing-masing.


Thread dan proses dapat dilihat sebagai cara untuk melakukan lebih banyak hal pada saat yang sama waktu. Akibatnya, mereka membiarkan kita membangun (potongan) program yang tampaknya akan dieksekusi secara bersamaan. Pada komputer prosesor tunggal, ini adalah eksekusi simultan, Tentu saja, ilusi. Karena hanya ada sebuah CPU, hanya instruksi dari thread tunggal atau proses akan dijalankan pada suatu waktu. Dengan cepat beralih antara thread dan proses, ilusi paralelisme dibuat. Pemisahan antara memiliki sebuah CPU tunggal dan mampu berpura-pura ada lebih dapat diperpanjang untuk sumber daya lain juga, yang mengarah ke apa yang dikenal sebagai sumber daya virtualisasi. Virtualisasi ini telah diterapkan selama beberapa dekade, namun telah menerima minat baru sebagai (didistribusikan) sistem komputer telah menjadi lebih umum dan kompleks, yang mengarah ke situasi yang aplikasi perangkat lunak sebagian besar selalu hidup lebih lama perangkat lunak yang mendasarinya sistem dan perangkat keras. Dalam bagian ini, kita memperhatikan beberapa peran virtualisasi dan mendiskusikan bagaimana dapat direalisasikan.
D. Peran Virtualisasi dalam Sistem Terdistribusi

Dalam prakteknya, setiap sistem komputer (didistribusikan) menawarkan antarmuka pemrograman ke perangkat lunak tingkat yang lebih tinggi. Ada berbagai jenis interface, mulai dari instruksi dasar yang ditetapkan yang ditawarkan oleh CPU untuk koleksi luas antarmuka pemrograman aplikasi yang dikirimkan dengan banyak sistem middleware saat ini. Pada intinya penawaran virtualisasi, dengan memperluas atau mengganti antarmuka yang ada sehingga untuk meniru perilaku sistem lain. Kami akan datang untuk membahas rincian teknis tentang virtualisasi tak lama, tapi mari kita berkonsentrasi pada mengapa virtualisasi adalah penting untuk sistem terdistribusi.

Salah satu alasan paling penting untuk memperkenalkan virtualisasi pada 1970-an, adalah untuk memungkinkan perangkat lunak warisan untuk dijalankan pada hardware mainframe mahal. perangkat lunak tidak hanya termasuk berbagai aplikasi, tetapi sebenarnya juga sistem operasi mereka dikembangkan untuk. Pendekatan terhadap perangkat lunak warisan pendukung telah telah berhasil diterapkan pada mainframe IBM 370 (dan penerus mereka) yang menawarkan mesin virtual untuk sistem operasi yang berbeda yang telah porting.

Refrensi :, Komponen Sistem Operasi,

Wahyu Wijanarko, Sistem Operasi Terdistribusi,


Type Mobile Computing
• Laptops are portable computers , small and can be carried anywhere very easily integrated in a casing . Weight laptops range from 1 to 6 pounds depending on size , materials and specifications . The power source comes from batteries or A / C adapter which can be used to recharge the battery and to power the laptop itself . Usefulness same laptop with a desktop computer , which distinguishes only the size making it easier for users to carry it around .
• Wearable Computer or computer that is applied in the human body . An example is Computer Glacier Ridgeline W200 . W200 is made from reinforced magnesium alloy which maximizes strength and minimizes overall weight . At only 10.2 ounces and was formed in the arm contour , W200 combines the same features of a standard computer with a device that provides comfort and ergonomic wrist worn instrument . The W200 has a 3.5 “color display with touch screen , backlit keyboard and a hot swappable battery . Wireless function of W200 ensure continuous connectivity regardless of the user’s location with plug and play Wi – Fi , Bluetooth and GPS modules . Using Windows CE or Linux operating systems , the unit can be quickly configured to access the remote host system through integrated wired or wireless interfaces . Hands – free operation of the W200 that overcomes the physical limitations associated with normal hand-held computer . This allows the user complete freedom to continue their daily activities with both hands while using the computer has full access at all times . In addition to the electronic compass , the system also integrates the latest and most innovative features , such as tilt and silent reckoning , which allows critical battery savings when the unit is not in use . Hands – free usability of the W200 makes it of special interest for Emergency Services , Security , Defense , Warehouse , Field Logistics and any area where access to a large amount of information required . W200 ridge line of the glacier when it joins rugged computers developed for data collection .
• PDAs ( Personal Digital Assistants ) is an electronic device and a computer -based small form and can be taken anywhere . According to my knowledge PDAs are widely used as a personal organizer at first , but because of its development , then multiply its utility function , such as a calculator , clock and timing pointer , computer games , internet users , receiving and sending electronic mail ( e – mail ) , radio receiver , video recorder , and a memo recorder . Apart from it with a PDA ( pocket computer ) , we can use the address book and store addresses , e-book reading , using GPS and many other functions . Even more sophisticated version of the PDA can be used as a mobile phone , Internet access , intranets , or extranets via Wi – Fi or Wireless Network . One of the typical PDA is the ultimate touch screen facility


Read the rest of this entry »

Software Agent adalah entitas perangkat lunak yang didedikasikan untuk tujuan tertentu yang memungkinkan user untuk mendelegasikan tugasnya secara mandiri, selanjutnya software agent nantinya disebut agent saja. Agent bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan tertentu atau agenda tersendiri. Agent yang tidak berpindah ke host lain disebut stationary agent.

Karakteristik dan Atribut Software Agent

Untuk memperdalam pemahaman tentang software agent, fungsi, peran, dan perbedaan mendasar dikaitkan software program yang ada, berikut ini akan dijelaskan tentang beberapa atribute dan karakteristik yang dimiliki oleh software agent. Tentu tidak semua karakteristik dan atribut terangkum dalam satu agent. Pada hakekatnya daftar karakteristik dan atribut dibawah adalah merupakan hasil survey dari karakteristik yang dimiliki oleh agent-agent yang ada pada saat ini.

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. 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 adalahstationary 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.

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. 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 dan Yannis Labrou adalah peneliti software agent yang banyak berkecimpung dalam riset mengenai bahasa dan protokol komunikasi antar agent. Salah satu produk mereka adalahKnowledge Query and Manipulation Language (KQML). Kemudian masih berhubungan dengan ini komunikasi antar agent adalahKnowledge Interchange Format (KIF).

Klasifikasi Software Agent


Klasifikasi Software Agent Menurut Karakteristik Yang Dimiliki

Teknik klasifikasi agent menurut karakteristik dipelopori oleh Nwana. Menurut Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada karakteristiknya, yaitu :

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 danlearning 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. Kemudianagent 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 Software Agent Menurut Lingkungan Dimana Dijalankan

Caglayan membuat suatu klasifikasi yang menarik mengenaiagent, yang berdasar kepada lingkungan (environment) dimanaagent dijalankan.

Dari sudut pandang dimana dijalankan, software agent bisa diklasifikasikan sebagai desktop agent, internet agent danintranet agent. Lebih jelasnya, daftar dibawah menguraikan klasifikasi tersebut secara mendetail.

1. Desktop Agent

Agent yang hidup dan bertugas dalam lingkunganPersonal Computer (PC), dan berjalan diatas suatu Operating System (OS). Termasuk dalam klasifikasi ini adalah:

  • Operating System Agent
  • Application Agent
  • Application Suite Agent

2. Internet Agent

Agent yang hidup dan bertugas dalam lingkungan jaringan Internet, 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 jaringan Intranet, melakukan tugas memanage informasi yang ada di Intranet. Termasuk dalam klasifikasi ini adalah:

  • Collaborative Customization Agent
  • Process Automation Agent
  • Database Agent
  • Resource Brokering Agent


Definisi RPC :
RPC (Remote Procedure Call) adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote system). RPC mengasumsi keberadaan dari low-level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program. Protokol RPC dibangun diatas protokol eXternal Data Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote. Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan.

Pada prinsipnya hubungan yang terjadi antara program client dan server pada RPC, adalah sebagai berikut :


1. Prosedur client memanggil client stub. Klien memanggil prosedur stublokal. Prosedur Stub akan memberikan parameter dalam suatu paket yangakan dikirim ke jaringan. Proses ini disebut sebagai marshalling.

2. Client stub membuat pesan dan memanggil OS local. Fungsi Network  pada O/S (Operating system ± Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message.

3. OS client mengirim pesan ke OS remote. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupaconnectionless atau connection-oriented.

4. Remote OS memberikan pesan ke server stub. Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim pada network.

5. Server stub meng-unpack parameter2 dan memanggil server. Stub pada server kemudian mengeksekusi prosedur panggilan lokal.

6. Server mengerjakan operasi, dan me-return hasilnya ke server stub. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali kestub pada server.

7. Server stub mem-pack hasil tsb dan memanggil OS lokalnya. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan( hasilnya ) kembali ke jaringan.

8. OS server mengirim pesan (hasil) ke client OS. Message ini akan dikirim kembali ke klien.

9. Client OS memberikan pesan tersebut ke client stub. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan.

10. Client stub meng-unpack hasil dan me-return hasil ke client. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikanakan diambil untuk kemudian diproses pada proses lokal.

Sumber :

Model dalam sistem terdistribusi :
  • Model Arsitektur (Architectural Models)
  • Model Interaksi (Interaction Models)
  • Model Kegagalan (Failure Models)
Resource dalam sistem terdistribusi dipakai secara bersamaan oleh users. biasanya dibungkus dalam suatu komputer dan dapat di akses oleh komputer lain dengan komunikasi.
Setiap resource di atur oleh program yang disebut dengan resource manager. Resource manager memberikan kemungkinan komunikasi interface antar resource.
Resource manager dapat di generalisasi sebagai proses, kalau sistem di design dengan sudut pandang objek (Object Oriented), resource dibungkus dalam suatu objek. Model Arsitektur (Architectural Models)

Bagaimana cara kerja sistem terdistribusi antara komponen-komponen sistem dan bagaimana komponen tersebut berada pada sistem terdistribusi :
  • Client – Server Model
Sistem yang terdiri dari kumpulan – kumpulan proses disebut dengan server, dan memberikan layanan kepada user yang disebut dengan client.
Model client-server biasanya berbasiskan protokol request/reply. Contoh implementasinya antara lain: RPC (Remote Procedure Calling) dan RMI (Remote Method Invocation).
Client : proses akses data, melakukan operasi pada komputer lain.
Server : proses mengatur data, proses mengatur resources, proses komputasi.
Interaksi : Invocation/result

    • Karakteristik Client-Server
      1. Service : menyediakan layanan terpisah yang berbeda
      2. Shared Resource : server dapat melayani beberapa client pada saat yang sama dan mengatur pengaksesan resource
      3. Asymmetrical Protocol : antara client dan server merupakan hubungan one to many
      4. Mix and Match : tidak tergantung pada platform
      5. Encapsulation of Service : message memberitahu server apa yang akan dikerjakan
      6. Transparency Location : proses server dapat ditempatkan pada mesin yang sama atau terpisah dengan proses client. Client/server akan menyembunyikan lokasi server dari client
      7. Message-based-exchange : antara client dan server berkomunikasi dengan mekanisme pertukaran message
      8. Scalability : sistem client/server dapat dimekarkan baik vertikal maupun horisontal
      9. Integrity : kode dan data server diatur secara terpusat, sedangkan pada client tetap pada komputer sendiri
  • Multiple Server Model
  • Proxy Server Model

Proxy server menyediakan hasil copy (replikasi) dari resource yang diatur oleh server lain. Biasanya proxy server dipakai untuk menyimpan hasil copy web resources. ketika client melakukan request ke server, hal pertama yang dilakukan adalah memeriksa proxy server apakah yang diminta oleh client terdapat pada proxy server.

Proxy server dapat diletakan pada setiap client atau dapat dipakai bersama oleh beberapa client. Tujuannya adalah meningkatkan performance dan availibity dengan mencagah frekuensi akses server.
Proxy server membuat duplikasi beberapa server yang diakses oleh client.
Caching :
– penyimpanan lokal untuk item yang sering diakses
– meningkatkan kinerja
– mengurangi beban pada server
– wajib digunakan pada search engine
Contoh model proxy server : searching satu topik namun dilakukan dua kali maka searching terakhir memiliki waktu yang lebuh kecil.
  • Mobile Code Model
Kode yang berpindah dan dijalankan pada komputer yang berbeda. Contoh : Applet.
  • Mobile Agent Model

Mobile agent adalah sebuah program yang berpindah (termasuk data dan kode) dari satu komputer ke lainnya dalam jaringan. Biasanya melakukan suatu pekerjaan otomatis tertentu. Beberapa masalahnya antara lain authentication, permission dan keamanan. Alternatif dengan mengambil informasi melalui remote invocation. Contoh : digunakan untuk install dan memelihara software pada komputer dalam suatu organisasi, membandingkan harga produk dari beberapa vendor.

  • Peer Processes (Peer To Peer)
Bagian dari model sistem terdistribusi dimana sistem dapat sekaligus berfungsi sebagai client maupun server. Sebuah arsitektur di mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer. Pola komunikasi yang digunakan berdasarkan aplikasi yang digunakan. Peer-to-peer merupakan model yang paling general dan fleksible.
Model Interaksi (Interaction Models) 
Untuk interaksinya sistem terdistribusi dibagi menjadi 2 bagian :
  • Synchronous Distributed System

Batas atas dan bawah waktu pengeksekusian dapat di set. Pesan yang dikirim diterima dalam waktu yang sudah ditentukan. Fluktuasi ukuran antara waktu local berada dalam suatu batasan.

Bererapa hal yang penting untuk diperhatikan :
    1. Dalam synchronous distributed system terdapat satu waktu global
    2. Hanya  synchronous distributed system dapat memprediksi perilaku (waktu)
    3. Dalam  synchronous distributed system dimungkinkan dan aman untuk menggunakan mekanisme timeout dalam mendeteksi error atau kegagalan dalam proses atau komunikasi.
  • Asynchronous Distributed System

Banyak sistem terdistribusi yang menggunakan model interaksi ini (termasuk internet). Tidak ada batasan dalam waktu pengeksekusian, tidak ada batasan dalam delay transmission (penundaan pengiriman), dan tidak ada batasan terhadap fuktuasi waktu lokal. Asynchronous Distributed System secara praktek lebih banyak digunakan.

Model Kegagalan (Failure Models) 
Kegagalan dapat terjadi pada proses atau kanal komunikasi, dan penyebabnya bisa berasal dari hardware ataupun software. Model kegagalan (failure models) dibutuhkan dalam membangun suatu sistem dengan prediksi terhadap kegagalan-kegagalan yang mungkin terjadi. Kegagalan yang dapat terjadi dan efek yang ditimbulkan :
  • Ommision Failures

Yang dimaksud dengan ommision failures adalah ketika prosesor dan kanal komunikasi mengalami kegagalan untuk melakukan hal yang seharusnya dilakukan. Dikatakan tidak mempunyai ommision failure apabila :

    1. terjadi keterlambatan (delayed) tetapi akhirnya tetap tereksekusi
    2. sebuah aksi dieksekusi walaupun terdapat kesalahan pada hasil

Dengan synchronous system, ommision failures dapat dideteksi dengan timeouts. Kalau kita yakin bahwa pesan yang dikirim sampai, timeout akan mengindikasikan bahwa proses pengiriman rusak, seperti fail-stop behavior pada sistem.

  • Arbitary Failures

Ini adalah kegagalan yang paling buruk dalam sistem. Tahapan proses atau komunikasi diabaikan atau yang tidak diharapkan terjadi dieksekusi sehingga hasil yang diharapkan tidak terjadi atau mengeluarkan hasil yang salah.

  • Timing Failures

Timing Failures dapat terjadi pada synchronous system, dimana batas waktu diatur untuk eksekusi proses, komunikasi dan fuktuasi waktu. Timing Failures terjadi apabila waktu yang telah ditentukan terlampaui