• Tidak ada hasil yang ditemukan

b. Transmisi Paralel Adalah transmisi data dimana dalam satu satuan waktu beberapa bit (umumnya 8 bit) dapat disalurkan secara bersama

N/A
N/A
Protected

Academic year: 2021

Membagikan "b. Transmisi Paralel Adalah transmisi data dimana dalam satu satuan waktu beberapa bit (umumnya 8 bit) dapat disalurkan secara bersama"

Copied!
38
0
0

Teks penuh

(1)

KOMUNIKASI

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

Transmisi Data

Merupakan proses untuk melakukan pengiriman

data dari salah satu sumber data ke penerima

data menggunakan komputer/media elektronik

(2)

Transmisi data dapat dibedakan menjadi dua

macam:

a. Transmisi serial

Adalah transmisi data dimana dalam satu satuan

waktu hanya satu bit yang disalurkan, dengan

demikian data yang terdiri atas banyak bit dikirm

secara berurutan, satu persatu.

Setiap komputer diperlengkapi dengan saluran

serial atau serial port (RS-223C) yaitu saluran

yang dapat menerima/mengirim data secara

serial.

Keuntungan : murah sesuai dengan jarak yang

jauh

Kerugian : perbit sehingga kecepatannya rendah

b. Transmisi Paralel

Adalah transmisi data dimana dalam satu satuan

waktu beberapa bit (umumnya 8 bit) dapat

disalurkan secara bersama

(3)

Pada komputer tersedia juga saluran paralel/

paralel-port misalnya saluran yang dihubungkan

dengan printer ketika akan mencetak data.

Keuntungan : Kecepatan tinggi

Keburukan : cost tinggi

Kenyataannya : komunikasi jarak jauh melalui

Kabel banyak dilakukan secara serial, misalnya

saluran telepon

Secara umum media transmisi data dibedakan

menjadi 2 yaitu

a. Media Kabel

- kabel koaksial , kabel dua kawat , kabel

serat optik

b. Media nirkabel : Transmisi

data

pada

jaringan

ini

dapat

dilakukan

dengan

menggunakan sebuah alat seperti antena,

Contoh : Radio, Infra merah.

(4)

Jalur Transmisi

Merupakan suatu alat yang mampu mengirim

informasi dengan menggunakan peralatan yang

lain. Jalur transmisi dibedakan 3 macam

1 Multicast. : sebuah teknik di mana sebuah data

dikirimkan melalui jaringan ke sekumpulan

komputer yang tergabung ke dalam sebuah grup

tertentu, yang disebut sebagai multicast group.

Multicasting merupakan sebuah cara

mentransmisian data secara connectionless

(komunikasi dapat terjadi tanpa adanya negosiasi

pembuatan koneksi), dan klien dapat menerima

transmisi multicast dengan mencari di mana

lokasinya.

merupakan jenis paket, berasal dari satu buah

titik dan bertujuan ke sebuah alamat khusus

(bukan titik khusus), di mana alamat khusus ini

dapat ‘didengarkan’ oleh titik-titik lain di

jaringan

yang

‘berkepentingan’

untuk

mendengarkannya.

(5)

Proses komunikasi terjadi melalui satu alat

dengan alat lain. Masing-masing media dapat

berkomunikasi

menggunakan

media

yang

menghubunginya

Konsepnya mirip dengan siaran radio, yaitu, jika

hendak mendengarkan suatu siaran khusus,

maka harus merubah frekuensi radio ke

frekuensi yang tepat dengan demikian tentunya,

berjuta-juta orang dapat mendengarkan radio

yang sama.

Contoh Paket multicast sangat efektif untuk

keperluan video streaming, audio streaming

dsb. , karena dari sisi titik pengirim, hanya perlu

‘mengirimkan’ paket satu kali saja ke alamat

khusus.

Hanya saja, untuk dapat melakukan multicast,

jaringan harus disetting sedemikian rupa,

karena tidak semua jaringan mendukung

multicast dengan baik. Sebagai contoh, tidak

mungkin meng-stream video secara multicast ke

Internet dengan mudah tanpa mengotak-atik

perangkat router

(6)

Multicast sebenarnya merupakan mekanisme

komunikasi one-to-many, atau

point-to-multipoint.

Contoh

Contoh server yang digunakan untuk mengakses

internet. Server mampu melayanin beberapa

komputer dan komputer yang dihubungi mampu

memberi respon balik ke server

2. Broadcast :

merupakan jenis transmisi di

mana informasi dikirim dari hanya satu

komputer namun diterima oleh semua komputer

yang terhubung ke jaringan. Ini berarti bahwa

setiap

kali

komputer

atau

node

akan

mengirimkan paket 'siaran' tipe, semua komputer

lainnya akan menerima paket informasi.

(7)

Proses dalam pengiriman data/ informasi dari

satu alat ke alat lainnya. Alat yang menerima tdk

dapat memberi respon balik.

