Anda di halaman 1dari 127

SISTEM Junaedi Adi Prasetyo

TERDISTRIBUSI
Teknik Rekayasa Perangkat Lunak
2 (CDEF)

Politeknik Negeri Banyuwangi 1


Perkuliahan

01. 02.

Tujuan Perkuliahan
Mahasiswa mampu memahami konsep sistem Terdiri dari 1 SKS teori dan 2 SKS Praktek.
terdistribusi, komunikasi data, dan proses dalam Perkuliahan dilaksanakan di Lab
merancang sistem informasi yang saling terintegrasi. menggunakan program JAVA dan addons
lainnya.

Teknik Rekayasa Perangkat Lunak 2


Praktikum
Enter Sub TITLE Here

1-2 4 6
Internet Addressing Object Serialisasi Transimission
Control Protocol

3 5 7-9
Data Streams User datagram Multithread
Protocol Programming

Teknik Rekayasa Perangkat Lunak 3


Materi

12-13. 14-15.
Remote Method Kriptografi
Invocation

10-11. 16.
JADE Programming Setelah UAS Presentasi Hasil

Teknik Rekayasa Perangkat Lunak 4


Penilaian

01. 02.

Nilai UTS dan UAS Nilai Hasil Praktek


Nilai UTS dan UAS Praktek dibuat laporan
memiliki bobot masing dan langkah langkah
masing 20%. yang mudah dipahami.
60%

Teknik Rekayasa Perangkat Lunak


THANK YOU
Pengenalan Junaedi Adi Prasetyo

Sistem Terdistribusi
Teknik Rekayasa Perangkat Lunak
2 (CDEF)

Politeknik Negeri Banyuwangi 7


Sistem dan Terdistribusi
Sistem adalah komponen komponen yang saling berkaitan,
berhubungan, berketergantungan yang secara keseluruhan bersatu
untuk mencapai tujuan tertentu (satu tujuan yg sama)
Definisi
Sistem Terdistribusi adalah Sekumpulan komputer otonom
yang terhubung ke suatu jaringan, dimana bagi pengguna
sistem terlihat sebagai satu komputer.

Komputer otonom : komputer yang tetap dapat berjalan


meski tidak terhubung ke jaringan.

Dengan adanya sistem terdistribusi, komputer dapat


melakukan koordinasi aktifitas dan berbagi sumber daya
(hardware, software, dan data)
Penerapan
Penerapan sistem terdistribusi pada rumah sakit.
Apa yang kita lakukan dengan data

Data akan terus tumbuh dari internet: fb, insta, youtub dll
• Simpan
• Akses
• Share
• Proses
• Encrypt
• dll
Menyimpan dan memroses data scalable
• Suatu sistem dapat discalakan:
1. pertama, secara vertical(up)
dapat dicapai dengan upgrade hardware
2. secara horizontal (out)
dapat diperoleh dengan penambahan beberapa mesin
Alasan Sister Dibutuhkan
Performance
Sekumpulan prosesor dapat menyediakan kinerja yang lebih tinggi daripada
komputer yang terpusat

Distribution
Banyak aplikasi yang terlibat, sehingga lebih baik jika dipisah dalam mesin
yang berbeda (contoh: aplikasi perbankan, komersial)

Reliability
Jika terjadi kerusakan pada salah satu mesin, tidak akan mempengaruhi kinerja
sistem secara keseluruhan

2020 Sistem Terdistribusi


Alasan Sister Dibutuhkan
Incremental Growth
Mesin baru dapat ditambahkan jika kebutuhan proses meningkat

Sharing Data/Resource
Resource adalah:
• Segala hal yang dapat digunakan bersama dalam jaringan komputer.
• Meliputi hardware (e.g. disk, printer, scanner), juga software (berkas, basis
data, obyek data).

Communication
Menyediakan fasilitas komunikasi antar manusia
Contoh-contoh
Internet
Intranet
Sistem Terdistribusi Multimedia
Mobile dan Sistem Komputasi Ubiquitous
World Wide Web
Sistem Telepon
Network File System
Contoh-contoh
1. Internet, merupakan suatu bentuk jaringan global yang menghubungkan
komputer denga satu sama lainnya, yang dapat berkomunikasi dengan media
IP sebagai protokol.
Contoh-contoh
2. Intranet
● Jaringan yang teradministrasi secara lokal
● Terhubung ke internet (melalui firewall)
● Menyediakan layanan internal dan eksternal
Contoh-contoh
3. Sistem terdistribusi multimedia
Biasanya digunakan pada infrastruktur internet

Karakteristik
Sumber data yang heterogen dan memerlukan
sinkronisasi secara real time
Video, audio, text Multicast

Contoh:
- Teleteaching (RuangGuru-based, google classroom, etc.)
- Video-conferencing (zoom, google meet, etc.)
Contoh-contoh
4. Mobile dan sistem komputasi ubiquitous
Sistem telepon Cellular (e.g., GSM)
Resources dishare : frekuensi radio, waktu transmisi dalam satu frekuensi,
bergerak

Komputer laptop, ubiquitous computing

Handheld devices, PDA, etc

2020 Sistem Terdistribusi © Agustono


Contoh-contoh
4. Mobile dan sistem komputasi ubiquitous
Contoh-contoh
5. World wide web
Arsitektur client/server tebuka yang diterapkan di atas infrastruktur internet

Shared resources (melalui URL)


Contoh-contoh
6. Sistem telepon seperti ISDN, PSTN

