11 Arsitektur Sistem Terdistribusi SOFTWARE ENGINEERING REKAYASA PERANGKAT
11 Arsitektur Sistem Terdistribusi SOFTWARE ENGINEERING (REKAYASA PERANGKAT LUNAK) By : Andi Latifa Nabone
Materi yang akan dibahas • Arsitektur multiprosesor • Arsitektur Client-Server • Arsitektur Objek Terdistribusi • CORBA
Sistem Terdistribusi • Hampir semua sistem berbasis-komputer yang besar, saat ini merupakan sistem terdistribusi (sistem tersebar) • Kegiatan memproses informasi disitribusikan kepada sejumlah komputer sebagai pengganti komputer tunggal • Rekayasa Perangkat Lunak Terdistribusi sekarang menjadi isu yang penting
Jenis-Jenis Sistem • Sistem Personal yang tidak terdistribusi dan dirancang untuk berjalan pada personel komputer atau workstation. Contoh : Word, Spreadsheet, grafis dll • Sistem embedded yang berjalan pada satu prosesor atau pada kelompok prosesor yang terintegrasi • Sistem terdistribusi (tersebar) dimana perangkat lunak sistem berjalan pada sekelompok prosesor yang bekerja sama dan terintegrasi secara longgar, dengan dihubungkan oleh jaringan
Karakteristik Sistem terdistribusi • Pemakaian bersama sumber daya • Keterbukaan • Konkurensi • Skalabilitas • Toleransi kesalahan • Transparansi
Arsitektur Sistem Terdistribusi • Arsitektur Client-Server • Sistem dapat dianggap sebagai satu set layanan yg disediakan untuk Client. Server penyedia layanan, server dan client dilakukan berbeda. • Arsitektur Objek Terdistribusi • Tidak ada perbedaan antara server dan client, sistem dapat dianggap sebagai satu objek yang berinteraksi yang lokasinya tidak relevan. Tidak ada perbedaan antara server dan client
Middleware • Perangkat lunak yang dapat menangani bagian-bagian yang beragam agar dapat berkomunikasi dan bertukar data • Istilah middleware mengacu kepada posisi ditengah-tengah dari software ini diantara berbagai komponen sistem terdistribusi yang berbeda • Contoh : • Transaction processing monitors • Data convertors • Communication controllers
Arsitektur Multiprosesor • Merupakan model sistem terdistribusi yang paling sederhana • Sistem terdiri dari sejumlah proses yang dapat (tapi tidak mesti) berjalan pada beberapa prosesor yang terpisah • Model ini umum pada sistem real-time yang besar • Pendistribusian proses ke prosesor dapat ditentukan sebelumnya atau bisa juga dikendalikan oleh dispatcher yang memutuskan proses yang mana dialokasikan ke masing prosesor
Arsitektur Client-Server • Model Aplikasi dimana sekumpulan layanan disediakan oleh Server dan sekumpulan Client yang membutuhkan layanan tersebut • Klien tahu server dan server tidak perlu tahu client nya • Klient dan server berada proses logikal • Tidak harus ada pemetaan 1: 1 antar proses dengan prosesor pada sistem
Arsitektur Lapisan Aplikasi • Lapisan Presentasi • Berhubungan dengan penyajian informasi ke user dan dengan semua interaksi user • Lapisan Pemrosesan Informasi • Berhubungan dengan implementasi logika aplikasi • Lapisan Manajemen Data • Berhubungan dengan semua operasi database
Thin Client dan Fat Client • Model Thin-client • Pada model ini semua pemrosesan aplikasi dan manajemen data dilakukan pada server. Klien bertanggung jawab untuk menjalankan perangkat lunak presentasi • Model Fat-client • Pada model ini, server hanya bertanggung jawab untuk manajemen data. Perangkat lunak pada klien mengimplementasi logika aplikasi dan interaksi dengan user sistem
Model Thin Client • Model ini merupakan model yang paling sederhana untuk digunakan ketika sistem warisan (legacy) sentral dikembangkan menjadi arsitektur Client- Server. • Kekurangan terbesar dari model thin-client adalah bahwa model tersebut menempatkan beban berat pemrosesan pada server dan jaringan
Model Fat Client • Menggunakan kekuatan pemrosesan yang tersedia dan mendistribusikan pemrosesan logika aplikasi dan presentasi kepada klien • Server harus merupakan server transaksi yang menangani semua transaksi database • Lebih rumit dibandingkan model thin client terutama aspek manajemen. Aplikasi diinstal di semua client
Arsitektur Three-Tier • Pada arsitektur three-tier , tiap lapisan arsitektur aplikasi dapat dieksekusi dengan prosessor yang terpisah • Arsitektur ini mempunyai unjuk kerja yang lebih baik dibandingkan pendekatan thin-client dan lebih sederhana mengelolanya dibandingkan pendekatan fat-client • Arsitektur yang dapat dikembangkan- bila demands bertambah , maka tinggal menambah. A more scalable architecture - as demands increase, extra servers can be added
Arsitektur Objek Terdistribusi • Pada model Client-Server sistem terdistribusi, klien dan server berbeda • Klien menerima layanan dari server dan tidak dari klien lainnya • Server dapat bertindak sebagai klien dan menerima layanan dari server lainnya • Klien tidak meminta layanan dari klien • Model ini membatasi fleksibilitas perancang sistem dalam arti perancang harus memutuskan kapan layanan diberikan • Pendekatan yang lebih umum bagi sistem terdistribusi adalah menghilangkan perbedaan antara klien dan server, dan merancang arsitektur sistem sebagai arsitektur objek terdistribusi
Keuntungan Model Arsitektur Sistem Terdistribusi • Sistem ini memungkinkan perancang sistem menunda keputusan mengenai dimana dan bagaimana layanan harus disediakan • Model ini merupakan arsitektur yang sangat terbuka yang meungkinkan sumber day abaru ditambahkan jika perlu • Sistem ini sangat fleksibel dan dapt dikembangkan dengan mudah • Rekonfigurasi sistem secara dinamis akan dimungkinkan dengan objek berimigrasi melintasi jaringan bilamana diperlukan
Penggunaan Arsitektur Objek Terdistribusi • Sebagai model logika yang memungkinkan Anda menstruktur dan mengorganisasikan sistem. Dalam hal ini , yang perlu dipikirkan mengenai bagaimana menyediakan fungsionalitas sistem hanya dalam hitungan layanan dan kombinasi layanan • Sebagai pendekatan yang fleksibel terhadap sistem klien-server. Dalam hal ini , model logika sistem merupakan model clientserver, tetapi baik client maupun server direalisasikan sebagai objek terdistribusi yang berkomunikasi melalui bus perangkat lunak
Sistem data-mining • Data mining adalah contoh dari sistem arsitektur objek terdistribusi • Data mining akan mencari hubungan dalam sejumlah database yang berbeda • Objek integrator masing-masing dapat menangani hubungan khusus dan mengumpulkan informasi dari semua database untuk mencoba menyimpulkan hubungannya • Objek visualiser berinteraksi dengan objek integrator untuk menghasilkan visualisasi atau laporan mengenai hubungan yang telah ditemui
CORBA[Common Object Request Broker Architecture] • CORBA adalah standar internasional untuk Object Request Broker middleware - untuk mengelola komunikasi diantara objek yang didistribusikan • Ada beberapa implementasi dari CORBA yang tersedia • DCOM [ Distributed Component Object Mode] adalah alternatif lain dari CORBA yeng merupakan produk Microsoft • CORBA didefinisikan oleh The Object Management Group [OMG]
Struktur Aplikasi • OMG mengusulkan agar aplikasi terdistribusi terbuat dari sejumlah komponen : • Objek Aplikasi : yang dirancang dan diimplementasikan untuk aplikasi ini • Objek Standar : yang didefinisikan oleh OMG untuk domain khusus. Misalnya untuk keuangan/asuransi, e-comm, kesehatan dll. • Layanan CORBA : fundamental yang menyediakan layanan komputasi terdistribusi dasar seperti direktori, manajemen sekuritas , dll. • Fasilitas CORBA horizontal, seperti user interface, fasilitas manajemen sistem dll.
Standard CORBA • Objek CORBA merupakan enkapsulasi status dengan interface yang terdefinisi dengan baik dan netral dalam hal bahasa yang dideskripsikan dalam IDL [interface definition language] • Model objek untuk objek aplikasi • Object Request Broker (ORB) yang menangani permintaan akan layanan objek • Satu set layanan objek yang merupakan layanan umum dan mungkin diperlukan oleh banyak aplikasi terdistribusi • Satu set komponen umum, yang dibangun diatas layanan-layanan dasar yang mungkin dibutuhkanoleh aplikasi ini.
Object CORBA • Objek CORBA dapat dikomparasi , secara prinsip, dengan objek di dalam C++ dan Java • Kedua mesti terpisah dan dinyatakan dengan IDL • Oleh karenanya diperlukan pemetaan dari IDL ke bahasa pemrograman (C++, Java, etc. ) • Dengan demikian object yang ditulis dengan bahasa yang berbeda dapat berkomunikasi satu dengan lainnya
Layanan CORBA • Layanan Penamaan dan Layanan Pertukaran • Memungkinkan objek mengacu ke dan menemukan objek lain pada jaringan • Layanan Pengumuman • Memungkinkan objek memberitahu objek lain telah terjadi event • Layanan Transaksi • Mendukung transaksi atomic dan rollback (kembali ke asal) jika ada kesalahan
TERIMA KASIH
- Slides: 24