Saturday, June 20, 2009

6. name-service

Bab 6. Name Service
6.1 Pendahuluan
Sistem Terdistribusi
Name Service dalam Sistem Terdistribusi merupakan layanan penamaan yang
berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan
objek, tugasnya untuk me-resolve nama.
Pengaksesan resource pada sistem terdistribusi yang memerlukan:
 Nama resource (untuk pemanggilan),
 Alamat (lokasi resource tsb),
 Rute (bagaimana mencapai lokasi tsb).

5. file-service

Bab 5. File Service
5.1 Pendahuluan
Sistem Terdistribusi
File adalah kumpulan informasi yang berhubungan dan tersimpan dalam secondary
storage.
Tipe File :
• Data (character, numeric, binary)
• Program

Atribut File
• Nama yaitu menentukan nama file yang dimaksud
• Tipe

4. sistem-operasi-terdistribusi

BAB 4. Sistem Operasi Terdistribusi


4.1. Sistem Operasi
Pengertian Sistem Operasi

Sistem operasi (Operating System atau OS) adalah perangkat lunak sistem
yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-
operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-
program pengolah kata dan browser web.

Secara umum, Sistem Operasi adalah software pada lapisan pertama yang
ditaruh pada memori komputer pada saat komputer dinyalakan. Sedangkan software-
software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan
melakukan layanan inti umum untuk software-software itu. Layanan inti umum

Bab 3. Proses

Sistem Terdistribusi
Bab 3. Proses
3.1 Thread
Thread
adalah sebuah alur kontrol dari sebuah proses. Kontrol
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 memiliki eksekusi
multi-threads
, agar dapat
secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses
yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan
lebih dari satu tugas pada satu waktu. Suatu proses yang
multithreaded
mengandung
beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Keuntungan dari
multithreaded

Sistem Terdistribusi
Bab 3. Proses
3.1 Thread
Thread
adalah sebuah alur kontrol dari sebuah proses. Kontrol
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 memiliki eksekusi
multi-threads
, agar dapat
secara terus menerus mengetik dan menjalankan pemeriksaan ejaan didalam proses
yang sama, maka sistem operasi tersebut memungkinkan proses untuk menjalankan
lebih dari satu tugas pada satu waktu. Suatu proses yang
multithreaded
mengandung
beberapa perbedaan alur kontrol dengan ruang alamat yang sama.
Keuntungan dari
multithreaded
meliputi peningkatan respon dari pengguna,
pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil
keuntungan dari arsitektur multiprosesor.
Thread
merupakan unit dasar dari
penggunaan CPU, yang terdiri dari Thread_ID,
program counter
,
register set
, dan
stack
. Sebuah
thread
berbagi
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.
Perbedaan antara proses dengan
thread
tunggal dan proses dengan
thread
yang
banyak adalah proses dengan
thread
banyak dapat mengerjakan lebih dari satu tugas
pada satu satuan waktu.
Gambar 3.1. Thread
Banyak perangkat lunak yang berjalan pada PC modern dirancang secara
multi-
threading
. 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.
Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan
beberapa tugas yang serupa. Sebagai contohnya 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
Proses Hal. 1
Sistem Terdistribusi
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.
Keuntungan
Thread
Keuntungan dari program yang
multithreading
dapat dipisah menjadi empat
kategori:
1.
Responsi
: Membuat aplikasi yang interaktif menjadi
multithreading
dapat
membuat sebuah program terus berjalan meski pun sebagian dari program
tersebut diblok atau melakukan operasi yang panjang, karena itu dapat
meningkatkan respons kepada pengguna. Sebagai contohnya dalam
web browser
yang
multithreading
, sebuah
thread
dapat melayani permintaan pengguna
sementara
thread
lain berusaha menampilkan image.
2.
Berbagi sumber daya
:
thread
berbagi memori dan sumber daya dengan
thread
lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah
mengizinkan sebuah aplikasi untuk mempunyai beberapa
thread
yang berbeda
dalam lokasi memori yang sama.
3.
Ekonomi
: dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian
memori dan sumber daya. Alternatifnya adalah dengan penggunaan
thread
,
karena
thread
berbagi memori dan sumber daya proses yang memilikinya maka
akan lebih ekonomis untuk membuat dan
context switch
thread
. Akan susah
untuk mengukur perbedaan waktu antara proses dan
thread
dalam hal
pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan
proses lebih lama dibandingkan
thread
. Pada Solaris, pembuatan proses lebih
lama 30 kali dibandingkan pembuatan
thread
, dan
context switch
proses 5 kali
lebih lama dibandingkan
context switch
thread
.
4.
Utilisasi arsitektur
multiprocessor
: Keuntungan dari multithreading dapat
sangat meningkat pada arsitektur
multiprocessor
, dimana setiap
thread
dapat
berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor
tunggal, CPU menjalankan setiap
thread
secara bergantian tetapi hal ini
berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada
kenyataannya hanya satu
thread
yang dijalankan CPU pada satu-satuan waktu
(satu-satuan waktu pada CPU biasa disebut
time slice
atau
quantum
).
Multithreading Models
Beberapa terminologi yang akan dibahas:
a.
Thread
pengguna:
Thread
yang pengaturannya dilakukan oleh pustaka
thread
pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk
pembuatan dan penjadwalan
thread
,
thread
pengguna cepat dibuat dan
dikendalikan.
b.
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.
Proses Hal. 2