7. Network File System (NFS) seperti Arsitektur untuk mengakses sistem file
melalui jaringan.
Karakteristik
1. No global clock
- Terdapat batasan pada ketepatan proses sinkronisasi clock pada sistem terdistribusi,
oleh karena asynchronous message passing
- Pada sistem terdistribusi, tidak ada satu proses tunggal yang mengetahui global
state sistem saat ini (disebabkan oleh concurrency dan message passing)
2. Independent failure
- Kemungkinan adanya kegagalan proses tunggal yang tidak diketahui
- Proses tunggal mungkin tidak peduli pada kegagalan sistem keseluruhan
3. Concurrency of components
- E.g. Beberapa pemakai browser mengakses suatu halaman web secara bersamaan.
Model Sistem Terdistribusi
Dalam pelaksanaannya sistem terdistribusi memiliki berbagai bentuk (model),
yaitu :
1. Sistem client - server
2. Sistem point to point
3. Sistem terkluster
Permasalahan Sistem Terdistribusi
Masalah dengan sistem terdistribusi yang dapat dimunculkan antara lain
berkaitan dengan :
• Software - bagaimana merancang dan mengatur software dalam Distribusi
Sistem
• Ketergantungan pada infrastruktur jaringan
• Kemudahan akses ke data yang di share, memunculkan masalah keamanan

Dalam setiap penggunaan suatu sistem, banyak sekali ditemui permasalahan -


permasalahan yang muncul, begitu juga dengan sistem terdistribusi. Selain
permasalahan - permasalahan yang akan dihadapi terdapat tantangan -
tantangan dalam sistem terdistribusi.
Tantangan (Challenge)
Tantangan yang ada dalam Sistem Terdistribusi yaitu :
1. Keheterogenan komponen (heterogenity)
2. Keterbukaan (openness)
3. Keamanan (security)
4. Scalability
5. Penanganan kegagalan (failure handling)
6. Concurrency of components
7. Transparansi
INTERNET ADDRESSING
Salah satu konsep yang paling mendasar dalam
pemrograman jaringan adalah pengalamatan
jaringan (network address). Tanpa alamat
jaringan, tidak akan ada cara untuk
mengidentifikasi pengirim paket data atau
dimana paket harus dikirim. Modul ini
membahas representasi IP address dan domain
name pada Java.
Memperoleh alamat IP localhost

Berikut ini contoh program untuk mendapatkan alamat IP dari


mesin lokal (localhost)
Mendapatkan alamat dari host/ip dan cek
koneksi
Contoh program ke-2 ini menunjukkan penggunaan InetAddress untuk
mendapatkan alamat lain
baik dalam bentuk text hostname maupun dotted decimal. Ditunjukkan
pula cara melakukan check
koneksi dengan menggunakan method isReachable(). Method
isReachable()memberikan
nilai “true” jika host tertentu dapat dicapai dengan batas timeout tertentu
dalam satuan millisecond
Komunikasi Data
Junaedi Adi Prasetyo

Teknik Rekayasa Perangkat Lunak


2 (CDEF)

Politeknik Negeri Banyuwangi 32


Sistem Terdistribusi dan Komunikasi Data
Data berarti informasi yang disajikan oleh isyarat digtal.
Komunikasi data merupakan bagian vital dari suatu
masyarakat informasi karena sistem terdistribusi ini
membutuhkan infrastruktur yang memungkinkan
komputer-komputer dapat berkomunikasi satu sama lain.
Komunikasi Data
• Komunikasi Data:
merupakan bagian dari telekomunikasi yang secara khusus
berkenaan dengan transmisi atau pemindhan data dan
informasi diantara komputer komputer dan piranti-piranti yang
lain dalam bentuk digital yang dikirimkan melalui media
komunikasi data
Komponen Komunikasi Data
Komponen dari komunikasi data diantaranya adalah :
1. Pengirim adalah piranti yang mengirimkan data
2. Penerima adalah piranti yang menerima data
3. Data adalah informasi yang dipindahkan
4. Media pengiriman adalah media atau saluran yang
digunakan untuk mengirimkan data
5. Protokol adalah aturan-aturan yang berfungsi untuk
menyelaraskan hubungan
Komponen Komunikasi Data
Ilustrasi
Klasifikasi dari jaringan
1. Berdasarkan pada ukuran
(BAN), (PAN), (LAN), (WAN)
2. Berdasarkan pada teknologi
• ethernet network
• Wireless network
• Cellular Network
Klasifikasi dari Jaringan
• Body area network (BAN)
a. Perangkat yang ada membentuk unit komputasi wearable
b. beberapa Body sensor unit (BSU) berkomunikasi dengan Body
Central Unit (BCU)
Klasifikasi dari Jaringan
• Personal Area Network
Pan menghubungkan berbagai perangkat digital yang dipakai
Misalnya Bluetooth
Klasifikasi dari Jaringan
• LAN
beberapa komputer yang dikoneksikan oleh suatu media
komunikasi (kabel twisted copper, optical fiber)
Klasifikasi dari Jaringan
• WAN
Wireless area network biasanya mencakup area yang lebih luas
(kota,propinsi negara)
WAN Terbesar =internet
Jenis jaringan: berdasarkan teknologi

