SOFTWARE ENGINEERING
(REKAYASA PERANGKAT LUNAK)
PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO
Memahami kelebihan dan kekurangan utama dari
arsitektur sistem terdistribusi
Memahami berbagai pendekatan terhadap
pengembangan sistem terdistribusi
Memahami perbedaan antara arsitektur client-server
dengan objek terdistribusi
Memahami konsep object request broker dan
prinsip-prinsip yang mendasari standar CORBA
Arsitektur multiprosesor
Arsitektur Client-Server
Arsitektur Objek Terdistribusi
CORBA
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
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
Pemakaian bersama sumber daya
Keterbukaan Konkurensi Skalabilitas Toleransi kesalahan Transparansi
Karakteristik Sistem
terdistribusi
Kompleksitas
Keamanan
Kemampuan untuk dapat dikendalikan
Tidak dapat diramalkan
Kerugian Sistem
Terdistribusi
Design issue Description
Resource
identification The resources in a distributed system are spread across differentcomputers and a naming scheme has to be devised so that users can discover and refer to the resources that they need. An example of such a naming scheme is the URL (Uniform Resource Locator) that is used to identify WWW pages. If a meaningful and universally understood identification scheme is not used then many of these resources will be inaccessible to system users.
Communications The universal availabilit y of the Internet and the efficient
implementation of Internet TCP/IP communication protocols means that, for most distributed systems, these are the most effective way for the computers to communicate. However, where there are specific requirements for performance, reliability etc. alternative approaches to communications may be used.
Quality of service The quality of service offered by a system reflects its performance, availabilit y and reliabilit y. It is affected by a number of factors such as the allocation of processes to processes in the system, the
distribution of resources across the system, the network and the system hardware and the adaptability of the system.
Software
architectures The software architecture describes how the applicationfunctionality is distributed over a number of logi cal components and how these components are distributed across processors. Choosing the right architecture for an application is essential to achieve the
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
Arsitektur Sistem
Terdistribusi
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
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-masing prosesor
Arsitektur
Sistem Kontrol Lalu Lintas Multiprosesor
Traffic lights Light
control process
Traffic light control processor Traffic flow
processor
Operator consoles Traffic flow sensors
and cameras Sensor processor Sensor control process Display process
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 pada proses logikal
Tidak harus ada pemetaan 1:1 antar proses dengan
prosesor pada sistem
Sistem Client - Server
s1 s2 s3 s4 c1 c2 c3 c4 c5 c6 c7 c8 c9 c1 0 c1 1 c1 2 Client process Server process
Komputer Pada Jaringan
Client/Server Network
Network SC1 SC2 CC1 CC2 CC3 CC5 CC6 CC4 Server computer Client computer s1 , s2 s3, s4 c5, c6, c7 c1 c2 c3, c4 c8, c9 c1 0, c1 1 , c1 2
Contoh-contoh dari model client-server, dimana ada
beberapa server dan client. Masing-masing server menyimpan datanya sendiri dan setiap client bisa mengakses/menggunakan layanan pada tiap server. Client server merupakan arsitektur terdistribusi. Bisa digunakan secara efektif pada jaringan dengan
prosesor yang terdistribusi.
Keterangan Komputer Pada
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
Arsitektur Lapisan
Aplikasi
Lapisan Aplikasi
Presentation layer
Application processing layer
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
Thin Client dan Fat
Client
Thin Client dan Fat
Client
Thin-client model Fat-client model Client Client Server Data management Application processing Presentation Server Data management Presentation Application processing
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 pada server dan jaringan
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
Client-Server Untuk SistemATM
Account server Customer account database Tele-processing monitor ATM ATM ATM
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 menambahA more scalable
Arsitektur Three-Tier Untuk Model
Client-Server
Client Server Data management Presentation Server Application processing
Sistem Internet Banking
Database server Customer account database Web server Client Client Client Client Account service provision SQL SQL query HTTP interaction
Kegunaan Arsitektur Client Server Yang
Berbeda
Architecture Applications
Two-tier C/S architecture with thin clients
Legacy system applications where separating application processing and data management is impractical
Computationally-intensive applications such as compilers with little or no data management
Data-intensive applications (browsing and querying) with little or no application processing.
Two-tier C/S
architecture with fat clients
Applications where application processing is provided by COTS (e.g. Microsoft Excel) on the client
Applications where computationally-intensive processing of data (e.g. data visualisation) is required.
Applications with relatively stable end-user functionality used in an environment with well-established system management
Three-tier or
multi-tier C/S architecture Large scale applications with hundreds or thousands of clients Applications where both the data and the application are volatile. Applications where data from multiple sources are integrated
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
Arsitektur Objek
Terdistribusi
Arsitektur Objek
Terdistribusi
Software bus o1 o2 o3 o4 o5 o6
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
Keuntungan Model Arsitektur Sistem
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 client-server, tetapi baik client maupun server direalisasikan sebagai objek terdistribusi yang
Penggunaan Arsitektur Objek
Terdistribusi
Sistem data-mining
Database 1 Database 2 Database 3 Integrator 1 Integrator 2 Visualiser Display Report gen.
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-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 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
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.
Struktur Aplikasi
CORBA
CORBA services Object request broker
Domain
facilities CORBA facilitiesHorizontal Application
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
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 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
Hampir semua sistem besar yang baru saat inni merupakan
sistem terdistribusi di mana perangkat lunak sistem
berjalan pada kelompok jaringan prosesor yang terintegrasi secara longgar (loose)
Sistem terdistribusi dapat mendukung pemakaian bersama
sumber daya, keterbukaan, konkurensi, skalabilitas, toleransi kesalahan, dan transparansi
Sistem client-server merupakan sistem terdistribusi di
mana sistem dimodelkan sebagai satu set layanan yang
Pada sistem client-server, interface user selalu beroperasi
pada klien, dan manajemen data selalu disediakan oleh server yang dipakai bersama
Pada arsitektur objek terdistribusi, tidak ada perbedaan
antara klien dan server. Objek memberikan layanan umum yang bisa dipanggil oleh objek lain . Pendekatan ini dapat dipakai untuk pendekatan Client-Server