Sistem Terdistribusi
Model-model
Multithreading
:
a.
Model
Many-to-One
.
Model ini 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 multiprosesor. Contoh: Solaris
Green Threads
dan
GNU
Portable Threads
.
b.
Model
One-to-One
.
Model ini memetakan setiap
thread
tingkatan pengguna
ke setiap
thread
. Ia menyediakan lebih banyak
concurrency
dibandingkan
model
Many-to-One
. Keuntungannya sama dengan keuntungan
thread
kernel.
Kelemahan model ini ialah setiap pembuatan
thread
pengguna memerlukan
tambahan
thread
kernel. Karena itu, jika mengimplementasikan sistem ini
maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah
thread
dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris
9.
c.
Model
Many-to-Many
.
Model ini memultipleks banyak
thread
tingkatan
pengguna ke
thread
kernel yang jumlahnya sedikit atau sama dengan tingkatan
pengguna. Model ini mengizinkan
developer
membuat
thread
sebanyak yang
ia mau tetapi
concurrency
tidak dapat diperoleh karena hanya satu
thread
yang
dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini
ialah kernel
thread
yang bersangkutan dapat berjalan secara paralel pada
multiprosessor.
Pustaka
Thread
Pustaka
Thread
atau yang lebih familiar dikenal dengan
Thread Library
bertugas untuk menyediakan API untuk
programmer
dalam menciptakan dan
memanage
thread
. Ada dua cara dalam mengimplementasikan pustaka
thread
:
Proses Hal. 3
Sistem Terdistribusi
a. Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga
pemanggilan fungsi tidak melalui
system call
. Jadi, jika kita memanggil fungsi
yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi
call
yang sifatnya lokal dan bukan
system call
.
b. Menyediakan API di level kernel yang didukung secara langsung oleh sistem
operasi. Pemanggilan fungsi
call
akan melibatkan
system call
ke kernel.
Ada tiga pustaka
thread
yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java,
dan Win32. Implementasi POSIX standard dapat dengan cara
user
level dan kernel
level, sedangkan Win32 adalah kernel level. Java API
thread
dapat
diimplementasikan oleh Pthreads atau Win32.
Pembatalan
Thread
(
Thread Cancellation
)
Thread Cancellation
ialah pembatalan
thread
sebelum tugasnya selesai.
Umpamanya, jika dalam program Java hendak mematikan Java Virtual Machine
(JVM). Sebelum JVM dimatikan, maka seluruh
thread
yang berjalan harus dibatalkan
terlebih dahulu. Contoh lain adalah di masalah
search
. Apabila sebuah
thread
mencari
sesuatu dalam
database
dan menemukan serta mengembalikan hasilnya,
thread
sisanya akan dibatalkan.
Thread
yang akan diberhentikan biasa disebut
target thread
.
Pemberhentian
target Thread
dapat dilakukan dengan 2 cara:
a.
Asynchronous cancellation
.
Suatu
thread
seketika itu juga membatalkan
target thread
.
b.
Deferred cancellation
.
Suatu
thread
secara periodik memeriksa apakah ia
harus batal, cara ini memperbolehkan
target thread
untuk membatalkan
dirinya secara terurut.
Hal yang sulit dari pembatalan
thread
ini adalah ketika terjadi situasi dimana
sumber daya sudah dialokasikan untuk
thread
yang akan dibatalkan. Selain itu
kesulitan lain adalah ketika
thread
yang dibatalkan sedang meng-
update
data yang ia
bagi dengan
thread
lain. Hal ini akan menjadi masalah yang sulit apabila digunakan
asynchronous cancellation
. Sistem operasi akan mengambil kembali sumber daya dari
thread
yang dibatalkan tetapi seringkali sistem operasi tidak mengambil kembali
semua sumber daya dari
thread
yang dibatalkan.
Alternatifnya adalah dengan menggunakan
deffered cancellation
. Cara kerja
dari
deffered cancellation
adalah dengan menggunakan satu
thread
yang berfungsi
sebagai pengindikasi bahwa
target thread
hendak dibatalkan. Tetapi pembatalan
hanya akan terjadi jika
target thread
memeriksa apakah ia harus batal atau tidak. Hal
ini memperbolehkan
thread
untuk memeriksa apakah ia harus batal pada waktu
dimana ia dapat dibatalkan secara aman yang aman. Pthread merujuk sebagai
cancellation points
.
Pada umumnya sistem operasi memperbolehkan proses atau thread untuk
dibatalkan secara
asynchronous
. Tetapi Pthread API menyediakan
deferred
cancellation
. Hal ini berarti sistem operasi yang mengimplementasikan Pthread API
akan mengizinkan
deferred cancellation
.
Proses Hal. 4
Sistem Terdistribusi
Penjadwalan
Thread
Begitu dibuat,
thread
baru dapat dijalankan dengan berbagai macam
penjadwalan. Kebijakan penjadwalanlah yang menentukan setiap proses, di mana
proses tersebut akan ditaruh dalam daftar proses sesuai proritasnya dan bagaimana ia
bergerak dalam daftar proses tersebut.
Untuk menjadwalkan
thread
, sistem dengan model
mulithreading
many to many
atau
many to one
menggunakan:
a.
Process Contention Scope (PCS).
Pustaka
thread
menjadwalkan thread
pengguna untuk berjalan pada LWP (
lightweight process
) yang tersedia.
b.
System Contention Scope (SCS).
SCS berfungsi untuk memilih satu dari
banyak
thread
, kemudian menjadwalkannya ke satu
thread
tertentu(CPU /
Kernel).
3.2. Client – Server
Pengertian Client Server
Banyak referensi yang menjelaskan istilah client server. Menurut definisi yang
diperoleh dari Wikipedia:
Client server
is
network architecture
which separates a
client
(often
an application that uses a
graphical user interface
) from a
server
.
Each
instance
of the client software can send
requests
to a server.
Specific types of servers include
web servers
,
application servers
,
file
servers
,
terminal servers
, and
mail servers
. While their purposes vary
somewhat, the basic
architecture
remains the same.
Menurut Microsoft Encarta:
Definition:
servicing requests from others:
describes a computer
network in which processing is divided between a client program
running on a user’s machine and a network server program. One
server can provide data to, or perform storage-intensive processing
tasks in conjunction with, one or more clients.
Dari buku
Technical Foundations of Client/Server Systems
karangan Carl L. Hall
(A Wiley – QED Publication). Di halaman 7 tentang Client/Server General Definition
disebutkan:
The term client/server refers to a relationship between two systems or
processes. The client is the system that requests work to be done on its
behalf by the server system. In most situations, which is client and
which is server is determined by the relationship of requester (client)
to server.
Dari definisi-definisi tersebut, kata kuncinya adalah pada sistem client/server
harus terdapat
satu atau beberapa server yang menyediakan layanan
dan
satu
atau beberapa klien yang meminta layanan
tersebut (tidak perduli apakah kondisi
tersebut berada pada sebuah sistem jaringan ataupun stand-alone).
Istilah server di sini bisa saja berupa komputer-komputer kelas server seperti
IBM, HP, Compaq dll. Atau juga berupa software yang dapat dikategorikan
Proses Hal. 5