Biasanya jenis paket broadcast akan dikirimkan

untuk menyatakan suatu keberadaan sebuah

layanan, atau pencarian sebuah titik pada

jaringan.

Apabila jaringan dianalogikan dengan pasar,

maka para penjual yang saling berteriak satu

sama lain, merupakan paket broadcast. Karena

akan dengan mudah mengetahui di mana dapat

diketahui untuk membeli sayur tertentu, tapi di

sisi yang lain akan merasa ‘bising’ dengan

kondisi di mana semua pembeli berteriak,

apalagi bila bersama

Contoh sebuah komputer boot up dan meminta

untuk alamat IP. Dalam hal ini, komputer yang

booting dan meminta alamat IP tidak tahu mana

komputer akan dapat memberikan dengan

alamat IP. Kemudian akan menyiarkan paket

permintaan pada jaringan yang akan diterima

oleh semua komputer lain.

(8)

Contoh hanya komputer yang bertindak sebagai

server DHCP. Contoh lainnya ARP (Address

Resolution Protocol) yang akan menyiarkan

permintaan resolusi alamat kepada semua

komputer lain pada jaringan.

Contoh gambar Broadcast

Contoh nyata dari paket broadcast adalah

paket-paket NETBIOS yang dikirimkan oleh

Windows setiap periode tertentu, yang

berisikan nama komputer dan workgroup di

mana komputer tersebut berada. Itulah

sebabnya, akan mendapatkan banyak informasi

tentang apa saja komputer yang ada di jaringan

pada Network Neighbourhood atau My Network

Places.

(9)

3. Unicast:

merupakan Jenis transmisi di mana

informasi dikirim dari satu pengirim ke satu

penerima (antara satu-ke -satu node).

Jenis

paket yang berasal dari satu titik, dan memiliki

tujuan hanya satu titik. Atau Kontak informasi

yang terjadi pada suatu alat dengan satu alat lain

Secara analogi, saat browsing Internet, sudah

melakukan proses unicast , yaitu apabila

mengetik satu alamat URL misalnya, komputer

ber-unicast dengan server web yang ada di URL.

Hampir

seluruh

paket

aplikasi

yang

mendominasi jaringan bersifat unicast, seperti

http, telnet, ftp. dimana permintaan informasi

diarahkan dari satu pengirim ke satu penerima

di ujung lainnya.

(10)

Mode transmisi ada 3 cara pengiriman :

a. Secara sinkron : transmisi data dimana

kedua pihak pengirim dan penerima berada

pada waktu yang sinkron biasanya dimulai

dengan sinyal SYN untuk melakukan

sinkronisasi

antara

2

piranti

yang

berkomunikasi, kemudian menyusul sinyal

STX (start-of-text) yang menyatakan awal

transmisi data, kemudian sejumlah (blok)

data dikirim dan ditutup dengan ETX

(end-of-text), diakhiri dengan sinyal BCC

(block-check-character)

bergunakan

untuk

mengecek kesalahan saat penerimaan data.

b. Secara tak-sinkron : transmisi data dimana

ke dua pihak tidak perlu berada pada waktu

yang sinkron. Contoh : transmisi data dari

keyboard ke memory dilakukan tak-sinkron

disebabkan kecepatan keyboard ditentukan

oleh kecepatan user saat menekan tombol,

sedangkan kecepatan memory ditentukan

oleh

transfer-rate

dari

memory,

