Oleh karena itu, terdapat ketidakpastian yang melekat dalam pengoperasian sistem terdistribusi yang harus diperhitungkan ketika kita merancang sistem. Untuk membuat sistem terdistribusi menjadi transparan (yaitu menyembunyikan sifat terdistribusinya), kita perlu menyembunyikan distribusi yang mendasarinya. Dalam praktiknya, tidak mungkin membuat sistem sepenuhnya transparan, dan pengguna pada umumnya sadar bahwa mereka berhadapan dengan sistem terdistribusi.
Kualitas Layanan (QoS) yang disediakan oleh sistem terdistribusi mencerminkan kemampuan sistem untuk memberikan layanannya kepada penggunanya secara andal dan dengan waktu respons dan throughput yang dapat diterima.
Models of Interaction
Models of Interaction (Lanj.)
Interaksi prosedural: melibatkan satu komputer yang memanggil layanan diketahui yang disediakan oleh komputer lain dan menunggu layanan tersebut dijalankan. 34;delivery", yang memberikan informasi tentang apa yang dibutuhkan dalam pesan, yang kemudian dikirim ke komputer lain. Komunikasi prosedural dalam sistem terdistribusi biasanya dilakukan dengan menggunakan panggilan prosedur jarak jauh (RPC: Remote Procedure Calls).
Di Java, pemanggilan metode jarak jauh (RMI: Remote Method Invocations) adalah panggilan prosedur jarak jauh.
Middleware
Middleware (Lanj.)
Dukungan interaksi, di mana middleware koordinasi mengoordinasikan interaksi antara berbagai komponen dalam sistem. Penyediaan layanan umum, dimana middleware menyediakan implementasi layanan yang dapat digunakan kembali yang mungkin diperlukan oleh berbagai komponen dalam sistem terdistribusi. Layanan umum adalah layanan yang mungkin diperlukan oleh komponen berbeda, apa pun fungsi komponen tersebut.
Untuk komponen terdistribusi, kita dapat menganggap layanan bersama ini disediakan oleh middleware; untuk layanan mereka yang disediakan oleh perpustakaan umum.
Client–Server Computing
Dalam sistem klien-server, pengguna berinteraksi dengan program yang berjalan di komputer lokal mereka, seperti browser web atau aplikasi di perangkat seluler.
Client–Server Computing
Pola-Pola Arsitektural Untuk Sistem Terdistribusi
Karena tidak ada model organisasi sistem universal yang sesuai untuk semua keadaan, berbagai gaya arsitektur terdistribusi telah muncul. Saat merancang aplikasi terdistribusi, Anda harus memilih gaya arsitektur yang mendukung persyaratan non-fungsional penting dari sistem.
Pola-Pola Arsitektural Untuk Sistem Terdistribusi
Master-Slave Architecture
Master-Slave Architecture (Lanj.)
Sistem kendali lalu lintas di kota memiliki tiga proses logis yang berjalan pada prosesor terpisah. Proses master adalah proses ruang kendali yang berkomunikasi dengan proses budak terpisah yang bertanggung jawab mengumpulkan data lalu lintas dan mengendalikan pengoperasian lampu lalu lintas. Proses manajemen sensor mengumpulkan sensor secara berkala untuk menangkap informasi arus lalu lintas dan mengumpulkan informasi tersebut untuk diproses lebih lanjut.
Prosesor sensor itu sendiri secara berkala disurvei untuk mendapatkan informasi oleh proses master mengenai menampilkan status lalu lintas kepada operator, menghitung urutan lampu lalu lintas, dan menerima perintah operator untuk mengubah urutan ini. Sistem ruang kendali mengirimkan perintah ke proses kendali lampu lalu lintas, yang mengubahnya menjadi sinyal untuk mengontrol perangkat keras lampu lalu lintas. Sistem ruang kendali utama sendiri diatur sebagai sistem klien-server, dengan proses klien berjalan di konsol operator.
Two-Tier Client–Server Architectures
Two-Tier Client–Server Architectures (Lanj.)
Model klien tipis, dimana lapisan presentasi diimplementasikan pada klien dan semua lapisan lainnya (pemrosesan data, pemrosesan aplikasi, dan basis data) diimplementasikan pada server. Perangkat lunak presentasi klien biasanya berupa browser web, namun aplikasi untuk perangkat seluler mungkin juga tersedia. Dalam hal ini, perangkat lunak klien dapat berupa program yang ditulis khusus dan terintegrasi erat dengan aplikasi server.
Ini menjadi masalah besar ketika ada banyak klien, karena menginstal perangkat lunak baru pada semuanya bisa jadi sulit dan mahal. Namun, kelemahan pendekatan klien tipis adalah pendekatan ini menempatkan beban pemrosesan yang berat pada server dan jaringan. Server bertanggung jawab atas semua komputasi, yang dapat menghasilkan lalu lintas jaringan yang signifikan antara klien dan server.
Model klien tebal memanfaatkan kekuatan pemrosesan yang tersedia di komputer yang menjalankan perangkat lunak klien dan mendistribusikan sebagian atau seluruh pemrosesan dan presentasi aplikasi ke klien. Contoh situasi di mana arsitektur klien yang kental digunakan adalah sistem ATM bank yang menyediakan uang tunai dan layanan perbankan lainnya kepada pengguna. Meskipun model klien tebal mendistribusikan pemrosesan lebih efisien daripada model klien tipis, manajemen sistem menjadi lebih kompleks ketika klien tujuan khusus digunakan daripada browser.
Multi-Tier Client–Server Architectures
Multi-Tier Client–Server Architectures (Lanj.)
Sistem internet banking (Gambar 12.10) adalah contoh arsitektur client-server multi-tier, dimana terdapat tiga level dalam sistem. Dalam hal ini, penggunaan arsitektur tiga tingkat memungkinkan transfer informasi antara server web dan server database menjadi lebih optimal. Middleware efisien yang mendukung kueri basis data dalam SQL (Structured Query Language) digunakan untuk menangani pengambilan informasi dari basis data.
Model klien-server tiga tingkat dapat diperluas ke varian multi-tingkat, di mana server tambahan ditambahkan ke sistem. Ini mungkin melibatkan penggunaan server web untuk manajemen data dan server terpisah untuk pemrosesan aplikasi dan layanan basis data. Sistem berjenjang juga dapat digunakan ketika aplikasi perlu mengakses dan menggunakan data dari database yang berbeda.
Sistem klien-server multi-tingkat yang mendistribusikan pemrosesan aplikasi ke beberapa server lebih skalabel dibandingkan arsitektur dua tingkat. Pemrosesan dapat didistribusikan antara logika aplikasi dan server penanganan data, sehingga menghasilkan respons yang lebih cepat terhadap permintaan klien. Perancang arsitektur client-server harus mempertimbangkan sejumlah faktor ketika memilih arsitektur distribusi yang paling tepat.
Distributed Component Architectures
Distributed Component Architectures (Lanj.)
Pendekatan yang lebih umum dalam merancang sistem terdistribusi adalah merancang sistem sebagai kumpulan layanan, tanpa berusaha memetakan layanan ini ke lapisan dalam sistem. Ia mengelola interaksi komponen, merekonsiliasi perbedaan antara tipe parameter yang dikirimkan antar komponen, dan menyediakan serangkaian layanan umum yang dapat digunakan komponen aplikasi. Objek baru atau objek yang direplikasi dapat ditambahkan seiring bertambahnya beban pada sistem, tanpa mengganggu bagian lain dari sistem.
Anda dapat mengkonfigurasi ulang sistem secara dinamis dengan komponen yang bermigrasi ke seluruh jaringan sesuai kebutuhan. Komponen penyedia layanan dapat bermigrasi ke prosesor yang sama dengan objek yang meminta layanan, sehingga meningkatkan kinerja sistem. Arsitektur komponen terdistribusi dapat digunakan sebagai model logis yang memungkinkan sistem terstruktur dan terorganisir.
Misalnya, aplikasi ritel mungkin memiliki komponen aplikasi yang berkaitan dengan manajemen inventaris, komunikasi pelanggan, pemesanan barang, dan sebagainya. Sistem penambangan data adalah contoh bagus dari jenis sistem yang dapat diimplementasikan menggunakan arsitektur komponen terdistribusi. Contoh dari aplikasi penambangan data adalah sistem untuk bisnis ritel yang menjual makanan dan buku.
Dalam contoh ini, setiap database penjualan dapat dikemas sebagai komponen terdistribusi dengan antarmuka yang menyediakan akses baca-saja ke data. Komponen visualisasi bekerja dengan komponen integrator untuk membuat visualisasi atau laporan tentang hubungan yang ditemukan.
Peer-to-Peer Architectures
Dalam aplikasi peer-to-peer, seluruh sistem dirancang untuk memanfaatkan daya komputasi dan penyimpanan yang tersedia di jaringan komputer yang berpotensi besar. Standar dan protokol yang memungkinkan komunikasi antar node tertanam dalam aplikasi itu sendiri, dan setiap node harus menjalankan salinan aplikasi tersebut.
Peer-to-Peer Architectures (Lanj.)
Fakta bahwa tidak ada server pusat berarti sistem lebih sulit untuk dipantau; oleh karena itu, tingkat privasi komunikasi yang lebih tinggi dimungkinkan. Dalam arsitektur terdesentralisasi, node dalam suatu jaringan tidak hanya merupakan elemen fungsional, tetapi juga saklar komunikasi yang dapat merutekan data dan mengontrol sinyal dari satu node ke node lainnya. Namun, ketika sebuah dokumen diambil, node yang mengambil dokumen tersebut juga menyediakannya untuk node lain.
Jika seseorang membutuhkan dokumen yang disimpan di suatu tempat di jaringan, mereka mengeluarkan perintah pencarian yang dikirim ke sebuah node di "lokalitas" mereka. Ketika sebuah dokumen akhirnya ditemukan, node yang menyimpan dokumen tersebut kemudian mengirimkannya langsung ke node yang meminta dengan membuat koneksi peer-to-peer. Arsitektur terdesentralisasi ini memiliki keuntungan karena sangat redundant dan oleh karena itu toleran terhadap kesalahan dan juga toleran terhadap node yang terputus dari jaringan.
Namun, kelemahannya adalah banyak node berbeda dapat memproses kueri yang sama, dan terdapat juga overhead yang tinggi dalam komunikasi rekan yang berulang. Misalnya, jika Gambar 12.15 mewakili sistem pesan instan, maka node jaringan berkomunikasi dengan server (ditunjukkan oleh garis putus-putus) untuk mengetahui node lain yang tersedia. Dalam sistem komputasi p2p, di mana komputasi intensif prosesor didistribusikan ke sejumlah besar node, wajar jika beberapa node menjadi superpeer.
Jika sistemnya intensif secara komputasi, pemrosesan yang diperlukan dapat dibagi menjadi sejumlah besar penghitungan independen. Dimana sistem ini terutama melibatkan pertukaran informasi antar komputer individu dalam suatu jaringan dan informasi ini tidak perlu disimpan atau dikelola secara terpusat.
Software As A Service
Konsep perangkat lunak sebagai layanan (SaaS) ini melibatkan hosting perangkat lunak dari jarak jauh dan menyediakan akses ke perangkat lunak tersebut melalui Internet. Perangkat lunak ini diinstal di server (atau lebih umum di cloud) dan diakses melalui browser web.
Software As A Service
Perangkat lunak dimiliki dan dioperasikan oleh penyedia perangkat lunak dan bukan oleh organisasi yang menggunakan perangkat lunak tersebut. Pengguna dapat membayar perangkat lunak sesuai pembelanjaan mereka, atau dengan langganan tahunan atau bulanan. Terkadang perangkat lunak ini gratis untuk semua orang, namun pengguna harus setuju untuk menerima iklan yang mendanai layanan perangkat lunak tersebut.
Beberapa perangkat lunak yang diterapkan sebagai layanan, seperti Google Dokumen untuk pengguna web, memberikan pengalaman umum bagi semua pengguna. Multi-tenancy: Bagaimana kami memberikan kesan kepada setiap pengguna perangkat lunak bahwa mereka bekerja dengan salinan sistem mereka sendiri sambil pada saat yang sama menggunakan sumber daya sistem secara efisien. Branding, dimana pengguna dari setiap organisasi mendapatkan antarmuka yang mencerminkan organisasi mereka sendiri.
Aturan bisnis dan alur kerja, di mana setiap organisasi menentukan aturannya sendiri yang mengatur penggunaan layanan dan datanya. Ekstensi basis data, di mana setiap organisasi menentukan bagaimana model data umum layanan dapat diperluas untuk memenuhi kebutuhan spesifiknya. Kontrol akses, di mana pelanggan layanan membuat akun individual untuk staf mereka dan menentukan sumber daya dan fitur yang dapat diakses oleh setiap penggunanya.
Multi-tenancy adalah situasi di mana banyak pengguna berbeda mengakses sistem yang sama dan arsitektur sistem ditentukan untuk memungkinkan pembagian sumber daya sistem secara efisien. Kembangkan aplikasi yang setiap komponennya diimplementasikan sebagai layanan stateless sederhana yang dapat berjalan di server mana pun.
Ringkasan
Ringkasan (Lanj.)
Ringkasan (Lanj)
Sistem server klien dapat memiliki beberapa tingkatan, dengan lapisan sistem berbeda yang didistribusikan ke komputer berbeda. Pola arsitektur untuk sistem terdistribusi meliputi arsitektur master-slave, arsitektur client-server dua tingkat dan multi-tingkat, arsitektur komponen terdistribusi, dan arsitektur peer-to-peer. Sistem komponen terdistribusi memerlukan middleware untuk menangani komunikasi komponen dan memungkinkan objek ditambahkan dan dihapus dari sistem.
Arsitektur peer-to-peer adalah arsitektur terdesentralisasi dimana tidak ada klien dan server terpisah. Perangkat Lunak sebagai Layanan adalah cara menyebarkan aplikasi sebagai sistem server-klien tipis di mana klien adalah browser web.
Studi Kasus
Studi Kasus (Lanj.)
Kerangka Kerja SCRUM
Kerangka Kerja SCRUM (Lanj.)
TERIMA KASIH