Pemrograman Jaringan 12 CORBA

dokumen-dokumen yang mirip
Sistem Terdistribusi 5. Invocation

Distributed Object CORBA and RMI

Common Object Request Broker Architecture (CORBA) (Minggu 4 Praktikum 1)

DISTRIBUTED OBJECT CORBA & RMI. Sistem terdistribusi week 13

Pada Java, sebuah objek remote adalah instans dari suatu kelas yang mengimplementasikan antarmuka remote.

BAB V Remote Procedure Call (RPC)

BAB 1 PENDAHULUAN 1.1 Pendahuluan

APLIKASI PENCARI IDL DAN OBJEK PADA SISTEM TERDISTRIBUSI BERBASIS CORBA

PROSES, OBJEK DAN LAYANAN TERDISTRIBUSI

MEMBANGUN APLIKASI TERDISTRIBUSI DENGAN CORBA DAN JAVA. Emha Taufiq Luthfi

Objek Terdistribusi dan Remote Invocation. I Made Andhika, S.Kom

2.1. Sistem Komunikasi

KOMUNIKASI PENGANTAR DATA TERDISTRIBUSI. Materi: 1. Komunikasi Data 2. Protocol 3. Remote Procedure Call 4. Object Remote

PERBANDINGAN PENGGUNAAN 4 ORB BERBEDA PADA APLIKASI OBYEK TERDISTRIBUSI

TPI4202 e-tp.ub.ac.id

TUGAS SISTEM INFORMASI BERBASIS WEB. PHP Web Service. Nama : Ilham NIM : Kelas : 6B. Daftar isi

PEMROGRAMAN JAVA : PENGENALAN JAVA

BAB 1 Service Oriented Architecture 1.1 Evolusi SOA

TPI4202 e-tp.ub.ac.id

Perkenalan PBO (Java)

BAB I PENDAHULUAN 1.1 Latar Belakang

Pemrograman Jaringan 11 RMI

CONTOH PENDSTRIBUSIAN HARDWARE

Sharing Printer dengan Samba. Oleh. Md. Chrisna donny andrian. V c

BAB II TINJAUAN PUSTAKA. Bab ini membahas teori-teori yang dijadikan acuan tugas akhir ini.

