iklan

Lazada Malaysia

Senin, 25 Januari 2016

PENGENALAN SISTEM TERDISTRIBUSI



PENGENALAN SISTEM TERDISTRIBUSI



1.1.         Definisi dan contoh Sistem Terdistribusi

Sistem Terdistribusi terdiri dari dua kata yaitu “Sistem” dan “Terdistribusi”. Sistem terdistribusi merupakan sekumpulan elemen yang saling berhubungan satu dengan yang lainnya dan membentuk satu kesatuan untuk menyelesaikan satu tujuan yang spesifik atau menjalangkan sperangkat fungsi. Adapun terdistribusi berasal dari kata “distribusi” yang merupakan lawan kata “sentralisasi” yang artinya penyebaran, sirkulasi, penyerahan, pembagian menjadi bagian-bagian kecil.

Contoh Sistem Terdistribusi :

  1. Intranet Jaringan (proprietary) yang teradministrasi secara lokal dan dapat terhubung ke internet melalui firewall juga adanya layanan internal dan eksternal didalamnya.

  1. Internet Jaringan global yang menghubungkan komputer satu sama lain dan dapat berkomunikasi dengan media IP sebagai protokol.

  1. World Wide Web Arsiteketur client/server terbuka yang diterapkan di atas infrastuktur internet dan juga shared resources melalui URL.

  1. Mobile dan sistem komputasi ubiguitos Sistem telepon Celullar (e.g. GSM) re. Resources yang dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak, komputer laptop, ubiquitos computing, handheld devices, PDA, etc

  1. Sistem terdistribusi multimedia biasanya digunakan pada infrastruktur internet - karakteristik Sumber data yang heterogen dan memerlukan sinkronisasi secara real time -video, audio, text Multicast

1.2.         Karakteristik Sistem Terdistribusi

Resource Access and Sharing

Kemampuan menggunakan hardware, software atau data dimanapun dan kapanpun. Karakteristik ini juga yang menentukan siapa saja yang dapat mengakses sebuah resource dalam sebuah sistem terdistribusi. Salah satu contohnya dalam sebuah web, terdapat .htaccess yang hanya dapat diakses oleh user-user yang telah memiliki grant access terhadap file tersebut.






Openness (Keterbukaan)

Sebuah keterbukaan dalam sistem terdistribusi memiliki pengertian kemampuan sebuah sistem dalam mengembangkan fleksibilitas terhadap peningkatan kinerja sebuah sistem. Seperti penambahan module baru dan ketersediaan extension / plugin yang dapat terkoneksi dengan sistem lain. Contoh karakteristik ini misalkan sebuah aplikasi web banking yang dapat terhubung dengan sistem web milik perusahaan finance.

Concurrency

Semua proses dalam sistem terdistribusi dilakukan secara concurrency (secara bersama-sama). Hal ini dilakukan untuk mencegah inkonsistensi dan ketidak valid an sebuah data dan proses. Sebagai contoh dalam sebuah aplikasi web yang diakses oleh banyak user. Ketika server melakukan sebuah update. Maka semua user yang mengakses halaman web tersebut akan langsung mendapatkan update terbaru tersebut.

Scalability

Skalabilitas memiliki pengertian bahwa sebuah sistem terdistribusi harus dapat ditingkatkan kinerjanya tanpa mengubah komponen-komponen di dalamnya. Sebagai contoh, sebuah aplikasi web yang digunakan oleh user yang terlalu banyak. Maka untuk meningkatkan kinerja dari web tersebut agar tidak terjadi overload atau system down maka perlu dilakukan upgrade processor dan ram. Dalam proses upgrading tersebut, komponen dalam web tidak perlu diubah.

Fault Tolerance (Toleransi Kesalahan)

Kesalahan pasti terjadi dalam sebuah sistem. Entah itu disebabkan karena masalah jaringan, power supply, bencana alam atau human error. Sebuah sistem terdistribusi dirancang memliki kemampuan untuk menangani hal-hal tersebut. Contoh dalam hal ini adalah dibangunnya sebuah clustering server. Dimana ketika server utama mengalami down karena beberapa penyebab kesalahan, maka extended server langsung membackup sistem utama dan menggantikannya.

