Komunikasi Antar-Proses (Inter-process
communication)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.
Sistem Terdistribusi
Sistem Terdistribusi
- terdiri dari komponen (processes, objects) yang berkomunikasi untuk kooperasi dan sinkronisasi
- melakukan pengiriman pesan (message passing) karena tidak terdapat shared memori
Middleware menyediakan dukungan bahasa
pemrograman, yang memiliki sifat :
- tidak mendukung low-level untyped data primitives (yg merupakan fungsi sistem operasi)
- mengimplementasikan higher-level language primitives + typed data
The API for the Internet protocols
1.
The characteristics of interprocess
communication
·
Message
destination
proses komunikasi
antar bagian sistem untuk membagi variabel yang dibutuhkan. Ada dua proses
yaitu mengirim dan menerima pesan. Namun sebelumnya melakukan link terlebih
dahulu. Selanjutnya dapat bertukar pesan melalui link tersebut.
·
Raliability
mendefinisikankomunikasi
yang handaldalam halvaliditasdan
integritas.
integritas.
·
Oredering
urutan
pesan mana saja yang harus dikirim terlebih dahulu.
2.
Sockets
·
Characteristics:
–
endpoint for inter-process communication
– message transmission
between sockets
–
socket associated with either UDP or TCP
–
processes bound to sockets, can use multiple ports
–
no port sharing unless IP multicast
·
Implementations
–
originally BSD Unix, but available in Linux, Windows,…
– here Java API
for Internet programming
3.
UDP Datagram Communication
adalah
satu anggota inti dari protokol internet (set protokol jaringan yang
digunakan untuk Internet ).Dengan UDP, aplikasi komputer dapat mengirim pesan,
dalam hal ini disebut sebagai datagram , ke host lain pada Internet Protocol (IP) jaringan tanpa
komunikasi sebelum mengatur saluran transmisi khusus atau jalur data.
4.
TCP Stream Communication
·
Kapan menggunakan
TCP?
a. Kebutuhan pengiriman paket data yang dinamis
tanpa harus menyesuaikan dengan ukuran paket TCP
b. Jika memang dapat menerima operasi blocking
·
Model Kegagalan :
a. Untuk menyediakan komunikasi yang handal, TCP
menggunakan checksum untuk pendeteksian error dan sequence number untuk
pendeteksian duplikasi data
Representasi Data Eksternal dan Marshaling
Informasi yang disimpan dalam menjalankan
program ini direpresentasikan sebagai struktur data - misalnya, dengan set
benda-benda yang saling berhubungan - sedangkan informasi dalam pesan terdiri
dari urutan byte.
Item data primitif individu ditransmisikan
dalam pesan dapat nilai data dari berbagai jenis, dan tidak semua komputer
menyimpan nilai-nilai primitif seperti integer dalam urutan yang sama.
Representasi bilangan floating-point juga berbeda antara arsitektur Salah satu
metode berikut dapat digunakan untuk mengaktifkan dua komputer untuk pertukaran
nilai data biner
Nilai-nilai tersebut dikonversi ke format
eksternal disepakati sebelum transmisi dan dikonversi ke bentuk lokal pada
tanda terima, jika dua komputer yang dikenal sebagai jenis yang sama, konversi
ke format eksternal dapat dihilangkan.
Nilai-nilai yang ditransmisikan dalam
format pengirim, bersama dengan indikasi format yang digunakan, dan penerima
mengubah nilai jika perlu.
Untuk mendukung RMI atau RPC, jenis data
yang dapat dilewatkan sebagai argumen atau dikembalikan sebagai hasilnya harus
dapat diratakan dan nilai-nilai data
primitif individu diwakili dalam format yang telah disepakati. Sebuah standar
untuk representasi struktur data dan nilai-nilai primitif disebut representasi
data eksternal.
Marshalling adalah proses mengambil koleksi
item data dan perakitan mereka ke dalam bentuk yang sesuai untuk transmisi
dalam pesan. Unmarshallingis proses pembongkaran mereka pada saat kedatangan untuk
menghasilkan koleksi setara dengan item data di tempat tujuan. Dengan demikian
menyusun terdiri dari penjabaran item data terstruktur dan nilai-nilai primitif
menjadi representasi data eksternal.Demikian pula, unmarshalling terdiri dari
generasi nilai-nilai primitif dari representasi data eksternal dan pembangunan
kembali struktur data.
Tiga pendekatan alternatif untuk
representasi data eksternal dan marshalling dibahas (dengan keempat
dipertimbangkan dalam Bab 21, ketika kita meneliti pendekatan Google untuk
mewakili data terstruktur):
·
CORBA
·
Java Obyek serialisasi (Java
Object Serialization)
·
XML (Extensible Markup
Language)
Dalam dua kasus pertama, kegiatan
marshalling dan unmarshalling dimaksudkan untuk dilakukan oleh lapisan
middleware tanpa keterlibatan pada bagian dari programmer aplikasi. Bahkan
dalam kasus XML, yang tekstual dan karena itu lebih mudah diakses oleh
tangan-encoding, perangkat lunak untuk marshalling dan unmarshalling yang
tersedia untuk semua platform umum digunakan dan lingkungan pemrograman.
Dalam dua pendekatan pertama, tipe data
primitif yang disusun kedalam bentuk biner.Dalam pendekatan ketiga (XML), tipe
data primitif yang diwakili secara tekstual.
Java menempatkan semua jenis informasi yang
diperlukan ke dalam bentuk serial, tetapi dokumen-dokumen XML dapat merujuk
kepada eksternal didefinisikan set nama (dengan tipe) yang disebut namespaces.
CORBA
CORBA CDR adalah representasi data
eksternal didefinisikan dengan CORBA 2.0 [OMG 2004a]. CDR dapat mewakili semua
jenis data yang dapat digunakan sebagai argumen dan kembali nilai-nilai dalam
doa terpencil di CORBA. Ini terdiri dari 15primitive jenis, yang meliputi short
(16-bit), Long (32-bit), unsigned short, unsigned long, float (32-bit), ganda
(64-bit), char, boolean (TRUE, FALSE) , octet (8-bit), dan setiap (yang dapat
mewakili tipe dasar atau dibangun) jenis
Primitif: CDR mendefinisikan representasi untuk kedua pengurutan big-endian dan
little-endian, penerima menerjemahkan
jika membutuhkan pemesanan yang berbeda. Sebagai contoh, 16-bit bit
pendekmenempati dua byte dalam pesan, dan untuk pemesanan big-endian, bit yang
paling signifikan menempati byte pertama dan bit paling signifikan menempati byte
keduatipe Construct: Nilai-nilai primitif yang dibangun terdiri dari
masing-masing jenis ditambahkan ke urutan byte dalam urutan tertentu tiga
bidang struct yang masing-masing jenis adalah string, string dan unsigned long,
unsigned long mewakili panjangnya diikuti oleh karakter dalam string
masing-masing karakter menempati satu byte.. Variable-length data diisi dengan
nol sehingga memiliki bentuk standar, yang memungkinkan data yang di marshall
atau checksum untuk dibandingkan. Perhatikan bahwa setiap unsigned panjang,
yang menempati empat byte
Angka tersebut tidak membedakan antara pengurutanbig-endian
dan little-endian. Meskipun contoh di Gambar 4.8 sederhana, CORBA CDR dapat
mewakili struktur data yang dapat terdiri dari tipe primitif dan dibangun,
tetapi tanpa menggunakan pointer.
Jenis item data tidak diberikan dengan
representasi data dalam pesan baik dalam CORBA CDR atau standar Sun XDR. Hal
ini karena diasumsikan bahwa pengirim dan penerima memiliki pengetahuan umum
dari urutan dan jenis item data dalam pesan.
Marshalling dalam CORBA • Marshalling dapat
dihasilkan secara otomatis dari spesifikasi jenis item data yang akan
dikirimkan dalam pesan. kita bisa menggunakan CORBA IDL untuk menggambarkan
struktur data dalam pesan sebagai berikut
struct Person {
nama string;
String tempat;
tahun unsigned panjang;
};
Antarmuka CORBA compiler (lihat Bab 5)
menghasilkan marshalling yang tepat dan operasi unmarshalling untuk argumen dan
hasil metode jauh dari definisi jenis parameter dan hasil.
Java Obyek serialisasi (Java Object Serialization)
Di Java RMI, kedua objek dan nilai-nilai data
primitif dapat dilewatkan sebagai argumen dan hasil metode permintaan.
Menyatakan bahwa kelas mengimplementasikan Serializableinterface (yang
disediakan di java.iopackage) memiliki efek yang memungkinkan contoh untuk
serial.Di Java, serialisasi merujuk pada aktivitas perataan suatu obyek atau
satu set terhubung objek ke dalam bentuk serial yang cocok untuk menyimpan pada
disk atau transmisi dalam pesan, Hal ini diasumsikan bahwa proses yang tidak
deserialization tidak memiliki sebelumnya pengetahuan tentang jenis objek dalam
bentuk serial
Proses yang deserialisasi sebuah obyek
dapat memeriksa bahwa ia memiliki versi yang benar dari kelas.
Objek Java dapat berisi referensi ke objek
lain. Ketika suatu objek serial, semua benda yang referensi serial bersama-sama
dengan itu untuk memastikan bahwa ketika objek direkonstruksi, semua referensi
yang dapat dipenuhi di tempat tujuan. Referensi yang serial sebagai pegangan
Prosedur serialisasi harus memastikan bahwa
ada korespondensi 1-1 antara objek
referensi dan pegangan Untuk serialize
sebuah objek, informasi kelasnya ditulis keluar, diikuti oleh tipe
dan nama-nama variabel instance nya. Setiap
kelas diberi pegangan, dan tidak ada kelas yang ditulis lebih dari sekali ke
aliran byte (pegangan yang ditulis bukan di mana diperlukan). Isi variabel
instance yang tipe primitif, seperti integer, karakter, boolean, byte dan
rindu, ditulis dalam format biner portabel menggunakan metode dari kelas
ObjectOutputStream. Pertama variabel contoh (1984) adalah integer yang memiliki
panjang tetap, variabel instance kedua dan ketiga adalah string dan didahului
oleh panjang mereka Untuk memanfaatkan Java serialisasi, misalnya untuk cerita
bersambung Personobject,
membuat sebuah instance dari
ObjectOutputStream kelas dan memanggil writeObjectmethod nya, melewati
Personobject sebagai serialisasi argumen dan deserialization argumen dan hasil
remote
Permintaan umumnya dilakukan secara
otomatis oleh middleware, tanpa partisipasi oleh programmer aplikasi, Cara lain
di mana programmer dapat memodifikasi efek serialisasi adalah dengan variabel
yang menyatakan bahwa tidak boleh serial sebagai transient
Bahasa Java mendukung refleksi-kemampuan
untuk menanyakan tentang sifat-sifat kelas, seperti nama dan jenis variabel
instance dan metode. Hal ini juga memungkinkan kelas yang akan dibuat dari
nama-nama mereka, dan konstruktor dengan jenis argumen yang diberikan yang
harus dibuat untuk kelas tertentu. Refleksi memungkinkan untuk melakukan
serialisasi dan deserialization dengan cara yang benar-benar generik. Ini
berarti bahwa tidak ada kebutuhan untuk menghasilkan fungsi marshalling khusus
untuk setiap jenis objek, Java serialisasi objek menggunakan refleksi untuk
mengetahui nama kelas obyek untuk menjadi serial dan nama-nama, jenis dan
nilai-nilai variabel instance nya. nama kelas dalam bentuk serial digunakan
untuk membuat kelas
Extensible Markup Language
Secara umum, bahasa markup merujuk ke
encoding tekstual yang mewakili kedua teks dan rincian sebagai struktur atau
penampilan. Kedua XML dan HTML berasal dari SGML (Standarized
Generalized Markup Language) [ISO 8879],
sangat kompleks XML adalah bahasa markup
dirancang untuk menulis dokumen terstruktur
untuk Web. XML digunakan untuk memungkinkan klien untuk berkomunikasi dengan
layanan web dan untuk mendefinisikan antarmuka dan properti lainnya dari
layanan web.termasuk dalam pengarsipan dan sistem pengambilan, ML arsip mungkin
lebih besar dari satu biner, dibaca di komputer manapun.
Definisi XML dari Person
struktur yang digunakan untuk menggambarkan
marshalling di CORBA CDR dan Java struktur dokumen XML didefinisikan oleh
pasangantag tertutup dalam kurung sudut Komentar di XML
dilambangkan dengan cara yang sama seperti
yang di HTML
Sebuah elemen dalam XML terdiri dari bagian
data karakter dikelilingi oleh
pencocokan awal dan akhir tag <name>
... </ name> pasangan tag. Perhatikan bahwa elemen
dengan tag <name> tertutup dalam
elemen dengan id="123456789"><person ...
</ Orang> pasangan tag Atribut:
Sebuah tag awal mungkin opsional termasuk pasang nama atribut terkait dan
nilai-nilai seperti id =
"123456789", seperti yang ditunjukkan di atas
Ini adalah masalah pilihan untuk yang item
yang direpresentasikan sebagai elemen dan yang
yang sebagai atribut
Jauh Object Reference
Ketika klien memanggil metode dalam objek
remote, pesan doa dikirim ke proses server thathosts objek remote. Pesan ini
perlu untuk menentukan objek tertentu adalah memiliki metode yang dipanggil.
Sebuah objek remote referenceis pengidentifikasi untuk objek remote yang
berlaku di seluruh sistem terdistribusi jauh obyek referensi harus dihasilkan
dengan cara yang menjamin keunikan
atas ruang dan waktu mungkin banyak proses
hosting yang objek remote Ada beberapa cara untuk memastikan bahwa remote
object reference unik. Salah satu cara adalah untuk membangun sebuah referensi
objek remote dengan menggabungkan alamat Internet dari komputer host dan nomor
port dari proses yang menciptakannya dengan waktu penciptaannya dan sejumlah
objek lokal. Jumlah objek lokal bertambah setiap kali sebuah objek dibuat dalam
proses tersebut. Nomor port dan waktu bersama-sama menghasilkan identifier unik
pada proses yang computer.The sistem overlay peer-to-peer yang dijelaskan dalam
Bab 10 menggunakan bentuk remote object reference yang benar-benar independen
dari lokasi. Pesan akan diarahkan ke sumber daya melalui suatu algoritma
routing terdistribusi.
Oleh :
Muhammad Hanif Abdillah 1103110165
Elly Susilowati 1103110217
Desepta Isna Ulumi 1103110224
0 komentar:
Posting Komentar