• Jaringan ethernet
Sebagian besar digunakan dalam internet berkabel
• LAN Nirkabel (wireless)
• Terutama dirancang untuk menyediakan akses nirkable ke internet
• Rentang rendah (100m) bandwith tinggi
• Jaringan selular (2G/3G/4G)
Protokol
Protokol dapat diartikan sebagai sebuah aturan yang
mendefinisikan beberapa fungsi yang ada dalam sebuah
jaringan komputer, misalnya mengirim pesan, data,
informasi, dan fungsi lain yang harus dipenuhi oleh sisi
pengirim dan sisi penerima agar komunikasi dapat
berjalan/berlangsung dengan benar.
Penerapan Protokol
Penerapan protokol dapat diterapkan pada perangkat
keras (hardware), perangkat lunak (software), atau
kombinasi keduanya. Pada tingkatan yang terendah,
protokol mendefinisikan koneksi perangkat keras
Komponen Protokol
Berikut ini merupakan komponen protokol :
1. Aturan atau prosedur, yang berfungsi mengatur
pembentukan/pemutusan hubungan.
2. Format atau bentuk, yang berfungsi mengatur proses
transfer data representasi pesan.
3. Kosakata (vocabulary), yang memberi arti pada jenis
pesan dan makna masing-masing pesan.
Fungsi Protokol
Secara umum, fungsi dari protokol adalah untuk
menghubungkan sisi pengirim dan sisi penerima dalam
berkomunikasi serta bertukar informasi agar dapat
berjalan dengan baik dan benar.
Sedangkan fungsi lebih lanjutnya terdapat 6 fungsi,
diantaranya adalah :
1. Fragmentasi dan Reassembly
2. Encapsulation
3. Connection control
4. Flow Control
5. Error Control
6. Transmission Service
Fungsi Protokol
1. Fragmentasi dan Reassembly
Fungsi dari fragmentasi dan reassembly adalah membagi
informasi yang dikirim menjadi beberapa paket data pada
saat sisi pengirim mengirimkan informasi, dan setelah
diterima maka sisi penerima akan menggabungkan lagi
menjadi paket informasi yang lengkap.

2. Encapsulation
Fungsi dari encapsulation adalah melengkapi informasi
yang dikirimkan dengan address, kode-kode koneksi, dll.
Fungsi Protokol
3. Connection control
Fungsi dari connection control adalah membangun
hubungan (connection) komunikasi dari sisi pengirim dan
penerima, dimana dalam hal ini juga mengatur kegiatan
mengakhiri hubungan pengiriman data.

4. Flow Control
Berfungsi sebagai pengatur perjalanan data dari sisi
pengirim ke sisi penerima.
Fungsi Protokol
5. Error Control
Dalam pengiriman data, tak lepas dari kesalahan. Baik itu
dalam proses pengiriman atau penerimaan data. Fungsi
dari error control adalah mengontrol terjadinya kesalahan
yang terjadi pada waktu data dikirimkan.