Transparency

Secara umum, transparansi disini tidak berlaku untuk user biasa yang mengutamakan fungsionalitas, apakah ia sedang menggunakan sistem yang terdistribusi atau tidak. Namun secara khusus bagi seorang pengelola baik itu developer atau administrator sistem sangat perlu untuk mengetahui arsitektur dari sistem yang sedang





digunakan karena untuk mempermudah bagi mereka dalam mengembangkan dan memelihara sistem tersebut.


1.3.         Model Sistem Terdistribusi

·        Model Client Server

Sistem client-server mempunyai satu atau lebih proses client dan satu atau lebih proses server, dan sebuah proses client dapat mengirim query ke sembarang proses server. Client bertanggung jawab pada antar muka untuk user, sedangkan server mengatur data dan mengeksekusi transaksi. Sehingga suatu proses client berjalan pada sebuah personal komputer dan mengirim query ke sebuah server yang berjalan pada mainframe.

Arsitektur ini menjadi sangat popular untuk beberapa alasan. Pertama, implementasi yang relatif sederhana karena pembagian fungsi yang baik dan karena server tersentralisasi. Kedua, mesin server yang mahal utilisasinya tidak terpengaruh pada interaksi pemakai, meskipun mesin client tidak mahal. Ketiga, pemakai dapat menjalankan antarmuka berbasis grafis sehingga pemakai lebih mudah dibandingkan antar muka pada server yang tidak user-friendly. perlu diingat batasan antara client dan server dan untuk menjaga komunikasi antara keduanya yang berorientasi himpunan.

1.  Model Multiple Server







Gambar 1.1 Model Multiple Server

Service disediakan oleh beberapa server

Contoh:

  Sebuah situs yang jalankan dibeberapa server

  Server menggunakan replikasi atau database terdistribusi


2.  Model Proxy Server




Gambar 1.2 Model Proxy Server






Proxy server menyediakan hasil copy (replikasi) dari resource yang di atur oleh server lain. Biasa nya proxy server di pakai untuk menyimpan hasil copy web resources. Ketika client melakukan request ke server, hal yang pertama dilakukan adalah memeriksa proxy server apakah yang diminta oleh client terdapat pada proxy server. Proxy server dapat diletakkan pada setiap client atau dapat di pakai bersama oleh beberapa client. Tujuannya adalah meningkatkan performance dan availibity dengan mencegah frekwensi akses ke 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


3.  Model Peer To Peer






Gambar 1.3 Model 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.


4.  Model Mobile Code




Gambar 1.4 Model Mobile Code

Kode      yang       berpindah      dan      dijalankan       pada      pc       yang      berbeda

Contoh: Applet

5.  Model Mobile Agent

Sebuah  program  yang  berpindah  dari  satu  komputer  ke  komputer  yang  lain

• Melakukan perkerjaan otomatis



Contoh:

– Untuk install dan pemeliharan software pada komputer sebuah organisasi


1.4.         Permasalahan Sistem Terdistribusi

Keheterogenan

·         Suatu sistem terdistribusi dpt dibangun dr berbagai n/w, o/s, h/w, & p/l yg berbeda.

IP dpt digunakan untuk mengatasi perbedaan jaringan. Middleware mengatasi perbedaan lainnya.

Keterbukaan

·         Mendukung extensibility.-Setiap komponen memiliki antarmuka (interface), yang di-publish ke komponen lain.

Perlu integrasi berbagai komponen yang dibuat olehprogrammer atau vendor yang

berbeda. Keamanan

·         Shared resources & transmisi informasi rahasia perlu dilengkapi dengan enkripsi.

Cegah denial of service.-PS: Dibahas dalam kuliahCriptography & Information Security.

Scalability

·         Penambahan pemakai membutuhkan penambahan resource yang konstan. Cegah bottleneck Jika perlu, gunakan replikasi.

Penanganan Kegagalan