Sistem Terdistribusi
berdasarkan layanannya misalnya web server, application server, file server, database
server, terminal server, mail server, dll.
Server bisa juga berupa proses, seperti RPC Server yang terdapat pada sistem
operasi server seperti Novell, Windows NT, Linux dll. Lebih dalam lagi, pada kernel
(inti) sebuah sistem operasi juga banyak terdapat proses-proses yang bertanggung-
jawab menyediakan layanan-layanan agar hardware komputer dapat bekerja sebagai
mana mestiya.
Microsoft menamakan proses tersebut
services
sedangkan keluarga
Unix/Linux menyebutnya
daemons.
Services/daemons tersebut umumnya
menyediakan manajemen memory, akses file/jaringan, serta penjadwalan
(scheduling).
Server
adalah komputer yang dapat memberikan
service
ke
client
, sedangkan
client
adalah komputer yang mengakses beberapa
service
yang ada di
server
. Ketika
client
membutuhkan suatu
service
yang ada di
server
, dia akan mengirim
request
kepada
server
lewat jaringan.
Jika request
tersebut dapat dilaksanakan, maka
server
akan mengirim balasan berupa
service
yang dibutuhkan untuk saling berhubungan
menggunakan
Socket
.
1. Karakteristik
Server
a. Pasif
b. Menunggu
request
c. Menerima
request
, memproses mereka dan mengirimkan balasan
berupa
service
2. Karakteristik
Client
a. Aktif
b. Mengirim
request
c. Menunggu dan menerima balasan dari
server
Socket
adalah sebuah
endpoint
untuk komunikasi didalam jaringan. Sepasang proses
atau
thread
berkomunikasi dengan membangun sepasang
socket
, yang masing-masing
proses memilikinya.
Socket
dibuat dengan menyambungkan dua buah alamat IP
melalui
port
tertentu. Secara umum
socket
digunakan dalam
client/server system
,
dimana sebuah
server
akan menunggu
client
pada
port
tertentu. Begitu ada
client
yang menghubungi
server
maka
server
akan menyetujui komunikasi dengan
client
melalui
socket
yang dibangun.
Proses Hal. 6






























































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































Sistem Terdistribusi
Model Client-Server
Ada beberapa model client/server yang penting untuk diketahui. Dimulai dari
arsitektur mainframe hingga arsitektur client/server.
a.
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.
b.
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.
c.
Arsitektur Client/Server
Karena keterbatasan sistem file sharing, dikembangkanlah arsitektur
client/server. Salah satu hasilnya yaitu berupa software database server yang
menggantikan software database berbasis file server. Dikenalkan pula RDBMS
(Relational Database Management System). Dengan arsitektur ini, query data ke
server dapat terlayani dengan lebih cepat karena yang ditransfer bukanlah file,
tetapi hanyalah hasil dari query tersebut. RPC (Remote Procedure Calls)
memegang peranan penting pada arsitektur client/server.
d.
Model 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, yaitu antar muka program aplikasi yang berhadapan
dan digunakan langsung oleh user.
2. Manajemen proses
3. Database
Model ini memisahkan peranan user interface dan database dengan jelas,
sehingga terbentuk dua lapisan.
Proses Hal. 7

Sistem Terdistribusi
Pada gambar tersebut, user interface yang merupakan bagian dari program
aplikasi melayani input dari user. Input tersebut diproses oleh Manajemen
Proses dan melakukan query data ke database (dalam bentuk perintah SQL).
Pada database server juga bisa memiliki Manajemen Proses untuk melayani
query tersebut, biasanya ditulis ke dalam bentuk Stored Procedure.
e.
Model 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. Ada berbagai macam software yang dapat digunakan sebagai server
middle-tier. Contohnya MTS (Microsoft Transaction Server) dan MIDAS.
3.3. Agent
Software Agent
adalah entitas perangkat lunak yang didedikasikan untuk tujuan
tertentu yang memungkinkan user untuk mendelegasikan tugasnya secara mandiri,
selanjutnya software agent nantinya disebut agent saja. Agent bisa memiliki ide
sendiri mengenai bagaimana menyelesaikan suatu pekerjaan tertentu atau agenda
tersendiri. Agent yang tidak berpindah ke host lain disebut
stationary agent.
Karakteristik dari Agen
:
1. Autonomy
: Agent dapat melakukan tugas secara mandiri dan tidak
dipengaruhi secara langsung oleh user, agent lain ataupun oleh lingkungan
Proses Hal. 8
Sistem Terdistribusi
(environment). Untuk mencapai tujuan dalam melakukan tugasnya secara
mandiri, agent harus memiliki kemampuan kontrol terhadap setiap aksi yang
mereka perbuat, baik aksi keluar maupun ke dalam [Woolridge et. al., 1995].
2. 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 b
ase, kemampuan
reasoning
berdasar pada
knowledge base
yang
dimiliki, dan kemampuan
learning
untuk beradaptasi dalam perubahan
lingkungan.
3. 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.
4. Delegation
: Agent bergerak dalam kerangka menjalankan tugas yang
diperintahkan oleh user. Fenomena pendelegasian (
delegation
) ini adalah
karakteristik utama
suatu program disebut agent.
5. Reactivity
: Kemampuan untuk bisa cepat beradaptasi dengan adanya
perubahan informasi yang ada dalam suatu lingkungan. Lingkungan itu bisa
mencakup: agent lain, user, informasi dari luar, dsb [Brenner et. al., 1998].
6. 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
).
7. 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). Bagaimanapun juga, untuk bisa berkoordinasi dengan
agent
lain
dalam menjalankan tugas, perlu bahasa standard untuk berkomunikasi. Tim
Finin [Finin et al., 1993] [Finin et al., 1994] [Finin et al., 1995] [Finin et al.,
1997] dan Yannis Labrou [Labrou et al., 1994] [Labrou et al., 1997] adalah
peneliti
software agent
yang banyak berkecimpung dalam riset mengenai
bahasa dan protokol komunikasi antar agent. Salah satu produk mereka adalah
Knowledge Query and Manipulation Language
(KQML). Dan masih terkait
dengan komunikasi antar agent adalah
Knowledge Interchange Format
(KIF).
Proses Hal. 9
Sistem Terdistribusi
Klasifikasi Software Agent
1. Klasifikasi menurut Karakteristik yang Dimiliki
Menurut Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada
karakteristiknya.
Software Agent
Collaborative
Hybrid Agent
Reactive
Agent
Agent
Mobile
Agent
Heterogeneous
Agent System
Information
Interface
and Internet
Agent
Agent
Gambar 2: Klasifikasi
Software Agent
Menurut Karakteristik Yang Dimiliki
a.
Collaborative Agent
:
Agent
yang memiliki kemampuan melakukan 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
tempat ke tempat lain, dan secara mandiri melakukan tugas ditempat barunya
tersebut, dalam lingkungan jaringan komputer.
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.
f.
Hybrid Agent
: Kita sudah mempunyai lima klasifikasi
agent
. Kemudian
agent
yang memiliki katakteristik yang merupakan gabungan dari karakteristik yang
sudah kita sebutkan 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
.
2. Klasifikasi menurut Lingkungan Dimana Dijalankan
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
Proses Hal. 10
Sistem Terdistribusi
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
c.
Intranet Agent
:
Agent
yang hidup dan bertugas dalam lingkungan jaringan
Intranet, melakukan tugas memanage informasi yang ada di Intranet.
Termasuk dalam klasifikasi ini adalah:

Collaborative Customization Agent

Process Automation Agent

Database Agent

Resource Brokering Agent
Bahasa Pemrograman yang digunakan
Bahasa pemrograman yang dipakai untuk tahap implementasi dari software
agent, sangat menentukan keberhasilan dalam implementasi agent sesuai dengan yang
diharapkan. Beberapa peneliti memberikan petunjuk tentang bagaimana karakteristik
bahasa pemrorgaman yang sebaiknya di pakai [Knabe, 1995] [Brenner et al., 1998].
Diantaranya yaitu :
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 diberbagai 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).
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.
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.
Proses Hal. 11
Sistem Terdistribusi
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.
Dari karakteristik di atas dapat disimpulkan bahwa bahasa pemrograman yang layak
untuk mengimplementasikan software agent adalah sebagai berikut :
• Java
• Telescript
• Tcl/Tk, Safe-Tcl, Agent-Tcl
Referensi:
1.
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-
1/ch11.html#c31101
2.
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/2002/riene101/produk/Materi/T
hreads.html
3. Rofiq Siregar, Definisi Client/Server,
http://rofiqsiregar.wordpress.com/2007/05/09/defenisi-clientserver/
4.
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-
1/ch17s05.html
5. Rofiq Siregar, Model Client/Server,
http://rofiqsiregar.wordpress.com/2007/05/29/model-clientserver/
6. Ayu Anggriani dkk., Tugas Kuliah Pengantar Sistem Terdistribusi, 2008.
7. Romi Satria Wahono, Pengantar Software Agent: Teori dan Aplikasi,
http://ilmukomputer.com/2006/08/21/pengantar-
software
-
agent
/
Proses Hal. 12


ayead lazuck
sumber:

Bab 2. Komunikasi

Bab 2. Komunikasi

2.1. Komunikasi Data
Sistem Terdistribusi
Komunikasi data adalah merupakan bagian dari telekomunikasi yang secara
khusus berkenaan dengan transmisi atau pemindahan data dan informasi diantara
komputer-komputer dan piranti-piranti yang lain dalam bentuk digital yang
dikirimkan melalui media komunikasi data. Data berarti informasi yang disajikan oleh
isyarat digital. Komunikasi data merupakan baguan vital dari suatu masyarakat
informasi karena sistem ini menyediakan infrastruktur yang memungkinkan
komputer-komputer dapat berkomunikasi satu sama lain.

Komponen Komunikasi Data
 Pengirim, adalah piranti yang mengirimkan data
 Penerima, adalah piranti yang menerima data
 Data, adalah informasi yang akan dipindahkan
 Media pengiriman, adalah media atau saluran yang digunakan untuk
mengirimkan data
 Protokol, adalah aturan-aturan yang berfungsi untuk menyelaraskan hubungan.















2.2. 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 berlangsung dengan benar, walaupun sistem yang ada dalam
jaringan tersebut berbeda sama sekali. Protokol ini mengurusi perbedaan format data
pada kedua sistem hingga pada masalah koneksi listrik.

Komponen Protokol
1. Aturan atau prosedur, mengatur pembentukan/pemutusan hubungan
2. Format atau bentuk, mengatur proses transfer data representasi pesan
3. Kosakata (vocabulary), 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 dalam bertukar informasi agar dapat
berjalan dengan baik dan benar. Sedangkan fungsi protokol secara detail dapat
dijelaskan berikut:


Komunikasi


Hal. 1