6. Transmission Service
Fungsi dari transmission service adalah memberi
pelayanan komunikasi data khususnya yang berkaitan
dengan prioritas dan keamanan serta perlindungan data.
Susunan Protokol
Protokol jaringan disusun dalam bentuk lapisan-lapisan
(dalam hal ini biasa disebut layer). Hal ini dilakukan agar
dalam fungsi jaringan yang dibuat nantinya tidak menjadi
saling tumpang tindih dalam pengaturan.
Susunan dari layer menunjukkan tahapan dalam
melakukan komunikasi. Antara setiap layer yang
berdekatan terdapat sebuah interface (antarmuka).
Antarmuka menentukan layanan layer yang di bawah
kepada layer yang di atasnya.
Standarisasi Protokol
Dahulu, komunikasi antar komputer dari vendor yang
berbeda adalah sangat sulit dilakukan, karena mereka
mengunakan protokol dan format data yang berbeda-
beda. Sehingga International Standards Organization (ISO)
membuat suatu arsitektur komunikasi yang dikenal
sebagai Open System Interconnection (OSI), model yang
mendefinisikan standar untuk menghubungkan komputer-
komputer dari vendor-vendor yang berbeda. Model-OSI
tersebut terbagi atas 7 layer.
Tujuan OSI
Tujuan dibuatnya model referensi OSI ini adalah agar
menjadi rujukan untuk para vendor dan developer
sehingga produk atau software yang mereka buat dapat
bersifat interporate, yang berarti dapat bekerja sama
dengan sistem atau produk lainnya tanpa harus
melakukan upaya khusus dari si pengguna.
Model Layer OSI
Berikut tujuh (7) Layer pada Model OSI
7 Model Layer OSI
1. Physical Layer
Physical layer merupakan layer pertama atau yang
terendah dari model OSI. Layer ini bertanggung jawab
untuk mentransmisikan bit data digital dari physical layer
perangkat pengirim (sumber) menuju ke physical layer
perangkat penerima (tujuan) melalui media komunikasi
jaringan.
Pada physical layer data ditransmisikan menggunakan
jenis sinyal yang didukung oleh media fisik, seperti
tegangan listrik, kabel, frekuensi radio atau infrared
maupun cahaya biasa.
7 Model Layer OSI
2. Data Link Layer
Data link layer bertanggung jawab untuk memeriksa
kesalahan yang mungkin terjadi pada saat proses transmisi
data dan juga membungkus bit kedalam bentuk data
frame. Data link layer juga mengelola skema
pengalamatan fisik seperti alamat MAC pada suatu
jaringan. Data link layer merupakan salah satu layer OSI
yang cukup kompleks, oleh karena itu layer ini kemudian
dibagi lagi menjadi dua sublayer, yaitu layer Media Access
Control (MAC) dan Layer Logical Link Control (LLC).
7 Model Layer OSI
2. Data Link Layer
Layer Media Access Control (MAC) bertanggung jawab
untuk mengendalikan bagaimana sebuah perangkat pada
suatu jaringan memperoleh akses ke medium dan izin
untuk melakukan transmisi data. Layer Logical Link Control
(LLC) bertanggung jawab untuk mengidentifikasi dan
membungkus protokol network layer dan mengontrol
pemeriksaan kesalahan dan juga melakukan sinkronisasi
pada frame.
7 Model Layer OSI
3. Network Layer
Network layer bertanggung jawab untuk menetapkan jalur
yang akan digunakan untuk melakukan transfer data antar
perangkat di dalam suatu jaringan. Router jaringan
beroperasi pada layer ini, yang mana juga menjadi fungsi
utama pada layer network dalam hal melakukan routing.
Routing memungkinkan paket dipindahkan antar
komputer yang terhubung satu sama lain. Untuk
mendukung proses routing ini, network layer menyimpan
alamat logis seperti alamat IP untuk setiap perangkat
pada jaringan. Layer Network juga mengelola pemetaan
antara alamat logikal dan alamat fisik. Dalam jaringan IP,
pemetaan ini dilakukan melalui Address Resolution
Protocol
2020(ARP).
7 Model Layer OSI
4. Transport Layer
Transport layer bertanggung jawab untuk mengirimkan
pesan antara dua atau lebih host didalam jaringan.
Transport layer juga menangani pemecahan dan
penggabungan pesan dan juga mengontrol kehandalan
jalur koneksi yang diberikan. Protokol TCP merupakan
contoh yang paling sering digunakan pada transport layer.
7 Model Layer OSI
5. Session Layer
Session layer bertanggung jawab untuk mengendalikan
sesi koneksi dialog seperti menetapkan, mengelola dan
memutuskan koneksi antar komputer. Untuk dapat
membentuk sebuah sesi komunikasi, session layer
menggunakan sirkuit virtual yang dibuat oleh transport
layer.
7 Model Layer OSI
6. Presentation Layer
Presentation layer bertanggung jawab untuk
mendefinisikan sintaks yang digunakan host jaringan
untuk berkomunikasi. Presentation layer juga melakukan
proses enkripsi/ dekripsi informasi atau data sehingga
mampu digunakan pada lapisan aplikasi.
7 Model Layer OSI
7. Application Layer
Application layer merupakan lapisan paling atas dari
model OSI dan bertanggung jawab untuk menyediakan
sebuah interface antara protokol jaringan dengan aplikasi
yang ada pada komputer. Application layer menyediakan
layanan yang dibutuhkan oleh aplikasi, seperti
menyediakan sebuah interface untuk Simple Mail Transfer
Protocol (SMTP), telnet dan File Transfer Protocol (FTP).
Pada bagian sinilah dimana aplikasi saling terkait dengan
jaringan.
Model Layer OSI
Berikut ilustrasi cara kerja OSI Layer
Cara Kerja Layer OSI
Proses berjalannya data dari suatu host ke host lain pada
sebuah jaringan terbilang cukup panjang, semua data
tersebut harus melalui setiap layer dari OSI untuk dapat
sampai ke host tujuan. Contoh misalnya ketika anda akan
mengirimkan sebuah email ke komputer lain pada sebuah
jaringan komputer.
1) Proses yang terjadi pertama adalah pada application layer,
yaitu menyediakan program aplikasi email yang akan
digunakan untuk mengirim data ke komputer lain melalui
jaringan. Pada presentation layer email tersebut kemudian
dikonversi menjadi sebuah format jaringan. Kemudian pada
session layer akan dibentuk sebuah sesi perjalanan data
tersebut dari mulai dibentuk hingga selesainya proses
pengiriman.
Cara Kerja Layer OSI
Proses berjalannya data dari suatu host ke host lain pada
sebuah jaringan terbilang cukup panjang, semua data
tersebut harus melalui setiap layer dari OSI untuk dapat
sampai ke host tujuan. Contoh misalnya ketika anda akan
mengirimkan sebuah email ke komputer lain pada sebuah
jaringan komputer.
2) Pada transport layer data tersebut dipecah menjadi bagian-
bagian kecil lalu kemudian akan dikumpulkan kembali pada
transport layer si penerima. Pada network layer akan dibuatkan
sebuah alamat dan ditentukan jalan yang akan dilalui oleh data
tersebut untuk dapat sampai ke tujuan. Pada data link layer
data tersebut dibentuk menjadi sebuah frame dan alamat fisik
dari perangkat pengirim dan penerima akan di tetapkan.
Cara Kerja Layer OSI
Proses berjalannya data dari suatu host ke host lain pada
sebuah jaringan terbilang cukup panjang, semua data
tersebut harus melalui setiap layer dari OSI untuk dapat
sampai ke host tujuan. Contoh misalnya ketika anda akan
mengirimkan sebuah email ke komputer lain pada sebuah
jaringan komputer.
3) Kemudian pada layer terakhir physical layer mengirimkan
data tersebut melalui sebuah medium jaringan, menuju ke
lapisan transport si penerima. Lalu kemudian alur yang sama
terjadi pada komputer tujuan namun dimulai dari layer paling
bawah (physical layer) hingga ke layer paling atas (application
layer).
Client Server
Junaedi Adi Prasetyo

Teknik Rekayasa Perangkat Lunak


2 (CDEF)

Politeknik Negeri Banyuwangi 66


Client Server
Menurut Gallaugher & Ramanathan (1996) : client/server
adalah client mengirim permintaan ke server, server
menterjemahkan pesan, kemudian berusaha memenuhi
permintaan.

Menurut Blaha & Premerlani (1998) : client/server adalah


suatu arsitektur dimana sumber daya server menyediakan
komputasi untuk banyak komponen client. Client dapat
mengakses satu server atau multiple server. Client dan
server bisa berjalan pada mesin yg sama atau berbeda,
ditulis dalam berbagai bahasa dan menggunakan sistem
operasi yang berbeda.
Client Server
Secara umum Client/Server adalah arsitektur jaringan
aplikasi yang memisahkan klien dari server (umumnya GUI).
Setiap satuan perangkat lunak klien berhubungan dengan
perangkat lunak server.
Client/server adalah arsitektur berskala dimana setiap
komputer atau proses pada jaringan berperan sebagai klien
atau server.
Piranti lunak server pada umumnya walaupun tidak selalu
akan menjalankan komputer dengan kekuatan penuh yang
secara khusus dan ekslusif menjalankan aplikasi bisnis.
Sedangkan Piranti lunak Client pada umumnya berjalan
pada PC/workstation biasa.
Client Server
Client akan mendapatkan seluruh informasinya dan
mengirimkannya kepada perangkat lunak server untuk
sebuah keperluan, sebagai contoh konfigurasi file, kuota
penyimpanan, program aplikasi bisnis atau untuk
membebaskan intensifitas pekerjaan komputasi dan
menkondisikan komputer Client bebas dan siap menjalan
pekerjaan lainnya.

