Anda di halaman 1dari 47

Sistem terdistribusi 3

Interprocess Communication

Prinsip berkomunikasi
Source S
generates data (text/binary) to be transmitted

Transmitter
Converts data into transmittable signals

Transmission System
Carries data
Ex: TCP/IP

Receiver
Converts C t received i d signal i li into t d data t

Destination
Takes incoming data

I t Interprocess Communication C i ti
Processes within a system may be independent or cooperating Process on different computer? Reasons for cooperating processes:
Information sharing Computation speedup Modularity Convenience

Cooperating processes need interprocess communication (IPC) Two models of IPC


Shared memor memory Message passing

Communications in local

Karakteristik IPC
S Synchronization h i ti d dan Asynchronization A h i ti of f messages. Message destination : on Internet, using p address dan local port.
http://192.168.1.2:8081

Reliability data: validity dan integrity integrity. Ordering data: urutan paket yang dikirim Different data processing: g g marshalling/unmarshalling

Kategori IPC
Pipes : merupakan fasilitas yang menyediakan komunikasi satu arah antar proses dalam sebuah sistem atau disebut half-duplex, yaitu data mengalir h hanya t terjadi j di satu t arah. h (local (l l computer) t ) FIFO : fasilitas komunikasi secara FIFO (first in first out). Mirip dengan Pipes Message diantrikan Terjadi e jad d di local oca co computer pute Shared memory : suatu proses berbagi ruang dalam virtual address, sehingga proses manapun akan berbagi wilayah memory akan mampu menulis dan membacanya. g processing g( (local computer) ) Dalam single

Kategori IPC
Mapped memory : berhubungan dengan mapping sebuah file dalam file system sesuai dengan memory yang ada.
Konsep virtual memory Local computer

Message essage Queues :mengirim e g pesa pesan seca secara a asynchronous.


Asynchronous berarti proses pengiriman data berlanjut disertai sebuah eksekusi tanpa harus menunggu penerima menerima atau mengenal informasi tersebut.

Kategori IPC
S Semaphore h : struktur t kt data d t yang di share h k ke beberapa proses untuk sinkronisasi Socket : sebagai endpoint dari komunikasi dua proses pada dua buah sistem komputer. RPC (Remote Procedure Call): adalah sebuah protokol yang memungkinkan program komputer berjalan pada satu host dan mengakibatkan k d d kode dapat t di dieksekusi k k i pada d h host t yang l lain i t tanpa kebutuhan koneksi secara eksplisit.

Ordinary Pipes
Ordinary Pipes allow communication in standard parent-child style write Producer (parent) writes to one end (the write end of the pipe) Consumer (child) reads from the other end (the read-end d d of f the h pipe) i ) Require parent-child relationship between communicating processes A parent program opens anonymous pipes, and creates a new process and communicate using these pipes, or creates several new processes and arranges them

ls -l | less

Pipe

U i FIFO as queue scheme Using h

E Example l i in UNIX

l -l ls l | less l

Named Pipes
N Named d Pi Pipes are more powerful f l than th ordinary di pipes A named pipe is one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a named pipe share the same pipe name, but each instance has its own buffers Multiple M lti l pipe i clients li t can use the th same named d pipe i simultaneously (system-persistent) No parent-child parent child relationship is necessary between the communicating processes Provided on both UNIX and Windows systems

Named Pipe In UNIX

Message Passing
z

Maybe provide latency, latency incompatibilities

Message Passing
Basic B i O Operations ti
Send > kirim message Receive R i > terima t i message

Variations
Connection-oriented C vs Connectionless C Buffered vs Unbuffered Reliable R li bl vs U Unreliable li bl

Data representation
Marshalling M h lli & unmarshalling h lli > pemformatan f t message

Communication Link
Properties of communication link
Links sa are e es established ab s ed au automatically o a ca y A link usually is associated with exactly one pair of communicating processes Between each pair there exists exactly one link The link may be unidirectional, but is usually bi di bi-directional i l