• Fragmentasi dan reassembly
Sistem Terdistribusi
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.
• Encapsulation
Fungsi dari encapsulation adalah melengkapi informasi yang dikirimkan
dengan address, kode-kode koreksi dan lain-lain.
• Connection control
Fungsi dari connection control adalah membangun hubungan (connection)
komunikasi dari sisi pengirim dan sisi penerima, dimana dalam membangun
hubungan ini juga termasuk dalam hal pengiriman data dan mengakhiri
hubungan.
• Flow control
Berfungsi sebagai pengatur perjalanan datadari sisi pengirim ke sisi penerima.
• Error control
Dalam pengiriman data tak lepas dari kesalahan, baik itu dalam proses
pengiriman maupun pada waktu data itu diterima. Fungsi dari error control
adalah mengontrol terjadinya kesalahan yang terjadi pada waktu data
dikirimkan.
• 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 oleh dalam bentuk lapisan-lapisan (layer). Hal ini
mengandung arti supaya jaringan yang dibuat nantinya tidak menjadi rumit. Di dalam
layer ini, jumlah, nama, isi dan fungsi setiap layer berbeda-beda. Akan tetapi tujuan
dari setiap layer ini adalah memberi layanan ke layer yang ada di atasnya.
Susunan dari layer menunjukkan tahapan dalam melakukan komunikasi.
Antara setiap layer yang berdekatan terdapat sebuah interface. Interface menentukan
layanan layer yang di bawah kepada layer yang di atasnya.
Pada saat merencanakan sebuah jaringan, hendaknya memperhatikan
bagaimana menentukan interface yang tepat yang akan ditempatkan di antara dua
layer yang bersangkutan.

Standarisasi Protokol (ISO 7498)
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 Layer OSI dibagi dalam dua group: “upper layer” dan “lower layer”.
“Upper layer” fokus pada applikasi pengguna dan bagaimana file direpresentasikan di
komputer. “Lower layer” adalah intisari komunikasi data melalui jaringan aktual.





Komunikasi





Hal. 2


























Gambar 1: Pembagian Model Layer OSI

Penjelasan Model OSI Layer:

Model OSI Keterangan
Sistem Terdistribusi





































Komunikasi
Application Layer: Menyediakan jasa untuk aplikasi
pengguna. Layer ini bertanggungjawab atas pertukaran
informasi antara program komputer, seperti program e-
mail, dan service lain yang jalan di jaringan, seperti server
printer atau aplikasi komputer lainnya.

Presentation Layer: Bertanggung jawab bagaimana data
dikonversi dan diformat untuk transfer data. Contoh
konversi format text ASCII untuk dokumen, .gif dan JPG
untuk gambar. Layer ini membentuk kode konversi,
translasi data, enkripsi dan konversi.



Session Layer: Menentukan bagaimana dua terminal
menjaga, memelihara dan mengatur koneksi,- bagaimana
mereka saling berhubungan satu sama lain. Koneksi di
layer ini disebut “session”.














Hal. 3






































































Komunikasi
Sistem Terdistribusi



Transport Layer: Bertanggung jawab membagi data
menjadi segmen, menjaga koneksi logika “end-to-end”
antar terminal, dan menyediakan penanganan error (error
handling). Transport layer berfungsi untuk menerima data
dari session layer, memecah data menjadi bagian-bagian
yang lebih kecil, meneruskan data ke network layer dan
menjamin semua potongan data tersebut bisa tiba di sisi
penerima dengan benar.

Network Layer: Bertanggung jawab menentukan alamat
jaringan, menentukan rute yang harus diambil selama
perjalanan, dan menjaga antrian trafik di jaringan. Data
pada layer ini berbentuk paket.

• Fungsi utama dari layer network adalah
pengalamatan dan routing. Pengalamatan pada
layer network merupakan pengalamatan secara
logical
• Routing digunakan untuk pengarah jalur paket data
yang akan dikirim.
• Transport dari suatu informasi

Data Link Layer: Menyediakan link untuk data,
memaketkannya menjadi frame yang berhubungan
dengan “hardware” kemudian diangkut melalui media.
komunikasinya dengan kartu jaringan, mengatur
komunikasi layer physical antara sistem koneksi dan
penanganan error. Tugas utama data link layer adalah
sebagai fasilitas transmisi raw data dan
mentransformasi data tersebut ke saluran yang bebas
dari kesalahan transmisi.

Fungsi yang diberikan pada layer data link antara lain
:

• Arbitration, pemilihn media fisik untuk penentuan
waktu pengiriman data, metode yang dipakai
CSMA/CD(Carrier Sense Multiple Access
/Collision Detection).
• Addressing, pengalamatan bersifat fisik yaitu dgn
MAC(media Access Control) yang ditanamkan
pada interface perangkat jaringan.
• Error detection, menentukan apakah data telah
berhasil terkirim, tekniknya FCS( Frame Check
Sequence) dan CRC(Cyclic Redundancy Check)
• Identify Data Encapsulation.




Hal. 4
Sistem Terdistribusi




Physical Layer: Bertanggung jawab atas proses data
menjadi bit dan mentransfernya melalui media, seperti
kabel, dan menjaga koneksi fisik antar sistem.Layer ini
mengatur tentang bentuk interface yang berbeda-beda dari
sebuah media transmisi. Spesifikasi yang berbeda misal
konektor, pin, penggunaan pin, arus listrik yang lewat,
encoding, sumber cahaya dll. Secara umum masalah-
masalah desain yang ditemukan di sini berhubungan
secara mekanik, elektrik dan interface prosedural, dan
media fisik yang berada di bawah physical layer. Contoh :
EIA/TIA-232, V35, EIA/TIA- 449, V.24, RJ45, Ethernet,
NRZI, NRZ, B8ZS






Hubungan antara model referensi OSI dengan protokol internet dapat dilihat dalam
tabel di bawah ini.

Model OSI
No Lapisan


TCP/IP

Protokol TCP/IP
Nama Protokol



Kegunaan
DHCP (Dynamic Host
Configuration Protocol)
DNS (Domain Name Server)