Client yang paling populer dan digunakan secara luas saat


ini adalah web browser dimana berkomunikasi dengan web
server melalui internet untuk mendapatkan dan
menampilkan isi halaman web.
Client Server
Bentuk lain dari arsitektur client/server dikenal dengan
istilah 'thin client', dimana terdapat sejumlah Client yang
sedikit. Thin client menggunakan sedikit sumber dari PC
Host yang ada. Tugas dari thin client pada umumnya hanya
menampilkan secara grafik tentang informasi umum dari
perangkat lunak server. Hal ini memungkinkan perusahaan
untuk lebih mudah mengelola bisnis logicnya untuk semua
aplikasi-aplikasi pada pusat lokasi.
Anatomi Server
Peranan utama suatu program server adalah melayani
client yang berjumlah banyak yang memiliki tujuan untuk
menggunakan secara bersama sumber daya yang dimiliki
oleh server tersebut.
Karakteristik Server
Berikut ini adalah karasteristik suatu yang biasanya dimiliki
oleh suatu program server :
1. Menanti permintaan client
2. Melaksanakan banyak permintaan pelayanan pada saat
yang bersamaan
3. Mendahulukan client yang memiliki prioritas lebih tinggi
(VIP)
4. Memulai dan melaksanakan aktifitas pekerjaan di
background
5. Tetap menjaga agar sistem tetap selalu bekerja
6. Bertambah besar
Karakteristik Server
Menanti permintaan client.
Program server menghabiskan sebagian besar waktu
kerjanya secara pasif menanti permintaan client. Biasanya
permintaan ini datang dalam bentuk message melalui sesi
komunikasi. Beberapa server menggunakan suatu sesi
khusus untuk setiap client. Server yang lainnya
menggunakan session yang digunakan secara dinamis. Ada
juga yang menggunakan gabungan kedua teknik ini
(dedicated dan dinamis). Untuk dapat bekerja dengan baik,
server harus tetap dapat bekerja ketika terjadi permintaan
yang banyak (rush hour traffic).
Karakteristik Server
Melaksanakan banyak permintaan pelayanan pada saat
yang bersamaan.
Server harus sesegera mungkin melaksanakan pelayanan
yang diminta oleh client. Jelas ini berarti, bahwa client tak
boleh bergantung pada proses server yang hanya memiliki
thread tunggal. Server harus dapat secara konkuren
menyediakan pelayanan dengan tetap menjaga integritas
sumber dayanya.
Karakteristik Server
Mendahulukan client yang memiliki prioritas lebih
tinggi (VIP).
Server harus menyediakan beberapa tingkatan prioritas
untuk clientnya. Misal untuk suatu pekerjaan batch
dilakukan pada tingkatan prioritas yang rendah, sedangkan
untuk pekerjaan yang berkaitan dengan On Line
Transaction Processing (OLTP) dilakukan dengan prioritas
tinggi.
Karakteristik Server
Memulai dan melaksanakan aktifitas pekerjaan di
background.
Server harus dapat menjalankan program di background,
misal melakukan download record dari database utama
selama waktu tidak sibuk. Inisiatif ini harus dapat dilakukan
secara otomatis oleh server.
Karakteristik Server
Tetap menjaga agar sistem tetap selalu bekerja.
Program server biasanya tergolong mission-critical
application. Akan terjadi kerugian bila server tak bekerja
melayani client. Dengan demikian program server dan
environmentnya harus dapat bekerja secara robust (tahan
terhadap gangguan).
Karakteristik Server
Bertambah besar.
Biasanya program server membutuhkan memori dan
prosesor yang besar. Environment dari server haruslah
dapat di upgrade dan memiliki skalabilitas yang baik.
Model Client Server
Ada beberapa model client/server yang penting untuk
diketahui.
1. Arsitektur Mainframe
2. Arsitektur Filesharing
3. Arsitektur Client Server
4. Model Two Tier
5. Model Three Tier
Model Client Server
Arsitektur Mainframe

Pada arsitektur ini, terdapat sebuah komputer pusat (host)


yang memiliki sumber daya yang sangat besar, baik
memori, processor maupun media penyimpanan. Melalui
komputer terminal, pengguna mengakses sumber daya
tersebut. Komputer terminal hanya memiliki
monitor/keyboard dan tidak memiliki CPU. Semua sumber
daya yang diperlukan terminal dilayani oleh komputer host.
Model ini berkembang pada akhir tahun 1980-an.
Model Client Server
Arsitektur File Sharing

Pada arsitektur ini komputer server menyediakan file-file


yang tersimpan di media penyimpanan server yang dapat
diakses oleh pengguna. Arsitektur file sharing memiliki
keterbatasan, terutama jika jumlah pengakses semakin
banyak serta ukuran file yang di shaing sangat besar. Hal ini
dapat mengakibatkan transfer data menjadi lambat. Model
ini populer pada tahun 1990-an.
Model Client Server
Arsitektur 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
tersebut yaitu :
1. User Interface. Adalah antar muka program aplikasi yang
berhadapan dan digunakan langsung oleh user.
2. Manajemen Proses.
3. Database.
Model Client Server
Arsitektur Two Tier
Model Client Server
Arsitektur Two Tier

Advantages :
• Lebih mudah dikelola dan lebih mudah dimodifikasi
• Komunikasi lebih cepat

