Introduction
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 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.
- 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
b. Untuk
menyediakan validitas, TCP menggunakan timeout dan retransmisi terhadap data
yang hilang
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
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 longf
};
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 (XML)
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> pasangan tag. Perhatikan bahwa elemen
dengan tag tertutup dalam elemen dengan
id="123456789">
</ 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 :
Desepta Isna Ulumi 1103110224
Tidak ada komentar:
Posting Komentar