FTP (File Transfer Protocol)
HTTP (HyperText Transfer
Protocol)
MIME ( (Multiporpose Internet
Mail Extention)
NNTP (Network News Transfer
Protocol)
Protokol untuk distribusi IP
pada jaringan untuk jumlah
IP terbatas
Database nama domain
mesin dan nomer IP
Protokol untuk transfer file
Protokol untuk transfer file
HTML dan web
Protokol untuk mengirim file
binary dalam bentuk teks
Protokol untuk menerima
dan mengirim newsgroup
POP (Post Office Protocol) Protokol
untuk mengambil



7 Aplikasi








6 Presentasi
mail dari server
SMB (Server Message Block) Protokol untuk transfer
berbagai server file DOS dan
Windows
SMTP (Simple Mail Transfer Protokol untuk pertukaran
Protocol) mail
SNMP (Simple Network Protokol untuk manajemen
Management Protocol) jaringan
Telnet Protokol untuk akses dari
jarak jauh
TFTP (Trivial FTP) Protokol untuk transfer file
NETBIOS (Network Basic Input BIOS jaringan standar
Output System)
RPC (Remote Procedure Call) Prosedur pemanggilan jarak
jauh
Socket Input Output untuk network
5 Sessi

Komunikasi
Aplikasi
jenis BSD-UNIX

Hal. 5




TCP (Transmission Control
Protocol)
Sistem Terdistribusi


Protokol pertukaran data
berorientasi (connection
oriented)


4 Transport










3 Network








2 Datalink















LLC
(Logical
Link
Control)

MAC
(Media
Access
Control)


Transport










Internet
UDP (User Datagram Protocol) Protokol pertukaran data
non-orientasi
(connectionless)
IP (Internet Protocol) Protokol untuk menetapkan
routing
RIP (Routing Information Protokol untuk memilih
Protocol) routing
ARP (Address Resolution Protokol untuk mendapatkan
Protocol) informasi hardware dari
nomer IP
RARP (Reverse ARP) Protokol untuk mendapatkan
informasi nomer IP dari
hardware
PPP (Point to Point Protocol) Protokol untuk poin ke poin
SLIP (Serial Line Internet Protokol dengan
Protocol) menggunakan sambungan
serial



Ethernet, FDDI, ISDN, ATM
1 Fisik Network Interface




2.3. Remote Procedure Call (RPC)

Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita
untuk mengakses sebuah prosedur yang berada di komputer lain. Untuk dapat
melakukan ini sebuah server harus menyediakan layanan remote procedure.
Pendekatan yang dilakuan adalah sebuah server membuka socket, lalu menunggu
client yang meminta prosedur yang disediakan oleh server. Bila client tidak tahu harus
menghubungi port yang mana, client bisa me-request kepada sebuah matchmaker
pada sebuah RPC port yang tetap. Matchmaker akan memberikan port apa yang
digunakan oleh prosedur yang diminta client.

RPC masih menggunakan cara primitif dalam pemrograman, yaitu
menggunakan paradigma procedural programming. Hal itu membuat kita sulit ketika
menyediakan banyak remote procedure. RPC menggunakan socket untuk
berkomunikasi dengan proses lainnya. Pada sistem seperti SUN, RPC secara default
sudah ter-install kedalam sistemnya, biasanya RPC ini digunakan untuk administrasi
sistem. Sehingga seorang administrator jaringan dapat mengakses sistemnya dan
mengelola sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.

Kelebihan RPC
 Relatif mudah digunakan :
Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan
local procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic,



Komunikasi



Hal. 6

Sistem Terdistribusi


tidak perlu memikirkan low level details seperti socket, marshalling &
unmarshalling.
 Robust (Sempurna):
Sejak th 1980-an RPC telah banyak digunakan dlm pengembangan mission-
critical application yg memerlukan scalability, fault tolerance, & reliability.

Kekurangan RPC
 Tidak fleksibel terhadap perubahan:
- Static relationship between client & server at run-time.
 Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman
dibandingkan OOP.

Prinsip RPC dalam program Client-Server



























Skema RPC ini dilakukan juga pada proses-proses yang running di komputer
berlainan












 Sebelum mekanisme RPC digunakan, data harus di-packaging ke dalam format
transimisi. Langkah ini dinamakan marshalling
 Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data
dan meminta instans dari komponen (remote)

Komunikasi

Hal. 7

Sistem Terdistribusi


 Stub menerima request, unmarshall data, dan memanggil method yang diminta.
Kemudian proses mengembalikan nilai yang diinginkan

Langkah-langkah dalam RPC




















1. Prosedur client memanggil client stub
2. Client stub membuat pesan dan memanggil OS client
3. OS client mengirim pesan ke OS server
4. OS server memberikan pesan ke server stub
5. Server stub meng-unpack parameter-parameter untuk memanggil server
6. Server mengerjakan operasi, dan mengembalikan hasilnya ke server stub
7. Server stub mem-pack hasil tsb dan memanggil OS server
8. OS server mengirim pesan (hasil) ke OS client
9. OS client memberikan pesan tersebut ke client stub
10. Client stub meng-unpack hasil dan mengembalikan hasil tersebut ke
client


2.4. Object Remote
Meskipun teknologi RPC ini relatif sudah memberikan kenyamanan bagi
developer, tapi perkembangan yang terjadi di bidang pemrograman berorientasi objek
akhirnya menuntut kehadiran teknologi baru. Sederet teknologi akhirnya benar-benar
muncul, antara lain; RMI (Remote Method Invocation), CORBA (Common Object
Request Broker Architecture), dan SOAP (Simple Object Access Protocol).

Remote Method Invocation (RMI) adalah sebuah teknik pemanggilan method
remote yang lebih secara umum lebih baik daripada RPC. RMI menggunakan
paradigma pemrograman berorientasi obyek (Object Oriented Programming). RMI
memungkinkan kita untuk mengirim obyek sebagai parameter dari remote method.
Dengan dibolehkannya program Java memanggil method pada remote obyek, RMI
membuat pengguna dapat mengembangkan aplikasi Java yang terdistribusi pada
jaringan.

Aplikasi RMI seringkali terdiri dari dua program terpisah yaitu server dan client.
Aplikasi server semacam ini biasanya membuat beberapa objek remote, menyediakan

Komunikasi

Hal. 8

Sistem Terdistribusi


referensi terhadap objek-objek tersebut sehingga dapat diakses, serta menunggu client
menginvoke/memanggil method dari objek-objek remote tersebut. Aplikasi client
mendapatkan referensi remote ke satu atau lebih objek remote di server dan
menjalankan method dari objek tersebut.

RMI menyediakan mekanisme dimana server dan client berkomunikasi dan
memberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut
aplikasi objek terdistribusi.

Aplikasi objek terdistribusi seringkali melakukan hal berikut:

• Melokasikan objek remote: Aplikasi dapat menggunakan satu dari dua
mekanisme untuk mendapatkan referensi ke objek remote. Aplikasi dapat
mendaftarkan objek remote dengan fasilitas penamaan RMI (naming facility)
yaitu rmiregistry atau aplikasi dapat mem-pass dan mengembalikan referensi
objek remote sebagai bagian dari operasi normal.
• Berkomunikasi dengan objek remote: Detail dari komunikasi antara objek
remote ditangani oleh RMI, bagi programmer komunikasi remote tampak
seperti invokasi method Java standar.
• Memanggil (load) bytecode untuk objek yang di-pass: Karena RMI
mengizinkan pemanggil (caller) untuk mem-pass objek ke objek remote, RMI
menyediakan mekanisme yang diperlukan objek me-load kode objek,
sebagaimana juga mentransmisikan datanya.

Ilustrasi berikut menggambarkan aplikasi RMI terdistribusi yang menggunakan
registry untuk mendapatkan referensi ke objek remote. Server memanggil registry
untuk mengasosiasikan (mengikat) suatu nama dengan objek remote. Client mencari
objek remote dengan namanya pada registry server dan meng-invoke method dari
objek. Ilustrasi ini juga menunjukkan sistem RMI menggunakan Web server untuk
memanggil class bytecodes, dari server ke client dan dari client ke server, untuk
objek-objek yang diperlukan.















Langkah-Langkah Pembuatan Program dengan RMI
Dalam RMI, semua informasi tentang satu pelayanan server disediakan dalam
suatu definisi remote interface. Dengan melihat pada definisi interface, seorang
pemrogram dapat memberitahukan method apa yang dapat dikerjakan oleh server,
meliputi data apa yang diterima dan data apa yang akan dikirim sebagai tanggapan.
Definisi yang ada pada remote interface menentukan karakteristik methods
yang disediakan server yang dapat dilihat oleh client. Client programmer harus dapat

Komunikasi

Hal. 9

Sistem Terdistribusi


mengetahui methods apa yang disediakan server dan bagaimana memanggilnya
langsung dengan melihat ke remote interface. Client mendapatkan referensi ke remote
object melalui RMI registry.

Membangun suatu aplikasi terdistribusi menggunakan RMI meliputi 6 langkah.
Keenam langkah tersebut adalah:
1. Mendefinisikan remote interface
2. Implementasi remote interface dan server
3. Pengembangan client (atau applet) yang menggunakan remote interface
4. Mengkompilasi source files dan mem-buat stub and skeletons
5. Memulai (start) RMI registry
6. Menjalankan server dan client


Referensi:
1. Rijal Fadilah, Handout Komunikasi Data dan Jaringan Komputer,
http://rijalfadilah.multiply.com/
2. Trindiana dkk., Tugas Kuliah Pengantar Sistem Terdistribusi, 2008.
3. Mudji, Model Jaringan 7 OSI Layer, http://mudji.net/press/?p=61
4. Lintang, Pengenalan Hardware dan Topologi Jaringan Komputer,
http://staffsite.gunadarma.ac.id/lintang/index.php?stateid=download&id=2268
&part=files
5. http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-
1/ch17s06.html
6. www.bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/bahan/bahan-
bab3.pdf
7. Isak Rickyanto, Tutorial Pengenalan Java RMI,
http://www.benpinter.net/article.php?story=20030818005713433
8. Ayu Anggriani dkk., Tugas Kuliah Pengantar Sistem Terdistribusi, 2008.




























Komunikasi




























Hal. 10


ayead lazuck
sumber:

Tuesday, June 9, 2009

Tips Memilih Kampus


Tiap tahunnya mungkin ada ratusan ribu siswa sekolah menengah atas yang tamat dan melanjutkan ke perguruan tinggi. Jumlah ini sangat wajar mengingat luas wilayah Indonesia dan jumlah sekolah yang ada.

Dan dari jumlah yang besar tersebut dari pengalaman saya banyak yang masih buta dan ragu dalam mengambil keputusan hendak kuliah dimana dan mengambil jurusan apa. Fenomena inilah yang kemudian dimanfaatkan oleh lembaga-lembaga bimbingan belajar untuk meraup untung. Mereka menawarkan berbagai paket program dan konsultasi yang tentu saja harus dibayar dengan uang yang tidak sedikit.

Sebenarnya untuk memilih sebuah universitas tidaklah perlu mengikuti konsultasi-konsultasian. Karena terkadang lembaga bimbel / konsultasi tidak mengajar kita agar diterima di sebuah universitas tapi hanya mengajar kita untuk memilih universitas di mana kira-kira kita bisa diterima.

Ada beberapa hal yang harus diperhatikan dalam memilih universitas :

1. Lihat rangking nasional dan juga akreditasi jurusannya. Bagi yang bingung memilih mau kuliah dimana perhatikanlah rating universitas-universitas negeri yang ada. Selain ratingnya perhatikanlah juga akreditasi jurusannya karena sering kejadian banyak yang menyesal setelah kuliah di universitas favorit karena jurusannya tidak berkualitas.

2 Selain itu jangan lupa membandingkan jurusan yang kamu pilih dari berbagai universitas. Sebagai contoh kamu ingin mengambil kedokteran UI,UGM sedangkan biayanya cukup mahal, maka alihkanlah pilihanmu ke kedokteran UNSRI, UNS karena biayanya murah dan kualitasnya bagus.

3. Lihat kota tempat universitas itu berada. Lingkungan diluar universitas juga sangat menentukan kualitas seorang mahasiswa. Sebagai contoh di Jogja terdapat berbagai fasilitas penunjang bagi mahasiswa yang tidak ada di kota lain seperti : rental cd, berbagai perpustakaan, akses internet murah (bahkan gratis di beberapa kampus). Berbagai kegiatan mahasiswa seperti seminar, workshop, demonstrasi dll. Lingkungan seperti ini sangat menunjang kegiatan mahasiswa beberapa jurusan tapi tidak semuanya.

Contoh terakhir adalah Bandung. Bandung menurut saya adalah tempat yang kurang cocok untuk kuliah karena gaya hidup dan biaya hidup di Bandung yang tinggi. Namun Bandung mungkin cocok untuk kamu yang ingin mengambil jurusan tertentu, misal ilmu komunikasi karena banyak memiliki fasilitas penunjang jurusan tersebut.

4. Lihat pergerakan dan kegiatan mahasiswanya

Kita tentu tidak akan menghabiskan empat tahun di kampus hanya untuk kuliah bukan? Untuk itu ada baiknya memilih universitas yang mahasiswanya aktif baik itu dalam penelitian, kegiatan extra, keagamaan, politik dll. Untuk yang satu ini biasanya universitas2 yang terletak di kota besar lebih baik daripada universitas di daerah.

(Cobalah UI jika kamu ingin jadi aktivis atau UGM jika ingin jadi peneliti, dan ITB untuk jadi praktisi. Just kidding)

5. Yang menentukan adalah pribadi.

Terakhir (untuk sementara) dan yang paling penting adalah semuanya kembali pada pribadi masing-masing. Dalam kenyataan banyak kasus-kasus di mana kesalahan dan ketidak sungguhan pribadi menghasilkan kegagalan.

Sebagai contoh di kampus besar seperti UGM, UI atau ITB tetap saja banyak mahasiswa yang berpikiran layaknya aneka SMU mereka hanya berpikir antara kuliah dan kost. Itupun kuliahnya gak maksimal.

Ada yang diterima di jurusan favorit tapi tidak mampu mengembangkan kemampuannya. Bahkan ada pula yang terlena dengan kehidupan metropolis sehingga free sex dan kuliahpun jadi hancur.


SO IT DEPEND ON YOU !!!!

LEBIH BAIK JADI IKAN BESAR DI KOLAM BESAR DARIPADA JADI IKAN KECIL DI KOLAM KECIL :-)