Disadvantages
• Dalam arsitektur two tier, performa server akan menurun
seiring dengan meningkatnya jumlah pengguna.
• Pembiayaan kurang efektif
Model Client Server
Arsitektur 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 yang menjembatani query user dan
database, sehingga program aplikasi tidak bisa mengquery
langsung ke database server, tetapi harus memanggil
prosedur-prosedur yang telah dibuat dan disimpan pada
middle-tier. Dengan adanya server middle-tier ini, beban
database server berkurang. Jika query semakin banyak
dan/atau jumlah pengguna bertambah, maka server-server
ini dapat ditambah, tanpa merubah struktur yang sudah
ada.
Model Client Server
Arsitektur Three Tier

.
Model Client Server
Arsitektur Three Tier

Advantages :
1. High Performance
2. Scalability
3. Performance
4. High Degree of flexibility in deployment and
configuration
5. Better Re-Use
6. Improve Data Integrity
7. Improved Security
8. Easy to Maintain and Modification
9. Aplication Performance is Good
Model Client Server
Arsitektur Three Tier

Disadvantages
1. Increase Complexity
2. Increase Effort
Agent
Junaedi Adi Prasetyo

Teknik Rekayasa Perangkat Lunak


2 (CDEF)

Politeknik Negeri Banyuwangi 89


Software Agent
Software Agent adalah
Entitas perangkat lunak yang didedikasikan untuk tujuan
tertentu yang memungkinkan user untuk menyelesaikan
tugasnya secara mandiri.
Karakteristik Agent
Autonomy: Agent dapat melakukan tugas secara mandiri
dan tidak dipengaruhi secara langsung oleh user, agent lain
ataupun oleh lingkungan (environment). Untuk mencapai
tujuan dalam melakukan tugasnya secara mandiri, agent
harus memiliki kemampuan kontrol terhadap setiap aksi
yang mereka perbuat, baik aksi keluar maupun kedalam
[Woolridge et. al., 1995]. Dan satu hal yang penting yaitu
mendukung autonomy dan masalah intelegensi
(intelligence) dari agent.
Karakteristik Agent
Intelligence, Reasoning, dan Learning: Setiap agent harus
mempunyai standar minimum untuk bisa disebut agent,
yaitu intelegensi (intelligence). Dalam konsep intelligence,
ada tiga komponen yang harus dimiliki: internal knowledge
base, kemampuan reasoning berdasar pada knowledge
base yang dimiliki, dan kemampuan learning untuk
beradaptasi dalam perubahan lingkungan.
Karakteristik Agent
Mobility dan Stationary: Khusus untuk mobile agent, dia
harus memiliki kemampuan yang merupakan karakteristik
tertinggi yang dia miliki yaitu mobilitas. Berbeda dengan
stationary agent. Tetapi keduanya tetap harus memiliki
kemampuan untuk mengirim pesan dan berkomunikasi
dengan agent lain.
Karakteristik Agent
Delegation: Sesuai dengan namanya dan seperti yang
sudah kita bahas pada bagian definisi, agent bergerak
dalam kerangka menjalankan tugas yang diperintahkan
oleh user. Fenomena pendelegasian (delegation) ini adalah
karakteristik utama suatu program disebut agent.
Karakteristik Agent
Reactivity: Karakteristik agent yang lain adalah kemampuan
untuk bisa cepat beradaptasi dengan adanya perubahan
informasi yang ada dalam suatu lingkungan (enviornment).
Lingkungan itu bisa mencakup: agent lain, user, informasi
dari luar, dsb [Brenner et. al., 1998].
Karakteristik Agent
Proactivity dan Goal-Oriented: Sifat proactivity boleh
dibilang adalah kelanjutan dari sifat reactivity. Agent tidak
hanya dituntut bisa beradaptasi terhadap perubahan
lingkungan, tetapi juga harus mengambil inisiatif langkah
penyelesaian apa yang harus diambil [Brenner et. al., 1998].
Untuk itu agent harus didesain memiliki tujuan (goal) yang
jelas, dan selalu berorientasi kepada tujuan yang
diembannya (goal-oriented).
Karakteristik Agent
Communication and Coordination Capability: Agent harus
memiliki kemampuan berkomunikasi dengan user dan juga
agent lain. Masalah komunikasi dengan user adalah masuk
ke masalah user interface dan perangkatnya, sedangkan
masalah komunikasi, koordinasi, dan kolaborasi dengan
agent lain adalah masalah sentral penelitian Multi Agent
System (MAS).
Klasifikasi Agent Software
Klasifikasi menurut karakteristik : (7)
a. Collaborative Agent: Agent yang memiliki kemampuan
kolaborasi dan koordinasi antar agent dalam kerangka
Multi Agent System (MAS).

b. Interface Agent: Agent yang memiliki kemampuan untuk


berkolaborasi dengan user, melakukan fungsi monitoring
dan learning untuk memenuhi kebutuhan user.

c. Mobile Agent: Agent yang memiliki kemampuan untuk


bergerak dari suatu melakukan tempat ke tempat lain, dan
secara mandiri melakukan tugas di tempat barunya
tersebut, dalam lingkungan jaringan komputer.
Klasifikasi Agent Software
d. Information dan Internet Agent: Agent yang memiliki
kemampuan untuk menjelajah internet untuk melakukan
pencarian, pemfilteran, dan penyajian informasi untuk user,
secara mandiri. Atau dengan kata lain, memanage informasi
yang ada di dalam jaringan Internet.

e. Reactive Agent: Agent yang memiliki kemampuan untuk


bisa cepat beradaptasi dengan lingkungan baru dimana dia
berada.
Klasifikasi Agent Software
f. Hybrid Agent: Kita sudah mempunyai lima klasifikasi
agent. Kemudian agent yang memiliki karakteristik yang
merupakan gabungan dari karakteristik yang sudah
disebutkan sebelumnya adalah masuk ke dalam hybrid
agent.

g. Heterogeneous Agent System: Dalam lingkungan Multi