Sekarang, kita akan mencoba untuk menganalisa program Java pertama : public class Hello {

Middleware Sebagai Jembatan Platform yang berbeda. Budi Susanto

Inheritance dan Kata Kunci static

MEMBANGUN SISTEM KOMPUTASI TERDISTRIBUSI DENGAN PEMROGRAMAN C++

Model arsitektur Terdistribusi

29 Februari Introduction Of Java

Berikut merupakan salah satu contoh dari pesan SOAP (SOAP Message):

Gambar 2.1 Prinsip RPC pada Client-Server

Fase pertama: single user, single tasking

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

BAHASA PEMROGRAMAN JAVA

KOMUNIKASI. Universitas Informatika dan Bisnis Indonesia. 2.1 Komunikasi Data

Pengenalan JavaScript

Konsep Pemrograman Berorientasi Obyek. Maria Ulfah S Nurochman

Pemrograman Lanjut. Class : Deeper Look 2

BAB II LANDASAN TEORI. 2.1 SNMP (Simple Network Management Protocol) adalah Keith McCLOGHRIE, Marshall ROSE, Jeffrey D.

1. Hardware terdistribusi. 2. Program terdistribusi. Nama : Gede Doddi Raditya Diputra NIM : Kelas : 5.C

Modul II Object Oriented Programming

PEMROGRAMAN BERORIENTASI OBJEK

SUMBER BELAJAR PENUNJANG PLPG

BAB X ARSITEKTUR SISTEM TERDISTRIBUSI

TUGAS Mata Kuliah : Sistem Terdistribusi

SERVICE ORIENTED ARCHITECTURE (SOA)

Web Services merupakan salah satu bentuk implementasi dari arsitektur model aplikasi N-Tier yang berorientasi layanan. Perbedaan Web Services dengan

IMPLEMENTASI CORBA PADA PEMROGRAMAN LINTAS PLATFORM JAVA DAN DELPHI UNTUK MEMBANGUN APLIKASI SISTEM TERDISTRIBUSI

PEMROGRAMAN SISTEM TERSEBAR

DOKUMEN 3. MODEL KOMPONEN Versi 1.0 DIREKTORAT JENDERAL BINA ADMINISTRASI KEUANGAN DAERAH DEPARTEMEN DALAM NEGERI REPUBLIK INDONESIA

Pengenalan JAVA. Farhat, ST., MMSI., MSc

Arsitektur Web Service Web service memiliki tiga entitas dalam arsitekturnya, yaitu: 1. Service Requester (peminta layanan)

Interprocess communication atau komunikasi antar proses adalah inti dari sistem terdistribusi dan komunikasi antar proses-proses pada system-sistem

Mengenal Java RMI. Wiranti Sri Utami. Abstrak. Pendahuluan.

Pemrograman dengan Java

JAVA FUNDAMENTAL ATURAN PERKULIAHAN SILABUS

Encapsulation (Encapsulasi) Minggu 5 Pemrograman Berorientasi Objek Alfa Faridh Suni

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Client/Server dengan Java Remote Method Invocation (Java RMI), Sebuah Tutorial

SISTEM OPERASI TERDISTRIBUSI

2 TIPE DATA DAN VARIABEL

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Modul Praktikum Bahasa Pemrograman 1

IMPLEMENTASI CORBA PADA PEMROGRAMAN LINTAS PLATFORM JAVA DAN DELPHI UNTUK MEMBANGUN APLIKASI SISTEM TERDISTRIBUSI

KUM 3 IMPLEMENTASI LIST

Nama : Julian Chandra W Telp :

Pertemuan XI Database Connectivity Fak. Teknik Jurusan Teknik Informatika. Caca E. Supriana, S.Si.,MT.

2. Software yang dibutuhkan Untuk membuat sebuah program java, minimal yang dibutuhkan adalah:

PERTEMUAN I PENGENALAN JAVA

BAB II. KAJIAN PUSTAKA

JAVA PADA NETBEANS IDE 7.4 ASRI WIDYADHARI KOM E 13

Pengenalan Program Java

PEMROGRAMAN BERORIENTASI OBJEK

PEMAHAMAN DASAR DASAR JAVA

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

MODUL 4 PHP PART 1 (PENGENALAN PHP + VARIABEL)

MK. Pemrograman Berorientasi Objek PENGENALAN JAVA KARMILASARI

STMIK AMIKOM YOGYAKARTA YOGYAKARTA 2008 WIDHIARTA, S. KOM

Pendahuluan. Komputasi Nuklir. 29 Oktober Komputasi Nuklir Pendahuluan 29 Oktober / 41

WEB SERVICES. Sistem terdistribusi week 12

Membuat dan Menggunakan Class

Dasar Pemograman Java

BEKERJA DENGAN JAVA CLASS LIBRARY

Pemrograman Berorientasi. Class dan Obyek 2

BAB II KAJIAN PUSTAKA

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

Modul Praktikum 4 Pemograman Berorientasi Objek

PEMROGRAMAN SOCKET LANJUTAN

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

MODUL 1 PENGENALAN OOP

BAHASA PEMROGRAMAN. Untuk SMK. Kadarisman Tejo Yuwono Totok Sukardiyono Adi Dewanto. : Ratu Amilia Avianti. Perancang Kulit

TUGAS ELEARNING PENGEMBANGAN WEB SERVICE

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

KONSEP PEMROGRAMAN JARINGAN DENGAN MEMANFAATKAN MIDDLEWARE ORB (OBJECT REQUEST BROKER)

BAB I PENDAHULUAN. I.1 Latar Belakang Permasalahan

Bab 2. Komunikasi. 1. Physical Layer

Chapter# 5. Tujuan : Mahasiswa m

Dasar-Dasar Pemrograman Java

Transkripsi:

Pemrograman Jaringan 12 CORBA

CORBA (Common Object Request Broker Architecture) CORBA (www.corba.org) adalah cara lain untuk melakukan pemrograman jaringan terdistribusi dan open system, dimana obyek yang dipanggil tidak hanya berasal dari program yang dibuat dengan bahasa Java saja tetapi juga bisa dibuat dengan bahasa lain. Corba di buat oleh OMG (Object Management Group www.omg.org), suatu organisasi yang mengurusi teknologi berbasis obyek. OMG berdiri tahun 1989 dan juga mengurusi tentang UML. Corba dikatakan merupakan standar sistem terdistribusi (distributed sistem standard) karena dengan menggunakan corba, sistem secara keseluruhan dapat saling terhubung dan berkomunikasi antar platform (sistem operasi dan hardware) yang berbeda.

CORBA (2) Corba juga dikatakan sebagai open system karena teknologi corba merupakan suatu standar yang terbuka bagi siapa saja yang ingin menerapkannya. Dengan corba kita dapat membangun aplikasi yang dapat saling berkomunikasi walau satu sama lain menggunakan bahasa pemrograman dan platform yang berbeda. CORBA memiliki Interface Definition Interface yang mendukung mapping ke suatu bahasa pemrograman tertentu. CORBA menyediakan API untuk berkomunikasi antar obyek secara remote. Beberapa yang sudah menerapkan spesifikasi corba adalah: Borland (VisiBroker): C++ dan Java Mapping IONA (Orbix) : C++, Java, dan SmallTalk Mapping Sun Microsystem (JavaIDL)

Perbandingan RMI & CORBA

CORBA Architecture

ORB Bertindak sebagai broker (perantara) antara client dan server yang berjalan pada tiap mesin yang berisi API untuk mencari obyek dan menerima request. ORB mengkomunikasikan hubungan antar obyek menggunakan sistem IIOP (Internet Inter-ORB Protocol) ORB tersedia untuk beberapa platform yang berbedabeda. ORB mencari obyek, merequest remote method melalui interface CORBA, dan mengembalikannya ke client. Menangani secara menyeluruh terhadap suatu permintaan (request) dari client ke object atau sebaliknya (response) dari obyek ke client. ORB harus tersedia di sisi server dan client.

ORB (2) Pada sisi client, ORB memiliki fungsi: Menghubungkan ke interface repository / IR (penyedia definisi interface). Membantu client dalam menyusun suatu permintaan (invocation) ke object server secara dinamis dengan menggunakan DII (Dynamic Invocation Interface). Pada sisi server, ORB berfungsi: Selain bertanggung jawab untuk mengirimkan response dari server ke client yang dituju, ORB juga membantu untuk memulai dan menghentikan operasi terhadap object server yang diminta.

Stub dan Skeleton Digunakan untuk marshalling dan Unmarshalling remote method invocation. Marshalling: encoding, to pack all information about remote method invocation to be sent to the remote destination. Unmarshalling: unpack and decode the message Stub marshall the method request, and Skeleton unmarshall the request and forward to actual remote method. Stub berkomunikasi dengan remote object. Ada 2 cara menghasilkan kode stub pada client dan kode skeleton pada server: Static: SII (static invocation interface) dan SSI (static skeleton interface), digenerate saat kompilasi IDL. Dynamic: DII (dynamic invocation interface) dan DSI (dynamic skeleton interface)

Object Adapter Menerima permintaan dari client. Berfungsi sebagai dispatcher (menentukan object servant mana yang dituju). Membuat suatu remote objek referensi terhadap setiap objek servant CORBA yang terdaftar padanya. Setiap obyek CORBA akan diberi nama unik, dan setiap nama menunjuk pada suatu obyek servant. Dapat mengaktifkan dan menonaktifkan suatu objek servant. Mengatur security, method invocation dari object servant Melakukan pemanggilan terhadap sebuah object servant, yaitu dengan cara statik, yaitu melalui Static Skeleton Interface (SSI), atau secara dinamis dengan menggunakan Dynamic Skeleton Interface (DSI). Nama object Adapter untuk CORBA 2.2 ke atas disebut dengan Portable Object Adapter (POA), dan untuk spesifikasi CORBA 2.1 ke bawah disebut dengan Basic Object Adapter (BOA).

Interface Respiratory Database pada sisi server yang berisi semua metadata interface IDL yang telah diregistrasikan ke server, termasuk tipe data, nama method, dan parameternya.

ORB References Berada di sisi client Membungkus lokasi dari remote obyek yang akan diakses oleh client. Client harus mengambil/mencari OR untuk dapat mengakses remote object.

IDL (Interface Definition Language) IDL interface yang berisi kumpulan method yang akan diakses oleh client. Language Dependent Text File berekstensi.idl Contoh:

Langkah Pengembangan CORBA

Langkah-langkah Langkah pertama: mendefinisikan interface yang berisi layananlayanan yang tersedia oleh obyek server menggunakan bahasa IDL. Langkah kedua: mengkompilasi bahasa IDL ke bahasa Java. Kita gunakan IDL-to-Java compiler. Yaitu : idlj. Hasil dari kompilasi ini dihasilkan client stub dan skeleton server. Untuk menghasilkan aplikasi client, kita perlu menuliskan aplikasi client dan dikompilasi dan dilink bersama dengan library CORBA serta client stub yang dihasilkan dari IDL compiler. Dari sisi server : dari definisi yang sudah didefinisikan perlu dibuat sebuah kelas sebuah kelas yang merupakan implementasi dari interface tersebut. Sehingga sebuah aplikasi server dihasilkan dari kompilasi dan linking antara kode program aplikasi server, implementasi obyek dan skeleton.

IDL (Interface Definition Language)

Contoh IDL IDL konstanta: interface Konstanta{ const long MyLong = 12345; const string nama = anton ; const boolean ada = TRUE; } Oleh Java akan diterjemahkan menjadi: public interface Konstanta{ public static final int MyLong = (int)(12345); public static final String nama = "anton"; public static final boolean ada = (boolean)(true); }

interface Katalog { struct Buku { string Judul; string Pengarang; long Tahun; }; void SimpanBuku(in Buku bkbaru); }; Hasilnya: public final class Buku{ public String Judul = null; public String Pengarang = null; public int Tahun = (int) 0; }

enum Status { DIPINJAM, HILANG, RUSAK, ADA }; Hasilnya menjadi: private int value; private static int size = 4; private static Status[] array = new Status [ size]; public static final int _DIPINJAM = 0; public static final Status DIPINJAM = new Status(_DIPINJAM); public static final int _HILANG = 1; public static final Status HILANG = new Status(_HILANG); public static final int _RUSAK = 2; public static final Status RUSAK = new Status(_RUSAK); public static final int _ADA = 3; public static final Status ADA = new Status(_ADA);

Pengembangan Aplikasi Buat definisi IDL: CORBA Beri nama hello.idl

Pengembangan Aplikasi CORBA Kompilasi dengan perintah: idlj hello.idl Anda akan mendapatkan direktori HelloApp dan di dalamnya terdapat kelaskelas: HelloHelper.java Bertanggung jawab untuk membaca dan menulis tipe data ke stream CORBA dan menterjemahkan dari tipe Any. HelloHolder.java Class ini menyimpan public instance dari tipe Hello. Ketika terdapat tipe parameter out atau inout, kelas ini digunakan. Hello.java Digunakan untuk deklarasi method dan ketika digunakan pada interface lain. HelloOperations.java Interface ini digunakan untuk pemetaan sisi server dan dishare untuk stub dan skeleton. HelloPOA.java Class yang memerankan server skeleton. Class server harus menerapkan dari kelas ini. _HelloStub.java Merupakan class client stub, yang menyediakan fungsi CORBA pada sisi client.

Pengembangan Aplikasi CORBA Buat definisi class implementasi dari antarmuka Hello, disebut juga kelas Servant yang merupakan turunan dari kelas HelloPOA yang berada di dalam package HelloApp yang terbentuk!

Pengembangan Aplikasi CORBA Import semua kelas-kelas dan package yang dibutuhkan! Buat obyek ORB dan inisialisasi, lihat baris merah Buat obyek dari kelas implementasi (POA) atau object servant (BOA) jika diperlukan object ORB yang sudah dibuat dapat dijadikan parameter ke object servant, dengan tujuan agar object servant dapat mengkontrol ORB yang digunakan. Lihat baris biru Buat referensi dari root POA dan aktifkan POA Manager, lihat warna hijau Dapatkan referensi obyek yang dibuat pada langkah sebelumnya dengan bantuan root POA, lihat warna orange Buat koneksi ke Naming Service dengan membuat referensi dari object Naming Service yang digunakan, lihat baris coklat Daftarkan referensi object yang didapatkan dari langkah sebelumnya ke Naming Service dengan diwakili sebuah nama, lihat warna biru tua Jalankan, tunggulah sampai ada permintaan dari client.

Contoh

Contoh

Pengembangan Aplikasi CORBA Buat program client Inisialisasi obyek ORB Ambil referensi obyek dari NameService Kemudian masukkan hasil pengambilan obyek referensi ke suatu variable obyek lokal dan manipulasilah obyek lokal tersebut!

Pengembangan Aplikasi CORBA Kompilasi dengan perintah: javac HelloApp/*.java javac HelloImpl.java javac HelloServer.java javac HelloClient.java Jalankan naming service Jalankan server java HelloServer -ORBInitialPort 50000 Hasilnya: HelloServer siappp grak... Jalankan client java HelloClient -ORBInitialPort 50000 Hasilnya: Hello world!!

Praktikum