sumber : http://www.wikimu.com/News/DisplayNews.aspx?ID=2582

Monday, June 8, 2009

Saturday, June 6, 2009

1. pengenalan-sister


  





 

2.   Sistem point to point
Merupakan bagian dari model sistem terdistribusi dimana sistem dapat
sekaligus berfungsi sebagai client maupun server
3.   Sistem terkluster
Adalah gabungan dari beberapa sistem individual (komputer) yang
dikumpulkan pada suatu lokasi, saling berbagi tempat penyimpanan data
(storage), dan saling terhubung dalam jaringan lokal (Local Area
Network). Sistem kluster memiliki persamaan dengan sistem paralel dalam
hal menggabungkan beberapa CPU untuk meningkatkan kinerja
komputasi. Jika salah satu mesin mengalami masalah dalam menjalankan
tugas maka mesin lain dapat mengambil alih pelaksanaan tugas itu.
Dengan demikian, sistem akan lebih handal dan          fault tolerant dalam
melakukan komputasi.




Dalam hal jaringan, sistem kluster mirip dengan sistem terdistribusi
(distributed system). Bedanya, jika jaringan pada sistem terdistribusi
melingkupi komputer-komputer yang lokasinya tersebar maka jaringan
pada sistem kluster menghubungkan banyak komputer yang dikumpulkan
dalam satu tempat. 
1.4.   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. 
1.5.   Tantangan Sistem Terdistribusi
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
1. Keheterogenan
   Suatu sistem terdistribusi dapat dibangun dari berbagai network,