Agent System (MAS), apabila terdapat dua atau lebih hybrid
agent yang memiliki perbedaan kemampuan dan
karakteristik, maka sistem MAS tersebut kita sebut dengan
heterogeneous agent system.
Klasifikasi Agent Software
Klasifikasi menurut lingkungan dijalankan : (2)

a. Desktop Agent: Agent yang hidup dan bertugas dalam


lingkungan Personal Computer (PC),dan berjalan diatas
suatu Operating System (OS). Termasuk dalam klasifikasi ini
adalah:
• Operating System Agent
• Application Agent
• Application Suite Agent
Klasifikasi Agent Software
Klasifikasi menurut lingkungan dijalankan : (2)

b. Internet Agent: Agent yang hidup dan bertugas dalam


lingkungan jaringan Internet, melakukan tugas memanage
informasi yang ada di Internet. Termasuk dalam klasifikasi
ini adalah:
• Web Search Agent
• Web Server Agent
• Information Filtering Agent
• Information Retrieval Agent
• Notification Agent
• Service Agent
• Mobile Agent
Karakteristik Bahasa Pemrograman
Agent
1. Object-Orientedness:
Karena agent adalah berhubungan dengan obyek, bahkan
beberapa peneliti menganggap agent adalah obyek yang
aktif, maka juga agent harus diimplementasikan kedalam
pemrorgaman yang berorientasi obyek (object-oriented
programming language).

2. Platform Independence:
Seperti sudah dibahas pada bagian sebelumnya, bahwa
agent hidup dan berjalan di berbagai lingkungan. Sehingga
idealnya bahasa pemrograman yang dipakai untuk
implementasi adalah yang terlepas dari platform, atau
dengan kata lain program tersebut harus bisa dijalankan di
platform apapun (platform independence).
Karakteristik Bahasa Pemrograman
Agent
3. Communication Capability:
Pada saat berinteraksi dengan agent lain dalam suatu
lingkungan jaringan (network environment), diperlukan
kemampuan untuk melakukan komunikasi secara fisik.
Sehingga diperlukan bahasa pemrograman yang dapat
mensupport pemrograman yang berbasis network dan
komunikasi.
Karakteristik Bahasa Pemrograman
Agent
4. Security:
Faktor keamanan (security) adalah factor yang sangat
penting dalam memilih bahasa pemrorgaman untuk
implementasi software agent. Terutama untuk mobil agent,
diperlukan bahasa pemrograman yang mensupport level-
level keamanan yang bisa membuat agent bergerak
dengan aman.

5. Code Manipulation:
Beberapa aplikasi software agent memerlukan manipulasi
kode program secara runtime, sehingga diperlikan bahasa
pemrograman untuk software agent yang dapat menangani
masalah runtime tersebut.
Proses/Thread
Junaedi Adi Prasetyo

Teknik Rekayasa Perangkat Lunak


2 (CDEF)

Politeknik Negeri Banyuwangi 106