Di t C Direct Communication i ti
Processes must name each other explicitly:
send (P, message) send a message to process P receive i (Q, Q message) receive i a message f from process Q

Properties of direct communication


Links Li k are established t bli h d automatically t ti ll A link is associated with exactly one pair of communicating processes Between each pair there exists exactly one link The link may be unidirectional, but is usually bi-directional

I di t Communication Indirect C i ti
Messages are directed and received from ports
Each port has a unique id Well known ports: 0-1023 Recommended : > 1024 - 65535 Processes can communicate only if they share a port

Properties of indirect communication link


Link established only if processes share a common port A link may be associated with many processes Each pair of processes may share several communication links Link may be unidirectional or bi-directional

I di t Communication Indirect C i ti
Operations
create a new/open port send and receive messages through port destroy yap port

Primitives are defined as:


send(A, A message) send a message to port A receive(A, message) receive a message from port A

I di t Communication Indirect C i ti
Port sharing P1, P2, and P3 share port A P1, sends; d P2 and d P3 receive i Who gets the message? Solutions S l i Allow a link to be associated with at most two processes All Allow only l one process at t a time ti to t execute t a receive i operation Allow all processes receive the message Allow the system to select arbitrarily the receiver. Sender is notified who the receiver was was.

Model comm: Syn & Asyn


Synchronous S h communication i ti
Acknowledge must be received Bl ki communication Blocking i ti Sender/Recipient must both active Example: Registration system / Chatting No acknowledge N k l d needed d d Non-blocking communication Message may be queued Example: Email / Instant Messenger

Asynchronous communication

Transient & Persistent Comm Comm.


Transient Communication
Message essage d discarded sca ded if failed a ed to o de delivered e ed immediately Example: HTTP Request

Persistent Communication
Message stored until receiver can accept it Example: p Email, , Messenger g

Group Communications
z

Multicast: sent to specific group


z

Sender tidak tahu identitas penerima dan berapa yang menerima

z z

Broadcast oadcast: se sent to oe everyone e yo e Used for


z z z

Replication of f services/data / Service discovery Event notification

Group Communications

Komunikasi Jaringan

Remember: OSI

OSI Layers (1)


Physical Ph i l
Physical interface between devices
Mechanical M h i l Electrical Functional Procedural

Contoh: Ethernet CARD

Data Link
Means of activating, maintaining and deactivating a reliable li bl li link k Error detection Contoh: PPP, PPP Router

OSI Layers (2)


Network N t k
Transport of information Contoh: Virtual Circuit & Internet Protocol

Transport
Exchange of data between end systems Error free In sequence / No sequence No losses / losses No duplicates / duplicates Quality of service Contoh: TCP dan UDP

OSI Layers (3)


Session S i
Control of dialogues between applications Recovery

Presentation
Data formats and coding Data compression Encryption Contoh: SSL

Application
M Means f for applications li i to access OSI environment i Contoh: HTTP, FTP, SMTP

The Message

Konsep Pengiriman Data


Data dikirim dalam bentuk paket Setiap paket memiliki header untuk keperluan administrasi routing Data D t disimpan di i d dalam l b d sebuah body b h paket k t Ukuran paket sangat bervariasi
Ethernet: 64 1518 byte

Bisa Bi diki dikirimkan i k d dengan TCP/UDP

TCP dan UDP


Dua protokol pada transport layer Menggunakan konsep port (16 bit) untuk membedakan aplikasi
HTTP: HTTP 80, 80 HTTPS: HTTPS 443, 443 FTP: FTP 21, 21 ...... Port 1-1023 : well-known port Port 1024-49151 : registered port Port lain bisa digunakan secara bebas Di Linux: /etc/services

TCP
Transmission T i i C Control t lP Protocol, t l pada d t transport tl layer
Reliable connection