(bagaimanapun juga kecepatan manusia

dalam mengetik masih lambat dibandingkan

kecepatan prosesor saat mentransfer data

(11)

Konfigurasi Jalur Komunikasi

1. Komunikasi titik-ke-titik

Menghubungkan secara khusus dua piranti

yang hendak berkomunikasi

Konfigurasi ini banyak ditemukan pada

transmisi paralel, misal komunikasi antara

dua

komputer

secara

paralel

untuk

melakukan penyalinan file,

2. Komunikasi multi –titik

Menyatakan hubungan yang memungkinkan

sebuah jalur digunakan oleh banyak piranti

yang berkomunikasi.

Contoh komunikasi pada jaringan topologi

bus dimana satu saluran data terhubung ke

beberapa komputer

Arah Transmisi

1. Full duplex

Komunikasi antara dua piranti yg dapat dilakukan dengan dua arah dan tidak dapat dilakukan secara bersamaan/serentak. Contoh Handphone, telephone.

(12)

2. Simplex

Simplek sebagai komunikasi antara dua piranti yang hanya dapat melakukan komunikasi / transmisi satu arah saja dari sumber /pengirim ke tujuan/penerima (penerima data / informasi bersifat pasif serta tak dapat memberikan respon balik terhadap pengirim informasi / data)

Contoh komunikasi antar pemancar televisi atau pemancar radio, komunikasi antar perangkat barcode dengan komputer, komunikasi antara amplifier dengan speaker.

3. Half Duplex

Komunikasi antara dua piranti yg dapat dilakukan dengan dua arah, akan tetapi tidak dapat dilakukan secara bersamaan/serentak, tetapi secara bergantian. Contoh Walkie-talkie, dimana ketika seseorang berbicara maka alat yang satunya hanya dapat digunakan untuk mendengarkan saja dan tidak dapat digunakan untuk berbicara bersamaan.

(13)

Paradigma Komunikasi

Layanan : Pembuatan Roti

Resep (pengetahuan tentang layanan) Bahan (Resource yang dapat berpindah)

Oven (resource yang tidak dapat berpindah) Koki (Komponen untuk mengeksekusi)

Paradigma client-server

A ingin membuat roti, tetapi ia tidak tahu resepnya, tidak punya bahannya dan oven yg dibutuhkan. A

tahu B memiliki semua itu. A meminta B untuk

membuatkan roti dan B menyanggupinya. Maka B membuatnya dan mengirimkannya kembali ke A.

Paradigma code on demand

A ingin membuat roti fa punya bahan dan oven, tapi tidak tahu resepnya. A tahu B punya resepnya, jadi

ia minta tolong B untuk memberitahu resepnya.

Setelah diberitahu, A membuat rot! di rumahnya.

Paradigma remote evaluation

A ingin membuat roti. ia tahu resepnya, tapi ia tidak punya bahan dan oven. B punya keduanya, tapi ia tidak tahu cara membuat roti. B mau membuatkan roti untuk A, shg A memberitahu B resepnya. B lalu

membuat roti untuk A di rumahnya,

Paradigma mobile agent

A ingin membuat roti. ia punya bahan dan resep

tapi ia tidak punya oven di rumahnya. A tahu B

punya oven dan bersedia meminjamkannya. Maka A pergi ke rumah B dan membuat roti di sana.

(14)

Cara berkomunikasi :

a. Komunikasi langsung

Setiap proses yang ingin berkirim pesan harus mengetahui secara jelas dengan siapa berkirim pesan. Hal ini dapat mencegah pesan salah kirim ke proses yang lain.

Karakteristik komunikasi langsung: ○ Link dapat otomatis dibuat

○ Sebuah link berhubungan dengan tepat satu proses komunikasi berpasangan

○ Diantara pasangan tsb terdapat tepat satu link ○ Link tsb merupakan link komunikasi dua arah

b. Komunikasi tidak langsung

Menggunakan sejenis kotak surat atau port mempunyai ID unik untuk menerima pesan. Proses dapat berhubungan satu sama lain jika

mereka membagi port.

Karakteristik komunikasi ini antara lain:

○ Link hanya terbentuk jika beberapa proses membagi kotak surat

○ Setiap link dapat terhubung dengan banyak proses

○ Setiap pasang proses dapat membagi beberapa link komunikasi.

○ Link yang ada dapat sebagai link terarah maupun tak terarah

Komunikasi antara proses membutuhkan subroutine untuk mengirim dan menerima data. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak. Hal ini sering dikenal juga dengan komunikasi dalam keadaan sinkron maupun asinkron.

(15)

Ketika Komunikasi dalam keadaan sinkron terjadi 2 hal kejadian yaitu Bloking send (pemblokiran pengirim sampai pesan sebelumnya diterima) dan Bloking Receive (pemblokiran penerima sampai terdapat pesan yang akan dikirim)

Sedangkan dalam keaadan asinkron yang terjadi adalah Non-Bloking send ( pengirim dapat terus mengirim pesan tanpa memperdulikan apakah pesan sebelumnya sampai atau tidak ) dan Non-Bloking Receive (penerima menerima semua pesan baik pesan yang gagal maupun yang valid)

Setiap jenis komunikasi baik langsung maupun tak langsung serta penukaran pesan oleh proses memerlukan antrian sementara (disimpan dalam buffer/penyangga). Pada dasarnya terdapat 3 jenis cara untuk mengimplementasikan antrian :

a. Kapasitas nol. Antrian mempunyai panjang maksimum nol sehingga tidak ada penungguan pesan (message waiting). Artinya pengirim harus memblok sampai penerima menerima pesan.

b. Kapasitas tak terbatas. Antrian mempunyai panjang yang tak terhingga sehingga semua pesan dapat menunggu dan pengirim tidak akan pernah diblok.

c. Kapasitas terbatas. Antrian mempunyai panjang yang telah ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirim maka pengirim dapat langsung eksekusi tanpa menunggu. Link mempunyai kapasitas terbatas. Jika link penuh pengirim harus memblok sampai terdapat ruang pada antrian

(16)

KOMUNIKASI ANTAR PROSES (IPC)

Sistem terdistribusi sangat bergantung pada pertukaran data dan sinkronisasi diantara proses otonom yang terdistribusi.

Komunikasi antar proses tersebut dikenal dengan nama IPC (Inter Proses Communication)

IPC Adalah cara atau mekanisme pertukaran data antara satu proses dengan proses lainnya, dimana proses dapat berjalan baik yang berada dalam komputer yang sama atau komputer jarak jauh yang berhubungan dengan jaringan

IPC adalah suatu kemampuan yang didukung oleh beberapa sistem operasi yang memungkinkan satu proses untuk berkomunikasi dengan proses lain

IPC Sebagai komunikasi antar proses untuk mengirim data dari satu proses ke proses yang lain, baik antar proses dalam satu komputer maupun proses-proses dalam komputer yang berbeda.

Dikembangkan pada tahun 1994 untuk mendukung NASA dalam sebuah proyek penerbangan. IPC digunakan dalam sistem Skyworker.

IPC memiliki perpustakaan (untuk C, C++, Common LISP, JAVA) yang berisi suatu fungsi untuk memarshal dan unmarshal data, menangani transfer data antar mesin, memanggil user defined untuk penanganan jika pesan diterima, dan memanggil user defined untuk callback pada interval tertentu.

IPC saat ini berjalan pada berbagai macam bahasa dan sistem operasi seperti : Sparc berjalan SunOS dan Solaris, Prosesor Intel menjalankan Linux, Windows NT, Windown 98, Macintosh menjalankan Mac OS dan OSX.

(17)

IPC secara otomatis dilakukan oleh program, sebuah fungsi yang sama juga dilakukan secara interacative ketika user melakukan operasi copy-cut-paste dari satu proses ke proses lainnya dengan menggunakan clipboard

IPC terdiri atas protokol yang menjamin sebuah respons dari permintaan dan menggunakan socket, untuk membuka, mendaftar pesan, mengirim dan menerima pesan

IPC sekarang mendukung aplikasi multithread (hanya di linux)

IPC menggunakan client/server dengan paradaigma pesan-passing

Karakteristik IPC

a. Pertukaran pesan antar sepasang proses dapat didukung dengan dua operasi komunikasi pesan : send dan receive.

b. Sebuah proses mengirimkan sebuah pesan (sederetan byte) ke tujuan dan proses lain pada tujuan menerima pesan

c. Pengiriman Pesan

send expression_list to destination_designator

expression_list di evaluasi

Menambahkan pesan baru ke destination_designator

receive variable_list from source_designator

Menerima pesan ke variable_list Menghapus pesan yang diterima

d. Pengiriman pesan mungkin dapat diblok (blocking) atau tidak. Hal ini sering dikenal juga dengan komunikasi dalam keadaan sinkron maupun asinkron.

e. Pada sisi penerima terdapat tumpukan antrian pesan

(18)

f. Sinkronisasi diperlukan karena adanya perbedaan kecepatan eksekusi proses pada dua komputer yang berbeda juga diperlukan oleh suatu proses mempengaruhi komputasi di proses lainnya

g. Komunikasi Synchronous, proses pengirim dan penerima melakukan sinkronisasi untuk tiap pesan yang dipertukarkan. Operasi send dan

receive adalah operasi blocking. (pemblokiran

pengirim sampai pesan sebelumnya diterima dan pemblokiran penerima sampai terdapat pesan yang akan dikirim)

h. Komunikasi Asynchronous, operasi send adalah operasi non-blocking (dapat terus mengirim pesan tanpa memperdulikan apakah pesan sebelumnya sampai atau tidak ), sedangkan operasi receive dapat blocking ataupun

non-blocking (penerima menerima semua pesan baik

pesan yang gagal maupun yang valid ) i. Tujuan Pengiriman Pesan

- Pada protokol internet, pesan dikirim ke (alamat internet, port).

- Sebuah port dimiliki oleh 1 proses penerima, namun dapat memiliki beberapa proses pengirim.

- Setiap proses yang mengetahui angka port, dapat mengirim pesan ke proses tersebut.

j. Jika proses client menggunakan alamat Internet tetap untuk menunjuk sebuah layanan, maka layanan yang diminta harus berada pada alamat tetap tersebut.

(19)

IPC dapat dilakukan dengan menerapkan

beberapa teknik yaitu :

1. Sistem berbagi memory (Shared memory

system)

Merupakan salah satu cara berkomunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya ditentukan oleh programmer.

Pada metode ini sistem akan mengatur proses mana yang akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif

2.

Sistem berkirim pesan (Message

Passing)

Komunikasi antara proses dan objek dilakukan melalui message passing.

Client melakukan :

1. Mengirim (request) pesan ke server 2. Menerima hasil (reply dari server) Server melakukan :

1. Penerimaan pesan (request) dari client 2. Mengeksekusi permintaan dari client 3. Mengirim hasil (reply) ke client.

(20)

Komunikasi antar proses di dasarkan pada pertukaran suatu format message dengan menggunakan suatu API tertentu.

Proses ini menyediakan dua operasi yaitu mengirim dan menerima pesan. Agar kedua bagian sistem dapat berkomunikasi satu sama lainnya, maka yang harus dilakukan adalah membuat sebuah link komunikasi antara keduanya.

Sistem berkirim pesan sangat penting dalam sistem operasi karena dapat diimplementasikan dalam beberapa hal seperti pembagian memori, pembagian bus, dan melaksanakan proses yang membutuhkan pengerjaan bersama antar beberapa bagian sistem operasi

Client/Server

Client adalah komputer yang mengakses beberapa service yang dibutuhkan. Server adalah komputer yang dapat memberikan service.

Client akan mengirim request ke server lewat jaringan. Jika request dapat dilaksanakan maka server akan memproses dan mengirim balasan berupa service yang diminta.

Karakteristik Client

No. Client Server

1. Pasif Aktif

2. Mengirim request Menerima request

3. Menunggu dan menerima balasan Menerima request, memproses dan mengirim balasan/hasil

Baik client maupun server untuk dapat berhubungan menggunakan Socket.

(21)

SOCKET

Istilah socket telah digunakan dalam dunia komputer untuk menggambarkan konektor yang menghubungkan motherboard dengan prosessor khususnya untuk tipe dekstop dan server (Intel x86), ada juga socket 370 prosessor Intel Pentium 3 dll. Tidak selalu berbentuk socket tapi ada juga yang berbentuk slot.

Adalah tempat dudukan prosessor pada motherboard, berbentuk segi empat dengan lubang-lubang kecil tempat tertancapnya kaki-kaki prosessor yang tersusun membentuk matriks.

Socket dikembangkan dari UNIX BSD, dan saat ini sudah ada pada seluruh UNIX (juga Linux), MS Windows, Mac

Socket menyediakan endpoint untuk komunikasi antar proses di dalam jaringan .

Untuk proses penerima pesan, socket harus di kaitkan dengan port lokal dan satu alamat Internet komputer client

Pesan yang dikirimkan ke suatu alamat Internet dan port tertentu hanya dapat diterima oleh proses yang socketnya dikaitkan dengan alamat Internet dan port tersebut

Proses mungkin menggunakan socket yang sama untuk pengiriman dan penerimaan

Setiap komputer dapat memiliki 216 port.

Sebuah proses dapat membuat beberapa socket untuk menerima pesan

(22)

Sepasang proses berkomunikasi dengan membangun sepasang socket. Socket dibuat dengan menyambungkan 2 buah alamat IP melalui port.

Port yang sama tidak dapat digunakan oleh dua proses yang berbeda (kecuali IP multicasting)

Komunikasi dilakukan antara dua socket yang merepresentasikan dua proses (pengirim dan penerima).

IPC diwujudkan dengan pertukaran pesan antar proses melalui sepasang socket

Secara umum socket digunakan dalam sistem client/ server dimana server menunggu client pada port tertentu, begitu juga client yang akan menghubungi server. Dengan demikian server akan menyetujui komunikasi dengan client melalui socket yang dibangun.

Agar socket dapat berkomunikasi dengan socket lainnya, maka socket membutuhkan suatu alamat yang unik untuk identification.

Alamat Socket terdiri atas Alamat IP (dapat menggunakan alamat jaringan lokal maupun alamat internet ) dan Nomor Port

Karakteristik Socket

Endpoint untuk IPC

Transmisi pesan antar socket

Socket digabung dengan UDP dan TC Nomor port sharing

(23)

Nomor Port dibagi dalam 3 kelompok : Well known port, antara 0 – 1023 Registered Port , antara 1024 – 49151

Dynamic/Private Port, antara 49152 – 65535

Sebagai contoh sebuah program web broser pada host X (IP 146.86.5.4) menggunakan port 1655, ingin berkomunikasi dengan web server IP 152.118.25.15 yang sedang menunggu pada port 80. Sehingga terjadilah sebuah hubungan dengan sepasang socket (146.86.5.4: 1655) dengan (152.118.25.15: 80)

Local Procedure Call : proses client dan server berada dalam satu PC

Remote Procedure Call : Sebuah proses dalam PC local memanggil procedure proses di PC lain

Komunikasi antar object dalam sistem terdistribusi, khususnya menggunakan RMI (Remote Method Invocation) dan RPC (Remote Procedure Call). RMI dan RPC berbasiskan metode request dan reply.

Gambar 1: Model komunikasi dan implementasi layer pada sistem terdistribusi

Request dan reply diimplementasikan pada protokol jaringan.

Network Protocol

Middleware dan aplikasi terdistribusi diimplementasikan di atas protokol network. Protocol diimplementasikan dalam beberapa lapisan (layer).

(24)

Gambar 2.2 : Layer protocol pada Internet

RPC dan RMI berada pada Middleware

Tujuan dari RPC dan RMI dibuat bagi programmer : • agar komputer yang terdistribusi terlihat seperti komputer yang terpusat.

• untuk melihat sistem terdistribusi dari sisi pemrogramman.

Remote Procedure Call (RPC)

Adalah sebuah metode yang memungkinkan untuk mengakses sebuah prosedur yang berada di komputer lain.

RPC (Remote Procedure Call) Proses kurang lebih sama dengan RMI. Pada RMI dikenal Proxy dan Skeleton, pada RPC dikenal dengan Stub (Client Stub dan Server Stub).

Juga memungkinkan sebuah proses client memanggil suatu subrutin beserta parameternya berdasar interface yang disediakan oleh proses server.

(25)

RPC (Remote Procedure Call) Proses kurang lebih sama dengan RMI. Pada RMI dikenal Proxy dan Skeleton, pada RPC dikenal dengan Stub (Client Stub dan Server Stub).

Juga memungkinkan sebuah proses client memanggil suatu subrutin beserta parameternya berdasar interface yang disediakan oleh proses server.

Untuk dapat melakukan ini sebuah server harus menyediakan layanan remote procedure.

RPC (Remote Procedure Call) adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote

system)