·         Setiap  proses  (komputer  atau  jaringan)  dpt  mengalami  kegagalan  secara

independen.

Komponen lain harus tetap berjalan dengan baik. E.g. failed branch in a distributed banking system.

Concurrency

·    Multiple users with concurrent requests to a shared resources. Setiap resource hrs aman di lingkungan tersebut di atas.

Transparansi

·         Transparan: bagi pemakai, keberadaan beberapa komponen tampak sebaaig satu sistem saja. Accesstransparency : Local & remote resources dapat diakses dengan operasi yang sama.




KOMUNIKASI



2.1.         Protocol

Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan,  komunikasi, dan perpindahan data antara dua atau lebih titik  komputer. Protokol dapat diterapkan pada  perangkat keras,  perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras.

Protokol perlu diutamakan pada penggunaan standar teknis, untuk menspesifikasi bagaimana membangun komputer atau menghubungkan peralatan perangkat keras. Protokol secara umum digunakan pada komunikasi  real-time dimana standar digunakan untuk mengatur struktur dari informasi untuk penyimpanan jangka panjang.

2.2.         RPC (Remote Procedure Call)

Remote
Procedure  Call
(RPC) adalah
sebuah  metode  yang  memungkinkan
kita untuk   mengakses
sebuah
prosedur   yang
berada
di   komputer
lain.   Untuk
dapat melakukan
ini
sebuah
server

harus
menyediakan
layanan
remote procedure.Pendekatan yang dilakuan adalah sebuah
server membuka
socket, lalu

menunggu client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu

haruS menghubungi   port   yang   mana,   client   bisa   me-request   kepada
sebuah
matchmaker pada sebuah RPC  port yang tetap.  Matchmaker akan memberikan
port apa

yang digunakan oleh prosedur yang diminta client.

RPC masih menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default sudah ter-install kedalam sistemnya, biasanya RPC ini digunakan untuk administrasi sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.

2.3.         Studi kasus RPC

Contoh studi kasus RPC yaitu pada jasa penge-print-an di rental pengetikan yang di dalamnya terdapat 1 komputer server, beberapa komputer client dan sebuah printer yang hanya terhubung dengan server. User dari computer client ingin mencetak data dari komputernya. Biasanya user memindah data dengan bantuan device external seperti disket,

6


flash disk, hard disk, atau cd-rw. Namun dengan RPC hal tersebut akan menjadi lebih efisien.

Solusi : Dengan RPC, untuk mencetak data dari computer client, computer client mengirim pesan “cetak” kepada computer server. Kemudian computer server menerima perintah tersebut dan kemudian menjalankan perintah mencetak data. Setelah itu server mengirimkan pesan pada client berupa informasi “file telah dicetak”.

2.4.         Object Interface

Pengertian Interface adalah Himpunan operasi – operasi yang menentukan perilaku sebuah objek, biasanya digunakan apabila kita ingin menentukan apa saja yang harus dillakukan oleh satu class tetapi tidak menentukan bagaimana cara untuk melakukannya.

Untuk memiliki class yang tidak berhubungan yang mengimplementasikan method yang sama.

Contoh:

– Class Line dan MyInteger : Tidak berhubungan, Keduanya mengimplementasikan method perbandingan

–  isGreater

–  isles

–  isEqual

◦ Untuk mengungkapkan sebuah interface pemrograman object tanpa   pernyataan class

◦ Untuk model multi inheritance yang mengijinkan sebuah class untuk memiliki lebih dari satu superclass.

Cara Membuat Interface

Untuk membuat interface, kita tulis,

--------------------------------------------------------

public interface [InterfaceName]

{

//beberapa method tanpa isi

}

--------------------------------------------------------





PROSES



3.1.         Thread

3.1.1. Pengertian Thread

Thread adalah sebuah alur kontrol dari sebuah proses. Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama.

3.1.2. Pustaka Thread

Pustaka Thread atau yang lebih familiar dikenal dengan Thread Library bertugas untuk menyediakan API untuk programmer dalam menciptakan dan memanage thread.