Proses
Proses adalah konsep pokok dari sistem operasi. Berbagai
macam definisi mengenai proses telah dicetuskan. Secara
sederhana, proses adalah sebuah program yang dieksekusi.
Proses merupakan unit kerja terkecil yang secara individu
memiliki sumber daya-sumber daya dan dijadwalkan sistem
operasi. Sistem operasi mengelola semua proses di sistem
dan mengalokasikan sumber daya ke proses sesuai
kebutuhan.
Proses
Secara informal; proses adalah program dalam eksekusi.
Suatu proses adalah lebih dari kode program, dimana
kadang kala dikenal sebagai bagian tulisan. Proses juga
termasuk aktivitas yang sedang terjadi, sebagaimana
digambarkan oleh nilai pada program counter dan isi dari
daftar prosesor/ processor's register. Suatu proses
umumnya juga termasuk process stack, yang berisikan data
temporer (seperti parameter metoda, address yang
kembali, dan variabel lokal) dan sebuah data section, yang
berisikan variabel global.
Status Proses
Proses yang dieksekusi mempunyai lima status yang terdiri
dari:
a) new: Pembentukan suatu proses
b) running: Instruksi-instruksi yang sedang dieksekusi
c) waiting: Proses menunggu untuk beberapa event yang
terjadi
d) ready: Proses menunggu untuk dialirkan ke pemroses
(processor)
e) terminated: Proses telah selesai dieksekusi
Thread
Proses merupakan sebuah program yang
mengeksekusi thread tunggal. Kendali
thread tunggal ini hanya memungkinkan
proses untuk menjalankan satu tugas pada
satu waktu. Banyak sistem operasi modern
telah memiliki konsep yang dikembangkan
agar memungkinkan sebuah proses untuk
mengeksekusi multi-threads. Misalnya user
melakukan pekerjaan secara bersamaan
yaitu mengetik dan menjalankan
pemeriksaan ejaan didalam proses yang
sama.
Thread
Thread merupakan unit dasar dari penggunaan CPU, yang
terdiri dari Thread ID, program counter, register set, dan
stack. Sebuah threadberbagi code section, data section,
dan sumber daya sistem operasi dengan Thread lain yang
dimiliki oleh proses yang sama.
Thread juga sering disebut lightweight process. Sebuah
proses tradisional atau heavyweight process mempunyai
thread tunggal yang berfungsi sebagai pengendali.
Perbedaannya ialah proses dengan thread yang banyak
mengerjakan lebih dari satu tugas pada satu satuan waktu.
Thread
Pada umumnya, perangkat lunak yang berjalan pada
komputer modern dirancang secara multithreading.
Sebuah aplikasi biasanya diimplementasi sebagai proses
yang terpisah dengan beberapa thread yang berfungsi
sebagai pengendali. Contohnya sebuah web browser
mempunyai thread untuk menampilkan gambar atau
tulisan sedangkan thread yang lain berfungsi sebagai
penerima data dari network.
Thread
Terkadang Aplikasi perlu menjalankan beberapa tugas yang
serupa, semisal sebuah web server dapat mempunyai ratusan
klien yang mengaksesnya secara concurrent. Kalau web server
berjalan sebagai proses yang hanya mempunyai thread
tunggal maka ia hanya dapat melayani satu klien pada pada
satu satuan waktu. Bila ada klien lain yang ingin mengajukan
permintaan maka ia harus menunggu sampai klien
sebelumnya selesai dilayani. Solusinya adalah dengan
membuat web server menjadi multi-threading. Dengan ini
maka 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 tersebut.
Single dan Multi Threading
1. Single thread: process hanya mengeksekusi satu thread
saja pada satu waktu
2. Multi thread: process dapat mengeksekusi sejumlah
thread dalam satu waktu
Single dan Multi Threading
ilustrasi
Keuntungan Multithread
1. Responsive; tanggap
2. Pembagian sumber daya
3. Ekonomis
4. Pemberdayaan arsitektur multiprosesor
Keuntungan Multithread
Responsive; tanggap: Multi-Threading mengizinkan
program untuk berjalan terus walau-pun pada bagian
program tersebut di block atau sedang dalam keadaan
menjalankan operasi yang lama/ panjang. Sebagai contoh,
multithread web browser dapat mengizinkan pengguna
berinteraksi dengan suatu thread ketika suatu gambar
sedang diload oleh thread yang lain.
Keuntungan Multithread
Pembagian sumber daya: Secara default, thread membagi
memori dan sumber daya dari proses.Ketika thread
berjalan pada data yang sama, thread tersebut bisa
berbagi cache memory.
Keuntungan Multithread
Ekonomis: Mengalokasikan memori dan sumber daya
untuk membuat proses adalah sangat mahal.
Alternatifnya, karena thread membagi sumber daya dari
proses, ini lebih ekonomis untuk membuat threads.
Keuntungan Multithread
Pemberdayaan arsitektur multiprosesor: Keuntungan dari
multi-threading dapat ditingkatkan dengan arsitektur
multiprosesor, dimana setiap thread dapat jalan secara
paralel pada prosesor yang berbeda. Pada arsitektur
prosesor tunggal, CPU biasanya berpindah-pindah antara
setiap thread dengan cepat, sehingga terdapat ilusi
paralelisme, tetapi pada kenyataannya hanya satu thread
yang berjalan di setiap waktu.
Kerugian Multithread
1. Multiple thread bisa mengganggu satu sama lain saat
berbagi hardware resource, misalnya chace memory.
2. Execution time (waktu proses) dari sebuah single-
thread tidak dapat diimprove (ditambah), tapi malah
bisa diturunkan. Ini terjadi karena penurunan frequensi
yang dibutuhkan ketika terjadi pergantian thread yang
berjalan.
3. Harus ada dukungan dari hardware ataupun software
untuk melakukan multi-Threading.
Macam Thread
1. Thread Pengguna : thread yang pengaturannya
dilakukan oleh pustaka thread pada tingkatan
pengguna. Karena pustaka yang menyediakan fasilitas
untuk pembuatan dan penjadwalan thread ada di
pengguna, maka thread ini lebih cepat dibuat dan
dikendalikan
2. Thread kernel : thread yang didukung langsung oleh
kernel. Pembuatan, penjadwalan dan manajemen
thread dilakukan oleh kernel pada kernel space. Karena
dilakukan oleh sistem operasi, proses pembuatannya
akan lebih lambat jika dibandingkan dengan thread
pengguna.
Macam Thread
3. Kernel : adalah sebuah perangkat lunak yang membuat
komunikasi / mediator antara aplikasi komputer dan
perangkat keras, yang menyediakan pelayanan sistem.

Pada intinya, kernel merupakan penghubung antara


software dan hardware.
Multithreading Models
Dukungan thread disediakan pada tingkat user yaitu user
threads atau tingka kernel untuk kernel threads. User
Threads disediakan oleh kernel dan diatur tanpa
dukungan kernel, sedangkan kernel therads didukung dan
diatur secara langsung oleh sistem operasi. Hubungan
antara user threads dan kernel threads terdiri dari tiga
model relasi, yaitu:
1. Model Many To One
2. Model One To One
3. Model Many to Many
Multithreading Models
Model Many to One:
Model Many-to-One memetakan beberapa thread
tingkatan pengguna ke sebuah thread tingkatan kernel.
Pengaturan thread dilakukan dalam ruang pengguna,
sehingga efisien. Hanya satu thread pengguna yang dapat
mengakses thread kernel pada satu saat. Jadi, multiple
thread tidak dapat berjalan secara paralel pada
multiprocessor. Thread tingkat pengguna yang
diimplementasi pada sistem operasi yang tidak
mendukung thread kernel menggunakan model Many-to-
One.
Multithreading Models
Model One to One:

Model One-to-One memetakan setiap thread tingkatan


pengguna ke thread kernel. Ia menyediakan lebih banyak
concurrency dibandingkan model Many-to-One.
Keuntungannya sama dengan keuntungan thread kernel.
Kelemahannya model ini ialah setiap pembuatan thread
pengguna memerlukan pembuatan thread kernel. Karena
pembuatan thread dapat menurunkan kinerja dari sebuah
aplikasi maka implmentasi dari model ini jumlah thread
dibatasi oleh sistem. Contoh sistem operasi yang
mendukung model One-to-One ialah Windows NT dan
OS/2.
Multithreading Models
Model Many To Many:
1. Mengelompokkan banyak thread pengguna untuk
dipetakan ke thread kernel yang
2. jumlahnya lebih sedikit atau sama dengan tingkatan
pengguna.
3. Mengijinkan sistem operasi untuk membuat sejumlah
thread kernel.

Anda mungkin juga menyukai