RPC mengasumsi keberadaan dari low-level protokol transportasi seperti TCP atau UDP untuk membawa pesan data dalam komunikasi suatu program.

Protokol RPC dibangun diatas protokol eXternal

Data Representation (XDR), yang merupakan standar dari representasi data dalam komunikasi remote.

Protokol XDR mengubah parameter dan hasil dari tiap servis RPC yang disediakan.

(26)

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 menyulitkan 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.

(27)

Prinsip RPC dalam program Client-Server

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

Stub menerima request, unmarshall data, dan

memanggil method yang diminta.

Kemudian proses mengembalikan nilai yang diinginkan

Sebelum mekanisme RPC digunakan, data harus dipacking ke dalam format transmisi, langkah ini dinamakan marshalling

Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan meminta instans dari komponen (remote)

(28)

Langkah-langkah dalam RPC

1. Prosedur client memanggil client stub. Klien memanggil prosedur stublokal. Prosedur Stub akan memberikan parameter dalam suatu paket yangakan dikirim ke jaringan. Proses ini disebut sebagai marshalling.

2. Client stub membuat pesan dan memanggil OS client/local. Fungsi Network pada O/S (Operating system ± Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message.

3. OS client mengirim pesan ke OS server/remote. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupaconnectionless atau connection-oriented.

4. Remote OS memberikan pesan ke server stub. Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim pada network. 5. Server stub meng-unpack parameter2 dan memanggil server. Stub pada server kemudian mengeksekusi prosedur panggilan lokal.

6. Server mengerjakan operasi, dan me- ngembalikan hasilnya ke server stub. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali kestub pada server.

(29)

7. Server stub mem-pack hasil tsb dan memanggil OS lokalnya. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan( hasilnya ) kembali ke jaringan.

8. OS server mengirim pesan (hasil) ke client OS. Message ini akan dikirim kembali ke klien.

9. Client OS memberikan pesan tersebut ke client stub. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan.

10. Client stub meng-unpack hasil dan me-return hasil ke client. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal.

Impelentasi RPC

1.Sun Microsystems ‘ Open network Computing’ 2.Xerox Courier

3. Applo’s Network Computing Architecture’

Remote Method Invocation

Seiring dengan perkembangan teknologi berorientasi objek maka sistem RPC ini dinilai kurang efisien

lagi.

Hal ini dikarenakan programmer dalam membuat aplikasi client server masih harus membuat fungsi-fungsi yang sama untuk aplikasi yang berbeda.

Seperti kode program yang sama digunakan dengan melakukan copy paste dan melakukan sedikit

perubahan untuk menyesuaikan dengan aplikasi yang baru dibuat. Dengan adanya perubahan, maka fungsi tersebut pada masing-masing aplikasi harus di update satu persatu lagi.

(30)

Hal ini mengakibatkan perawatan program menjadi sulit dan fungsi-fungsi tersebut dapat menjadi tidak konsisten satu sama lain.

Maka muncullah RMI bidang pemrograman berorientasi objek

Remote Method Invocation (RMI) adalah sebuah teknik pemanggilan method remote dengan menggunakan paradigma pemrograman berorientasi obyek (Object Oriented Programming).

RMI memungkinkan untuk mengirim obyek sebagai parameter dari remote method.

User dapat mengembangkan aplikasi java yang terdistribusi pada jaringan dengan menggunakan RMI karena program java diperbolehkan memanggil method pada remote objek

Tujuannya

1. Menyediakan fasilitas bagi programmer untuk dapat mendistribusikan objek yang digunakan pada beberapa proses yang berbeda.

2. Dapat berjalan dalam satu mesin ataupun di beberapa mesin yang terhubung dengan jaringan.

Aplikasi RMI terdiri dari 2 program terpisah yaitu:

-. Aplikasi Server umumnya membuat beberapa objek remote dengan menyediakan referensi terhadap objek-objek agar dapat diakses serta menunggu client memanggil method dari objek-objek remote tersebut (merequest server)

-. Aplikasi client mendapatkan referensi remote ke satu atau lebih objek remote di server dan menjalankan method dari objek tersebut.

(31)

Implementasi RMI

Ilustrasi yang terjadi pada method RMI Programmer pada client menulis :

Pada sisi server mempunyai fungsi sebagai berikut :

Programmer pada client tidak mengetahui bahwa reply message yang didapatkan berasal dari server yang dikirim melalui jaringan.

Gambar: Ilustrasi implementasi RMI

Komponen-komponen dalam RMI (gambar ) :

 Object A(client) : meminta layanan

 Object B(server) : menghantarkan layanan  Proxy for B

(32)

- Ketika object A mempunyai remote reference ke object B, maka akan timbul objek proxy B pada host object A. Proxy terbentuk ketika remote object reference digunakan pertama kali.

- Proxy adalah perwakilan objek yang berada pada remote, dengan kata lain ketika terjadi invokasi dari A ke B ditangani seolah – olah hanya mengakses Proxy B.

- Ketika invokasi terjadi proxy menggunakan metode marshals untuk membungkus pesan yang akan dikirim ke server. Dan setelah menerima hasil dari server proxy menggunakan metode unmarshal (membuka bungkus) untuk kemudian diteruskan ke client (Object A).

 Skeleton for object B

- Pada sisi server, terdapat object kerangka (skeleton) yang berhubungan ke class, kalau object pada class tersebut dapat diakses oleh RMI.

- Skeleton menerima pesan kemudian melakukan unmarshal dan meneruskan ke method object yang dituju. Dan kemudian menunggu hasil dari object B dan kemudian membungkus hasil (unmarshal) dan kemudian dikirimkan ke client (Objec A).

- Ada bagian dari skeleton B yang disebut dengan dispatcher. Dispatcher menerima request dari communication module, dan kemudian mengidentifikasi invokasi dan mengarahkan permintaan ke corresponding method ( method pada skeleton yang berfungsi untuk berkomunikasi dengan object).

 Communication Modul (Modul Komunikasi)

- Communication modul pada client atau server bertanggung jawab dalam pertukaran pesan yang dilakukan melalui metode request dan reply.

(33)

 Remote Reference Module

- Bagian ini bertugas untuk menterjemahkan antara referensi objek lokal dan remote. Proses berkomunikasi antar refensi objek dan lokal disimpan dalam remote object table.

- Yang menggenerate class untuk proxy dan skeleton adalah middleware.

- Contoh : CORBA, Java RMI

Object A dan object B dipunyai oleh aplikasi (berada pada Application Layer) Remote Reference Modul dan Communication modul dimiliki oleh middleware. Proxy B dan Sekeleton B berada antara middleware dan aplikasi yang di generate oleh middleware.

Langkah-langkah proses dengan RMI :

Urutan pemanggilan pada object client

mengaktifkan method pada proxy yang akan berhubungan dengan invoked method (method yang ter-invokasi) pada object B.

1. Kemudian method yang ada pada proxy melakukan pembungkusan argumen menjadi suatu pesan (marshalling) dan meneruskan ke modul komunikasi.

2. Berdasarkan pada remote reference yang didapat dari remote reference modul, modul komunikasi memulai request dan reply protocol melalui network.

3. Modul komunikasi pada server menerima request dari client. Kemudian berdasarkan referensi lokal yang diterima dari remote reference modul maka akan mengaktifkan method untuk berkomunikasi dengan object pada skeleton B (corresponding method).

(34)

4. Method pada skeleton meng-ekstrak (unmarshalling) argumen pada pesan yang di terima dan mengaktifkan corresponding method (method yang berfungsi untuk melakukan komunikasi) pada object B (server).

5. Setelah menerima hasil dari object B, method dari skeleton akan membungkus hasil tersebut dalam sebuah pesan (marshalling) dan meneruskan pesan yang sudah dibungkus ke modul komunikasi.

6. Modul komunikasi mengrimkan pesan tersebut ke client melalui jaringan.

7. Modul komunikasi pada client menerima hasil (reply) dari server dan meneruskan ke corresponding method pada proxy.

8. Kemudian proxy meng-ektrak hasil (unmarshalling) dan meneruskan ke object A (client).

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

Hal-hal yang sering kali dilakukan aplikasi objek terdistribusi adalah

• 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.

(35)

• 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 di bawah ini menggambarkan sebuah sistem RMI dengan menggunakan web srver untuk memanggil class bytecodes, dari server ke client dan dari client ke server untuk objek-objek yang diperlukan :

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.

Membuat Program dengan RMI

Di dalam RMI semua informasi tentang satu pelayanan srver disediakan dalam suatu definisi remote interface. Programmer dapat memberitahukan metod apa yang dapat dikerjakan oleh server yang meliputi data apa yang diterima dan data apa yang akan dikirim sebagai tanggapan.

(36)

Definisi pada remote interface menentukan karakteristik methods yang disediakan server yang dapat dilihat oleh client.

Client programmer harus dapat mengetahui methods apa yang disediakan server dan bagaimana memanggilnya langsung dengan cara melihat ke remote interface. Maka client akan memperoleh referensi ke remote objek melalui RMI registry

Contoh RMI dengan menggunakan Java RMI : Server object akan mencetak ”Hello Ruddy” ke layar & mengembalikan pesan ke klien

Pada sisi server : - Server Method

import java.rmi.*;

public interface SimpleInterface

String printMessage(String name) throws RemoteException;

}