operation system, hardware dan programming language  yang berbeda.
   IP dapat digunakan utk mengatasi perbedaan jaringan.
   Middleware mengatasi perbedaan lainnya.
2. Keterbukaan
   Mendukung extensibility.
   Setiap komponen memiliki antarmuka (interface), yg di-publish ke
komponen lain.
   Perlu integrasi berbagai komponen yg dibuat oleh programmer atau
vendor yg berbeda. 
3. Keamanan
   Shared resources & transmisi informasi rahasia perlu dilengkapi
dengan enkripsi.
   Cegah denial of service.
4. Scalability


Sistem Terdistribusi


   Penambahan pemakai membutuhkan penambahan resource yg konstan.
   Cegah bottleneck.
   Jika perlu, gunakan replikasi.
5. Penanganan Kegagalan
   Setiap proses (komputer atau jaringan) dapat mengalami kegagalan
secara independen.
   Komponen lain harus tetap berjalan dgn baik.
   E.g. failed branch in a distributed banking system.
6. Concurrency
   Multiple users with concurrent requests to a shared resources.
   Setiap resource hrs aman di lingkungan tersebut di atas.
7. Transparansi
Transparan: bagi pemakai, keberadaan beberapa komponen tampak sebagai
satu sistem saja.
   Access transparency:
Local & remote resources dapat diakses dengan operasi yg sama.
   Location transparency:
–    Resource dapat diakses tanpa tahu di mana lokasinya.
–    Bagaimana pendapat Anda mengenai hyperlink & URL?
   Concurrency transparency:
–    Beberapa proses dapat sama-sama menggunakan suatu       resource
tanpa saling interferensi.
–    Bagaimana jika beberapa pemakai secara bersamaan akan
mengubah suatu berkas?
   Replication transparency:
Pemakai maupun pemrogram aplikasi tidak perlu mengetahui adanya
replikasi resource, yg dapat meningkatkan kehandalan dan unjuk kerja.
   Failure transparency:
Pemakai dan pemrogram aplikasi dapat menyelesaikan tugasnya
walaupun ada kegagalan hardware atau software.
   Mobility transparency:
Resource dan klien dapat berpindah tanpa mempengaruhi operasi
pemakai atau program.
   Performance transparency:
Sistem dapat dikonfigurasi ulang untuk meningkatkan unjuk kerja,
sejalan dengan perubahan beban sistem.
   Scaling transparency:
Sistem dan aplikasi mudah bertambah luas tanpa perubahan struktur
sistem dan algoritma aplikasi.
 sumber;: muhayat-online.blogspot.com