BAB I Mata Kuliah Sistem Terdistribusi _______________________ PROSES SISTER Oleh : Laseri, S.Kom
Thread Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. multi-threads : memungkinkan proses untuk menjalankan lebih dari satu tugas pada satu waktu. Keuntungan multithreaded : peningkatan respon dari pengguna, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor
PC modern dirancang secara multi- threading. Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network. *sebuah web server akan membuat thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan
Keuntungan Thread Responsi: Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meski pun sebagian dari program tersebut diblok atau melakukan operasi yang panjang web browser yang multithreading, sebuah thread dapat melayani permintaan pengguna sementara thread lain berusaha menampilkan image. Berbagi sumber daya: thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama
Ekonomi: dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya Utilisasi arsitektur multiprocessor: Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda
Client – Server pada sistem client/server harus terdapat satu atau beberapa server yang menyediakan layanan dan satu atau beberapa klien yang meminta layanan tersebut (tidak perduli apakah kondisi tersebut berada pada sebuah sistem jaringan ataupun stand-alone). Istilah server seperti IBM, HP, Compaq Server bisa juga berupa proses, seperti RPC Server yang terdapat pada sistem operasi server seperti Novell, Windows NT, Linux dll
Proses (Services/daemons) menyediakan manajemen memory, akses file/jaringan, serta penjadwalan (scheduling). Server : komputer yang dapat memberikan service ke client, client : 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 (InetAddress:DNS).
1. Karakteristik Server a. Pasif b. Menunggu request c. Menerima request, memproses mereka dan mengirimkan balasan berupa service 2. Karakteristik Client a. Aktif b. Mengirim request c. Menunggu dan menerima balasan dari server
Model Client-Server a. Arsitektur Mainframe b. Arsitektur File Sharing Pada arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya yang sangat besar, baik memori, process maupun media penyimpanan. Melalui Terminal , Pengguna mengakses sumber daya. Komputer terminal hanya memiliki monitor/keyboard dan tidak memiliki CPU b. Arsitektur File Sharing Pada arsitektur ini komputer server menyediakan file-file yang tersimpan di media penyimpanan server yang dapat diakses oleh pengguna. (File besar = lambat)
c. Arsitektur Client/Server Karena keterbatasan sistem file sharing, dikembangkanlah arsitektur client/server. *Hasilnya yaitu software database server RDBMS (Relational Database Management System) menggantikan software database berbasis file server. *query data ke server dapat terlayani dengan lebih cepat karena yang ditransfer bukanlah file, tetapi hanyalah hasil dari query tersebut. RPC (Remote Procedure Calls) memegang peranan penting pada arsitektur client/server.
Model Two-tier Model Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan: client (yang meminta service) dan server (yang menyediakan service). Tiga Komponen : 1. User Interface, yaitu antar muka program aplikasi yang berhadapan dan digunakan langsung oleh user. 2. Manajemen proses 3. Database
e. Model Three-tier Pada model ini disisipkan satu layer tambahan diantara user interface tier dan database tier. Tier tersebut dinamakan middle-tier. Middle-Tier terdiri dari bussiness logic dan rules server middle-tier ini akan mengurangi beban database server.
Communication service types Komunikasi Datagram UDP (User Datagram Protocol) Pengiriman diandalkan efisien dan mudah diimplementasikan Connection-oriented: TCP (Transmission Control Protocol) Jaminan kehandalan dasar kurang efisien, memori dan waktu overhead untuk koreksi kesalahan. UDP/TCP
UDP (User Datagram Protocol) pesan mungkin hilang, duplikat, disampaikan rusak, tanpa memberitahu pengguna menjaga tidak ada informasi negara, sehingga tidak dapat mendeteksi hilang, duplikat atau out-of-order pesan setiap pesan berisi sumber dan alamat tujuan Pesan rusak diabaikan karena tidak ada koreksi kesalahan atau kemacetan Contoh : DNS (Domain Name System)
TCP (Transmission Control Protocol) menetapkan koneksi data stream untuk menjamin keandalan, di-urutan pengiriman (Mencocokkan data, blocking, tread) pemeriksaan kesalahan dan pelaporan untuk kedua ujungnya mencoba untuk mencocokkan kecepatan (timeouts, buffering) Contoh : HTTP, FTP, SMTP
HTTP Hypertext transfer protocol digunakan untuk komunikasi antara browser dan web server FTP File transfer protocol digunakan untuk membuat direktori pada computer remote untuk mengakses file dan folder. File ini juga bisa ditransferkan ke computer. Telnet Menyediakan akses dengan sesi ke computer remote SMTP Simple mail transfer protokol digunakan untuk mengirim mail diantara komputer‐komputer.
Request-Reply Communication
Metode doOperation digunakan pada sisi klien untuk meminta operasi remote Kelas ini menyediakan metode untuk mendapatkan internet address dan port server dari remote objek. Metode doOperation mengirim pesan request ke server yang memiliki alamat internet dan port yang dijelaskan dalam referensi remote objek reference sebagai argument. Setelah mengirim pesan request, doOperation memanggil receive untuk mendapat pesan reply, dimana ia mengekstrak hasil dan mengembalikan kepada pemanggil. Pemanggil dari doOperation diblok sampai remote objek pada server melakukan operasi yang diminta dan mentransmisinya sebagai pesan reply ke proses klien
Metode getRequest digunakan di sisi server Saat server telah memanggil metode pada objek tertentu, server menggunakan sendReply untuk mengirim pesan reply ke klien. Saat pesan reply diterima klien, doOperation tidak diblok, dan eksekusi program klien dilanjutkan
Implementasi UDP Apabila tiga operasi doOperation, getRequest, sendReply diimplementasikan pada datagram UDP, ketiganya akan mengalami kegagalan komunikasi : Pesan tidak dijamin terkirim sesuai urutan di pengirim. Sebagai tambahan, protokol dapat mengalami kegagalan proses. Hal ini dapat diasumsikan bahwa proses mengalami crash failure. Untuk mengatasinya, doOperation menggunakan timeout ketika menunggu mendapatkan jawaban server
Timeout : ada beberapa pilihan yang doOperation dapat lakukan setelah terjadi timeout. Pilihan paling sederhana adalah mengembalikan ke client bahwa operasi doOperation telah gagal. Akantetapi, ini bukanlah cara yang umum digunakan. Penanggulangan kemungkinan hilangnya pesan adalah doOperation mengirim pesan request secara berulang hingga ia mendapatkan jawaban atau terjadi delay. Pada akhirnya, saat doOperation memberikan kembalian, ia akan mengindikasikan ke klien melalui eksepsi bahwa tidak ada hasil yang diterima.
Membuang pesan request terduplikasi : apabila tidak ada pesan request yang ditransmisi ulang, server mungkin menerimanya lebih dari satu kali. Misalnya, server mungkin menerima pesan request pertama tetapi memerlukan waktu eksekusi lebih lama dari timeout yang dimiliki klien. Hal ini dapat membuat server mengeksekusi lebih dari sekali untuk request yang sama. Untuk menghindarinya, protocol perlu didesain untuk mengenali pesan dari klien yang sama.
Menghilangkan pesan reply : apabila server telah mengirim reply ketika ia menerima duplikat request, server perlu mengeksekusi operasi lagi untuk mendapat hasil. Beberapa server dapat mengeksekusi operasi mereka lebih dari sekali dan menerima hasil yang sama tiap waktunya. Sebuah idempotent operation adalah operasi yang dilakukan berulang dengan hasil sama.
Implementasi TCP Secara khusus, Java object serialization adalah protocol stream yang mengijinkan argument dan hasil dikirim melalui stream antara klien dan server, memungkinkan koleksi objek dengan ukuran berapapun ditransmisi secara handal. Jadi, tidak diperlukan transmisi ulang dan penggunaan history. Oleh karena itu, TCP protocol dipilih untuk mengimplemensikan protocol request‐reply karena protocol ini dapat menyederhanakan implementasi
History : istilah history digunakan untuk menunjuk kepada suatu struktur yang memiliki rekaman pesan reply yang telah ditransmisikan. Permulaan history memiliki request indentifier, pesan, dan identifier klien tujuan. Tujuannya adalah untuk mengijinkan server untuk mentransmisi ulang pesan reply ketika klien memproses request mereka. Masalah yang ditimbulkan oleh history ini adalah biaya memori yang diperlukan terlalu besar.
HTTP: Contoh Protokol RequestReply Metode HTTP : setiap request klien menjelaskan nama metode untuk diaplikasikan ke sumber pada sever dan URL sumber. Reply memberi report status request. Request dan reply mengandung data sumber, output program sumber yang dijalankan pada server web.
Dari pengamatan tersebut tentukan : TUGAS PRIBADI Lakukan pengamatan dan analisa proses komunikasi distribusi data dari web mediamassa cetak online baik yang ada di indonesia dan luar negeri (min 1 web) Dari pengamatan tersebut tentukan : 1. Jalur komunikasi/jaringannya (ping) 2. Troughput 3. Routing/trace web tersebut dari tempat Anda mengakses min dari 3 jalur yang berbeda : A. wifi B. Simcard jalur telepon GSM/CDMA C. WArnet Buat kesimpulannya dari analisa dan pengamatan yang Anda telah lakukan.
Apa itu PING Ping adalah software yang berjalan di atas protokol ICMP (Internet Control Message Protocol) untuk mencek hubungan antara dua komputer di internet PING merupakan salah satu program yang digunakan untuk mengecek komunikasi antar komputer dalam sebuah jaringan melalui protokol TCP/IP.
Kegunaan PING Ping digunakan untuk memastikan bahwa satu komputer yang sedang dituju sedang aktif dan memberikan respon balik. Misalnya, bila kita ingin mengirimkan suatu file ke suatu alamat host, maka untuk melihat berapa lama waktu operasi yang dibutuhkan, kita menggunakan ping. (Nama “ping” datang dari sonar sebuah kapal selam yang sedang aktif, yang sering mengeluarkan bunyi ping ketika menemukan sebuah objek).
Cara Kerja PING PING akan mengirimkan Internet Control Message Protocol (ICMP) Echo Request messages pada ip address komputer yang dituju dan meminta respons dari komputer tersebut. Jika komputer target memberikan respond maka komputer tersebut memberikan informasi seperti contoh PING report yang diberikan yaitu: bytes=32 time=30ms TTL=123
Cara Kerja PING PING akan mengirimkan Internet Control Message Protocol (ICMP) Echo Request messages pada ip address komputer yang dituju dan meminta respons dari komputer tersebut. Jika komputer target memberikan respond maka komputer tersebut memberikan informasi seperti contoh PING report yang diberikan yaitu: bytes=32 time=30ms TTL=123
Byte, Time & TTL dlm PING Bytes menunjukkan besar request packet yang dikirimkan. Time menunjukkan nilai “round trip delay” (disebut juga sebagai delay atau latency) yang menunjukkan waktu yang diperlukan packet yang anda kirimkan untuk mencapai komputer yang dituju. TTL merupakan nilai “Time-To-Live” yang digunakan untuk mencegah adanya circular routing pada suatu jaringan. Dengan mengurangi nilai TTL awal yaitu 128 dengan nilai TTL akhir maka bisa dihitung banyaknya hop yang dilalui dari komputer asal ke komputer tujuan.
FUNGSI PING Mengetahui status up/down komputer dalam jaringan. Kita dapat mengecek apakah sebuah komputer up/down menggunakan perintah PING, jika komputer tersebut memberikan response terhadap perintah PING yang kita berikan maka dikatakan bahwa komputer tersebut up atau hidup. Memonitor availability status komputer dalam jaringan. PING dapat digunakan sebagai tool monitoring availibilitas komputer dalam jaringan yang merupakan salah satu indikator kualitas jaringan yaitu dengan melakukan PING secara periodik pada komputer yang dituju. Semakin kecil downtime, semakin bagus kualitas jaringan tersebut. Mengetahui responsifitas komunikasi sebuah jaringan. Besarnya nilai delay atau latency yang dilaporkan oleh PING menjadi indikasi seberapa responsif komunikasi terjadi dengan komputer yang dituju. Semakin besar nilai delay menunjukkan semakin lamban respons yang diberikan. Sehingga nilai delay ini juga bisa digunakan sebagai indikator kualitas jaringan.
Contoh penggunaan ping : ping 192.168.1.2 –t Paket akan dikirimkan terus menerus sampai ada penekanan tombol Ctrl + C. ping 192.168.1.2 -n 32 Jumlah permintaan echo yang dikirimkan berjumlah 32 byte ping 192.168.1.2 -l 32 Jumlah buffer yang dikirimkan sebanyak 32 byte ping 192.168.1.2 -n 32 Jumlah waktu (timeout) untuk menunggu respon dalam satuan milidetik. Pada contoh diatas waktu yang dibutuhkan adalah 1 milidetik. Opsi yang lain dapat Anda lihat dengan mengetikkan : ping /? pada prompt DOS Anda..