Ada dua cara dalam mengimplementasikan pustaka thread:

  1. Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.

  1. Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel.


Ada tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan Win32. Implementasi POSIX standard dapat dengan cara user level dan kernel level, sedangkan Win32 adalah kernel level. Java API thread dapat diimplementasikan oleh Pthreads atau Win32.

3.1.3. Implementasi Threads Pada User-Space

Kegunaan Thread yaitu Multithreading berguna untuk multi processor dan single processor.

Kegunaan untuk system multi processor adalah :

·         Sebagai unit pararel atau tingkat granularitas pararelisme.

·         Peningkatan kinerja disbanding berbasis proses. Kegunaan multithreading pada single processor, adalah :

·         Kerja foreground dan background sekaligus di satu aplikasi.

·         Penanganan asynchronous proseccing menjadi baik.



·         Mempercepat eksekusi program.

·         Pengorganisasian program menjadi lebih baik.

Manfaat utama banyak thread di satu proses adalah memaksimumkan derajat kongkurensi antara operasi-operasi yang terkait erat. Aplikasi jauh lebih efisien dikerjakan sebagai sekumpulan thread disbanding sekumpulan proses.


3.2.         Client – Server

3.2.1. Pengertian Client Server

Server adalah komputer yang dapat memberikan service ke client, sedangkan client adalah komputer yang mengakses beberapa service yang ada di server.

Ketika client membutuhkan suatu service yang ada di server, dia akan mengirim request kepada server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka server akan mengirim balasan berupa service yang dibutuhkan untuk saling berhubungan menggunakan Socket.



Gambar 3.3 Client-Server

Karakteristik Server : Pasif; Menunggu request; Menerima request, memproses mereka dan mengirimkan balasan berupa service. Karakteristik Client : Aktif; Mengirim request; Menunggu dan menerima balasan dari server.


3.2.2. Model Client-Server

  1. Arsitektur Mainframe

Pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, processor maupun media penyimpanan.

  1. Arsitektur File Sharing

Pada arsitektur ini komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna.

  1. Arsitektur Client/Server

Salah satu hasilnya yaitu berupa software database server yang menggantikan software database berbasis file server.

  1. Model Two-tier

Model Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan: client (yang meminta service) dan server (yang menyediakan service).









Gambar 3.4 Model Two-lier

  1. Model Three-tier

Pada model ini disisipkan satu layer tambahan diantara user interface tier dan database tier.






Gambar 3.5 Model Three-tier


3.3.         Agent

3.3.1. Pengertian Agent

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.

3.3.2. Karakteristik Agent

  1. Autonomy

  1. Intelligence, Reasoning, dan Learning

  1. Mobility dan Stationary

  1. Delegation Reactivity

  1. Proactivity dan Goal-Oriented

  1. Communication and Coordination Capability







3.3.3. Klasifikasi Software Agent

  1. Klasifikasi menurut Karakteristik yang Dimiliki

Menurut Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada karakteristiknya.





Gambar 3.6 Klasifikasi Software Agent Menurut Karakteristik Yang Dimiliki

a)    Collaborative Agent : Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam kerangka Multi Agent System (MAS).

b)    Interface Agent : Agent yang memiliki kemampuan untuk berkolaborasi dengan user, melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan user.

c)    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.

d)    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.

e)    Reactive Agent : Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan lingkungan baru dimana dia berada.

f)     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.

g)    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.

2.  Klasifikasi menurut Lingkungan Dimana Dijalankan

a)    Desktop Agent : Agent yang hidup dan bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating System (OS).





b)    Internet Agent : Agent yang hidup dan bertugas dalam lingkungan jaringan Internet, melakukan tugas memanage informasi yang ada di Internet.

c)    Intranet Agent : Agent yang hidup dan bertugas dalam lingkungan jaringan Intranet, melakukan tugas memanage informasi yang ada di Intranet.


Bahasa pemrograman yang dipakai untuk tahap implementasi dari software agent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yang diharapkan.

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



































 

Tidak ada komentar:

Posting Komentar