TUGAS 3
1. Arsitektur client server
Client server adalah suatu perangkat lunak atau konsep
arsitektur perangkat lunak yang menghubungkan dua objek berupa sistem klien dan
sistem server, yang saling berkomunikasi melalui jaringan komputer atau
komputer yang sama. Server akan menyediakan manajemen aplikasi, data, dan
keamanan data klien. Dalam fungsi pertukaran akses jaringan, server klien
bertindak sebagai program browser web, memberikan informasi kepada pengguna
atau pengguna di seluruh dunia. Ini mirip dengan mengakses email, database,
dll. melalui browser web. Aplikasi server klien memerlukan halaman web dan
alamat IP dari server tertentu. Klien dapat meminta informasi dari server kapan
saja karena klien adalah konsumen dari informasi di server. Proses komunikasi
selalu bergerak dua arah, dan jika klien ingin mengonsumsi informasi, rute yang
dituju selalu ada di server. Klien tidak dapat berkomunikasi dengan klien lain.
Instrumentasi pada Client Server pada dasarnya memiliki fitur bandwidth dan
performance saving, menggunakan peran server sebagai penyimpan semua data yang
digunakan oleh client. Perangkat lunak klien hanya akan mendapatkan informasi
yang diperlukan jika klien segera mengaksesnya. Saat ini informasi yang
dilindungi melewati server dapat dienkripsi sehingga klien dapat memperoleh
data yang aman. Kekuatan sebenarnya dari server klien adalah Anda dapat membuat
bisnis Anda sendiri dari halaman web yang dibuat sebelumnya. Memungkinkan
pelanggan untuk membagikan produk atau layanan mereka dengan cepat kepada
pengguna global. Pengguna akan dengan cepat mendapatkan informasi dari browser
yang mereka gunakan melalui halaman web yang dibuat oleh klien.
a. Server
1) Server adalah program yang berjalan pada remote mesin yang menyediakan layanan kepada client.
2) Ketika program server dimulai, maka server membuka pintu untuk permintaan masuk dari klien, tetapi server tidak pernah memulai layanan sampai diminta untuk melakukannya.
3) Program server adalah program tanpa batas. Ketika mulai, program server akan berjalan tanpa batas kecuali ada masalah.
4) Program server menunggu permintaan masuk dari klien. Ketika suatu permintaan datang, ia menanggapi permintaan itu, baik secara iteratif atau bersamaan.
b. Client
1) client adalah program yang berjalan pada mesin lokal yang meminta layanan dari server
2) Program klien terbatas, yang artinya dimulai oleh pengguna (atau program aplikasi lain) dan berakhir ketika layanan selesai. Biasanya, klien membuka saluran komunikasi menggunakan alamat IP dari remote host dan alamat port dari program server spesifik yang berjalan pada mesin itu. Setelah saluran komunikasi dibuka, klien mengirim permintaannya dan menerima respons.
3) Meskipun bagian permintaan-respons dapat diulang beberapa kali, keseluruhan prosesnya terbatas dan ada akhirnya (berakhir).
Concurency
a. Server
1) Iterative Server hanya dapat memproses satu permintaan pada satu waktu; Server menerima permintaan, memprosesnya, dan mengirim respons ke klien yang merequest sebelum menangani permintaan lain.
2) Concurrence Server, dapat memproses banyak permintaan pada saat yang sama dan dengan demikian dapat membagi waktu antara banyak permintaan.
3) Server menggunakan UDP atau TCP.
4) Operasi server, tergantung pada dua faktor: protocol layer transport dan metode layanan.
5) Secara teoritis kita dapat memiliki empat jenis server:connectionless iterative, connectionless concurrent, connection-oriented iterative, dan connection-oriented concurren.
b. Client
1) client dapat dijalankan pada mesin baik secara iterative atau bersamaan. Menjalankan klien secara iterative berarti menjalankannya satu per satu; satu klien harus memulai, menjalankan, dan mengakhiri sebelum mesin dapat memulai klien lain. Namun, sebagian besar komputer saat ini memungkinkan klien secara bersamaan; yaitu, dua atau lebih klien dapat berjalan pada saat yang sama.
2. ForkingForking/Multitasking merupakan cara tradisional untuk menghandle multiple clients. Konsep client-server merupakan dasar dari setiap transaksi yang terjadi di setiap aplikasi web. Soket adalah antarmuka antara proses aplikasi dan lapisan transport. Ini adalah cara tradisional menangani banyak klien. Saat aplikasi memanggil fork(), salinan program panggilan dibuat, penghitung program (PC) tercapai, dan proses anak baru dimulai dari salinan itu. Hasil kembali dari fork(): sekali dalam program panggilan, waktu berikutnya dalam proses anak. Nilai kembalian adalah PID dari proses anak baru dalam program pemanggilan, dan 0 dalam proses child.
Keuntungan
1) Mudah diimplementasikan
2) Menggunakan proses per klien menjaga apar tidak ada satu klien pun memonopoli server, karena kernel Linux akan menukar proses masuk dan keluar secara preemptif
3) Apabila terjadi crash pada salah satu child process, maka hal tersebut tidak akan mempengaruhi child process yang lain, karena kernel akan mencegah sebuah proses merusak memory dari proses lain
Kekurangan:
1) kurangnya shared memori
2) Untuk program yang besar, sumber daya yang digunakan akan significant karena adanya proses copy untuk setiap anak sehingga mengakibatkan kinerja lambat dan potensi kehabisan sumber daya
Multithreading pada Python adalah cara untuk
mencapai multitasking dengan python menggunakan konsep thread.. Menjadi metode
yang disukai untuk menangani beberapa klien. Thread adalah proses ringan yang
berbagi ruang memori utama dari proses induk. Karena itu, mereka menggunakan
sumber daya yang lebih sedikit daripada aplikasi multiproses, dan waktu
context-switch yang lebih cepat.
Multithreading mempunyai beberapa keuntungan, dibandingkan multiprocessing, di antaranya:
1) Thread bersifat lightweight, sedangkan proses lebih berat. Perlu diketahui bahwa proses adalah program yang sedang berada di memory atau processor, sedang dieksekusi. Thread dapat diartikan sebagai anak dari proses.
2) Thread-thread berbagi pakai ruang alamat yang sama dan karena itu dapat berbagi pakai data dan kode (instruksi)
3) Context switching antar thread biasanya lebih murah daripada antar proses.
4) Biaya komunikasi antar thread relatif lebih rendah daripada komunikasi antar proses.
5) Thread memungkinkan task-task berbeda dikerjakan secara konkuren.
0 comments:
Post a Comment