Total Tayangan Halaman

Pages

Sabtu, 08 Maret 2014

4. INTERPROCESS COMMUNICATION Bagian 1

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

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