- Server Object

import java.rmi.*;

import java.rmi.server.*;

public class SimpleServer extends UnicastRemoteObject implements SimpleInterfac

public SimpleServer() throws RemoteException { super(); }

public String printMessage(String name) throws RemoteException {

System.out.println(name);

return(Hello + name);

}

public static void main(String args[]) {

System.setSecurityManager(new RMISecurityManager());

try {

SimpleServer newServer = new SimpleServer();

System.out.println(SimpleServer attempting to

bind to the registry);

Naming.rebind(//ruddy.info:30010/SimpleServer,

(37)

System.out.println(SimpleServer bound in the registry);

} catch(Exception e) {System.out.println(SimpleServer error: + e.getMessage());

e.printStackTrace();

}}

}

Pada sisi client :

import java.rmi.*;

public class SimpleClient {

private static SImpleInterface server = null;

public static void main(String args[]) {

try {

server = (SimpleInterface)

Naming.lookup(//ruddy.info:30010/SimpleServer);

System.out.println(server.printMessage (Ruddy));

} catch(Exception e) {

System.out.println(SimpleClient error: + e.getMessage());

e.printStackTrace();

}}

}

Langkah-langkah membangun

suatu

aplikasi terdistribusi menggunakan RMI

adalah

1. Mendefinisikan remote interface

2. Implementasi Remote Interface dan Server

a.Mendekralasikan bahwa kelas tersebut mengimplementasikan remote interface

b. Menentukan satu implementasi untuk tiap remote method

c. Menyediakan satu implementasi untuk tiap remote method

d.Membuat danmenginstall satu security manager e. Membuat satu atau lebih instance dari remote

object

(38)

3. Pengembangan Client (applet) yang Menggunakan Remote Interface.

Program applet yang dikembangkan

a.Applet mengambil referensi ke remote object implementasi dari rmiregistry pada server host b. Applet memanggil remote method pada remote object

4. Mengkompilasi Source Files dan Membuat

Stub dan Skeleton.

5. Memulai RMI Registry

6. Menjalankan Server dan Client

RPC Relatif mudah digunakan :

Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level details seperti socket, marshalling &

unmarshalling

-. Tidak fleksibel terhadap perubahan: karena adanya hubungan statis antara client & server saat

run-time.

-. Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan OOP.

Gambar

Gambar  1:  Model  komunikasi  dan  implementasi  layer  pada  sistem  terdistribusi
Gambar 2.2 : Layer protocol pada Internet
Ilustrasi yang terjadi pada method RMI  Programmer pada client menulis :
Ilustrasi  di  bawah  ini    menggambarkan    sebuah  sistem  RMI dengan menggunakan web srver untuk  memanggil  class  bytecodes,  dari  server  ke  client  dan  dari  client    ke  server  untuk  objek-objek  yang  diperlukan :

Referensi

Dokumen terkait

yang diamati, meliputi jumlah telur yang dihasilkan dari setiap individu betina, daya tetas telur, jumlah nauplii yang dihasilkan, sintasannya sampai stadia copepodit dan

Adapun hasil jawaban kuesioner kepuasan masyarakat pengguna layanan pengadilan, ruang lingkup waktu pelayanan disajikan pada tabel berikut ini... Biaya Tarif

Hal ini disebabkan indeks harga yang dibayar petani mengalami peningkatan lebih besar dibandingkan dengan indeks yang diterima si petani, dengan masing-masing sebesar 0.12

Namun, pada orang dewasa yang mengalami fraktur tulang, tulang masih dapat mengalami remodeling karena lapisan periosteum dan endosteum yang banyak mengandung sel osteoblas

Di )alam *erpen ini tokoh Ba)run )igam-arkan se-agai seorang )engan perasaan -ersalah atau perasaan ren)ah )iri ang kuat )an ego ang lemah akan mengalami -anak kon+lik karena

untuk mengetahui kesalahan siswa dalam mengerjakan soal operasi hitung pecahan. Peneliti menemukan tipe kesalahan yang dilakukan siswa dalam menyelesaikan soal

Dalam proses penelitian ini ditunjukkan untuk mengetahui hubungan antara titer antibodi terhadap virus rabies dengan risiko masuknya penyakit rabies dari negara yang belum

a) Tingkat pengetahuan keluarga tentang skizofrenia di Poli Jiwa Rumah Sakit Jiwa Grhasia keluarga yang merawat anggota keluarga penderita skizofrenia mempunyai mean