Adanya pengecekan error Dijaga urutan message Komunikasi duplex dua arah Segmentasi - TCP PDU
Called TCP segment Includes source and destination port
Identify applications Connection refers to pair of ports

TCP tracks segments between entities on each connection

UDP
User Datagram Protocol Not guaranteed delivery No preservation of sequence No protection against duplication Minimum overhead Adds port addressing to IP Contoh: DNS, streaming

Request / Reply

Review Failure model


Process failure: crash
Deteksi e e s dg dgn timeout eou

Communication failure: message drop


Karena: K transmission t i i error, buffer b ff overflow fl

Arbitrary y failure: p proses melewatkan step p yang harus dilakukan atau membawa data yg salah
Data korup, data double

Mekanisme handle failure Model of IPC


Timeout, jika tidak dapat balasan, p akan mengirim g method doOperation terus request message sampai timeout. Duplicate request message, server menerima lebih dari sekali request message sehingga memprosesnya g berulangkali.
solusi : request identifier & filter out duplicate.

Failure Model of IPC


Lost L t reply l message, server dapat menyimpan hasil proses request message, jika ada request message yang sama tidak perlu diproses ulang, server mengirim reply message berupa hasil proses dari request message yang telah t l h di disimpan. i History, server menyimpan struktur rekaman reply message yang telah dikirim.

Socket
M Menyediakan di k jembatan j b t komunikasi k ik i antar t proses Komunikasi K ik i antar t proses: mengirimkan ii k pesan antar socket pada satu proses menuju sebuah socket pada proses lain Bisa menggunakan TCP/UDP
C Connection i oriented i dd dan connectionless i l oriented

M Melakukan l k k binding bi di ke k sebuah b h port t tertentu

Sockets and ports

socket

any port

agreed port socket

message client other ports Internet address = 138.37.94.248 Internet address = 138.37.88.249 server

Operasi Socket
Socket dapat melakukan operasi:
Koneksi ke mesin remote Mengirim data Menerima data Mentutup koneksi Bind to a port

Di tiap mesin yang saling berinterkoneksi, harus terpasang socket.


Hard coded

Masalah Socket
I Informasi f i pada d program : struktur t kt data d t Informasi pada p message g : urutan byte y Data harus dikonversi sebelum dan sesudah pengiriman agar bisa diproses dua pihak Masalah : representasi pada sistem bisa berbeda-beda
ASCII vs Unicode Big-endian vs Little-endian

Big vs Little Endian system

Marshalling / Unmarshalling
Marshalling : proses konversi data menjadi yang g cocok/tepat p untuk transmisi bentuk y pesan antar host
Unmarshalling : proses kebalikannya

Pendekatan yang umum digunakan:


CORBA dan RMI Marshalling Java serialization XML XML RPC, Web Services

Contoh Pengiriman g Data CORBA message


index in sequence of bytes 03 47 811 1215 16 19 1619 20-23 2427 4 bytes 5 "Smit" "h " 6 "Lond" "on__" 1934 notes p on representation length of string Smith length of string London London unsigned long

The flattened form represents a Person

struct with value: {Smith, London, 1934}

Indication of Java serialized form


Serialized values
Person

Explanation p class name, version number


java.lang.String

8-byte version number

3 1934

int year 5 Smith

java.lang.String

name: 6 London

place:

number, , type yp and name of instance variables values of instance variables

XML definition of the Person structure


<person id="123456789"> id= 123456789 > <name>Smith</name> <place>London</place> <year>1934</year> <!-- a comment --> </person / >

NEXT
Pemrograman Socket
Sumber: Su be Distributed s bu ed Sys Systems e sC Chapter ap e 4 khusus pemrograman socket, George Sumber: An introduction to network programming with Java, Jan Graba

Buatlah: B tl h
Pengertian, cara kerja Contoh program socket connection oriented + connectionless oriented

Anda mungkin juga menyukai