DISTRIBUTED OBJECT CORBA RMI

  

DISTRIBUTED O BJECT O utline 

  Arsitektur CO RBA 

  Komponen utama CO RBA 

  Komponen Corba pada client 

  Komponen Corba pada server 

  Komponen utama penyusun CO RBA 

  Sistem keamanan CO RBA 

  Arsitektur RMI Arsitektur CO RBA 

  CO RBA (Common O bject Request Broker Architecture) adalah suatu standard untuk sistem objek oriented terdistribusi yang dikembangkan oleh O MG.

   CO RBA memungkinkan kita menggunakan aplikasi tanpa adanya batasan platform, teknologi jaringan, bahasa pemrograman, maupun letak objek pemberi service yang dituju.

  Arsitektur CO RBA 

  CO RBA memiliki arsitektur yang berbasiskan model objek.

   Model ini diturunkan dari abstrak Core O bject Model yang didefiniskan O MG di dalam O MA (O bject Management Architecture).

   Sistem CO RBA terdiri dari objek-objek yang mengisolasi suatu client dari suatu server dengan menggunakan interf ace enkapsulasi yang

  Arsitektur CO RBA

   O bject Management Architecture (O MA) mendef inisikan berbagai f asilitas highlevel yang diperlukan untuk komputasi berorientasi objek. Bagian utama dari O MA adalah O bject Request Broker (O RB).

  

 O RB merupakan suatu mekanime yang memberikan transparansi

lokasi, komunikasi, dan aktivasi suatu objek.

 O RB adalah semacam sof tware bus untuk objek-objek dalam

  CO RBA. Berdasarkan OMA, spesif ikasi CO RBA harus dipatuhi oleh O RB. Komponen CO RBA 

  CO RBA disusun oleh komponen-komponen utama : 

  O RB (O bject Request Broker)

  

  IDL (Interf ace Def inition Language)

  

  DII (Dynamic Invocation Interf ace)

  

  IR (Interf ace Repositories)

  

  OA (O bject Adapter)

  

Komponen CO RBA

  Arsitektur CO RBA Komponen CO RBA 

  Komponen CO RBA pada client 

  1. Client Application

  

  2. Client IDL Stubs

  

  3. Dynamic Invocation Interf ace

  

  4. Interf ace Repository

  

  5. Client Side O RB Interf ace

  

  6. O RB Core Komponen CO RBA 

  Komponen CO RBA pada server : 

  1. Server Side O RB Interf ace

  

  2. Static IDL Skeleton

  

  3. Dynamic Skeleton Interf ace Komponen CO RBA 

  

  O RB merupakan inti dari CO RBA dan bertanggung jawab untuk menjalankan semua mekanisme yang dibutuhkan, yaitu:

   Menemukan implementasi objek untuk memenuhi request

   Menyiapkan implementasi objek untuk menerima request  Melakukan komunikasi data untuk memenuhi suatu request Komponen CO RBA 

  Dengan O RB, yang terdiri dari interf ace, suatu client dapat berkomunikasi dengan object implementation tanpa adanya batasan platform, teknologi jaringan, bahasa pemrograman, dan letak objek

  

  Request : Komponen CO RBA 

  Dengan menggunakan O RB, objek client bias meminta sebuah method pada sebuah object server yang bisa saja terdapat dalam satu mesin maupun jaringan yang berbeda.

  

  O RB menerima panggilan dan menemukan objek yang bisa mengimplementasikan permintaan, mengirim parameter, invoke method, dan mengembalikan hasil yang diperoleh. Komponen CO RBA 

  O bject Implementation (O I) 

  Suatu O bject Implementation (O I) menyediakan semantik dari objek, yang umumnya dilakukan dengan mendef iniskan data untuk object instance dan kode untuk method-method objek tersebut.

  

  Seringkali kita menggunakan objek lain atau menggunakan sof tware tambahan untuk mengimplementasikan sif at suatu objek. Komponen CO RBA 

  Secara umum, O bject Implementation (O I) tidak tergantung pada O RB atau bagaimana suatu client memanggil suatu objek.

  

  O bject Implementation (O I) dapat memilih interf ace- nya ke O RB-dependent service yang dipilih dengan memilih O bject Adapter (OA). Komponen CO RBA 

  O bject Implementation (O I) menerima suatu request melalui

  

  1. IDL Skeleton 

  2. Dynamic Skeleton Interf ace(DSI) Komponen CO RBA 

  

  Interf ace suatu objek dapat didef inisikan dengan cara statis, yaitu menggunakan IDL (Interf ace Def inition Languange).

  

  IDL mendef inisikan tipe suatu objek berdasarkan operasi-operasi (yang mungkin dijalankan pada objek tersebut) dan parameter operasi tersebut. Komponen CO RBA 

  Client meminta suatu request dengan melakukan akses ke O R (O bject Ref erence) suatu objek yang dituju dan mengetahui tipe dari objek dan operasi-operasi yang dapat dilakukan pada objek tersebut.

  

  Client menginisialisasi request dengan memanggil rutin suatu stub yang sesuai dengan objek atau membangun request secara dinamik. Komponen CO RBA 

  Dalam arsitekturnya, O RB tidak perlu dimplementasikan dalam sebuah komponen tunggal; namun, O RB didef inisikan menggunakan interf ace- interf ace yang dimilikinya.

  

  Interf ace-interf ace tersebut dikelompokan menjadi: 1. operasi yang sama untuk semua implementasi O RB 2. operasi khusus untuk tipe objek tertentu 3. operasi khusus untuk style O I tertentu Komponen CO RBA 

  

  O bject Ref erence (O R) merupakan informasi yang dibutuhkan untuk menentukan sebuah objek dalam O RB.

  

  Client dan O bject Implementation (O I) memiliki bagian yang tertutup dari O R dengan language mapping, yang kemudian disekat dari representasi aktualnya.

  

  Dua implementasi O RB dapat memiliki representasi O R yang berbeda. Komponen CO RBA 

  Semua O RB harus menyediakan language mapping yang sama untuk sebuah O R (umumnya disebut objek) untuk sebuah bahasa pemrograman tertentu. Hal ini memungkinkan sebuah program ditulis dalam bahasa apapun untuk mengakses O R secara independen terhadap O RB tertentu. Komponen CO RBA 

  

  O bjek-objek CO RBA dispesif ikasikan menggunakan interf ace, yang merupakan penghubung antara client dan server.

  

  Interf ace Def inition Language (IDL) digunakan untuk mendef inisikan interf ace tersebut.

  

  IDL menentukan tipe-tipe suatu objek dengan mendef inisikan interf ace-interf ace objek tersebut. Komponen CO RBA 

  Melalui

  IDL, O bject Implementation (O I) akan memberitahu client yang akan mengaksesnya operasi apa saja dan method apa saja yang harus dipanggil client tersebut.

  

  Bahasa Pemrograman yang berbeda dapat mengakses objek-objek CO RBA dalam bebagai cara yang berbeda.

  

  Pemetaan dari IDL ke bahasa pemrograman tertentu harus sama untuk semua implementasi O RB Komponen CO RBA 

  Language Mapping ini menyertakan def inisi tipe data untuk bahasa pemrograman tertentu dan procedure interf ace untuk mengakses objek melalui O RB. Ini meliputi:

  

  1. Struktur dari client stub interf ace (tidak dibutuhkan untuk bahasa O O P) 

  2. Dynamic Invocation Interf ace 

  3. Implementation Skeleton 

  4. O bject Adapters 

  5. Direct O RB Interf ace Komponen CO RBA 

  Language Mapping juga mendef inisikan interaksi antara pemanggilan objek dan langkah kontrol pada client dan implementasi. Komponen CO RBA 

  Dynamic Invocation/ Skeleton Interf ace 

  IDL interf ace yang digunakan oleh sebuah client ditentukan pada saat client dikompilasi.

  

  Hal tesebut mengakibatkan seorang programmer hanya dapat menggunakan server-server yang terdiri dari objek-objek yang mengimplementasikan interf ace- interf ace tersebut. Komponen CO RBA 

  Bila suatu aplikasi membutuhkan interf ace-interf ace yang tak didef iniskan saat kompilasi, maka diperlukan DII (Dynamic Invocation Interf ace) atau pun DSI (Dynamic Skeleton Interf ace).

  

  DII memungkinkan suatu aplikasi/ client memanggil operasi-operasi dari sembarang interf ace.

  

  DSI menyediakan suatu cara untuk mengirim request dari sebuah O RB ke sebuah O bject Implementation (O I) tanpa harus mengetahui tipe dari objek pada saat Komponen CO RBA 

  Dynamic Invocation Interf ace (DII) 

  DII memungkinkan client untuk mendapatkan sebuah instance dari objek CO RBA dan membuat invocation pada objek tersebut dengan menciptakan request yang sif atnya dinamis.

  

  DII menggunakan Interf ace Repository (IR) untuk memvalidasi dan mengambil identif ier operasi pada suatu request yang dibuat. Komponen CO RBA 

  Empat tahap yang diperlukan saat penggunaan Dynamic Invocation Interf ace (DII):

   Mengidentif ikasikan target objek yang akan dipanggil

   Mendapatkan target interf ace dari objek tersebut  Membangun invocation

   Mengirim request dan mendapatkan respon Komponen CO RBA 

  keuntungan menggunakan DII, yaitu:

   Aplikasi client dapat melakukan permintaan kepada setiap operasi meskipun tersebut tidak diketahui pada saat aplikasi dikompilasi

   Aplikasi client tidak harus dikompilasi ulang untuk mengakses O I yang diaktivasi ulang Komponen CO RBA 

  Dynamic Skeleton Interf ace (DSI) 

  Dynamic Skeleton Interf ace (DSI) menyerupai DII, namun tereletak di sisi server.

  

  DSI memungkinkan server ditulis tanpa harus mempunyai skeleton-skeleton atau informasi tentang waktu kompilasi, dan untuk objek mana server ini diimlementasikan.

  

  Fungsi utama Dynamic Skeleton Interf ace (DSI) adalah mendukung implementasi gateway antara ORB yang Komponen CO RBA 

  

  O bject Adapter (OA) merupakan cara utama bagi sebuah O bject Implemetation (O I) untuk mengakses service yang disediakan oleh O RB.

  

  Tugas utamanya adalah melakukan masking (menutupi) perbedaan dalam implementasi objek untuk memperoleh portability yang lebih tinggi. Komponen CO RBA 

  

  O RB Interf ace Merupakan interf ace yang berhubungan langsung dengan O RB yang sama untuk semua O RB dan tidak tergantung pada interf ace suatu objek atau O bjek Adapter (OA). Komponen CO RBA 

  

  Interf ace Repository (IR) merupakan online database yang berisi tentang meta informasi tentang tipe dari objek O RB.

  

  Meta informasi yang disimpan meliputi informasi tentang modul, interf ace, operasi, atribut, dan eksepsi dari objek. Komponen CO RBA 

  O RB biasa menggunakan IR untuk:

   menyediakan interoperability antar implementasi O RB yang berbeda

   menyediakan type checking dari signature sebuah request yang melalui SII dan DII

   Mengecek kebenaran graf ik inheritance

   Mengelola instalasi dan distribusi interf ace def inition alam sebuah jaringan

   Mengizinkan designer apliaksi untuk memodif ikasi interf ace def inition

   Mengizinkan language compiler untuk mengcompile stub Komponen CO RBA 

  

  Implementation Repository terdiri dari informasi yang memperbolehkan O RB untuk mencari dan mengaktivasi implementasi suatu objek.

  

  Meskipun untuk suatu O RB atau lingkungan operasi, Implementation Repository merupakan tempat yang konvensional untuk menyimpan suatu informasi. Komponen CO RBA 

  

  CO RBA mendef inisikan

  IIO P (Internet Inter-O RB Protocol) untuk mengatur bagaimana objek berkomunikasi melalui jaringan.

  

  IIO P merupakan open protocol yang berjalan diatas TCP/ IP. Sistem Keamanan CO RBA 

  Secara umum, keamanan berkenaan dengan masalah: 

  Conf identiality (informasi hanya diberikan pada user yang berhak mengaksesnya)

  

  Integrity (informasi hanya boleh diubah oleh user yang berhak mengubahnya)

  

  Accountability (aksi-aksi user yang berhubungan dengan keamanan selalu dicatat)

  

  Avaiability (sistem selalu tersedia bagi user yang Sistem Keamanan CO RBA 

  Beberapa jenis ancaman yang dideskripsikan dalam spesif ikasi O MG adalah: 

  Kontrol keamanan (Security control) di-bypass oleh orang lain 

  Seorang authorised user mendapatkan akses pada informasi yang seharusnya disembunyikan darinya 

  Seorang user menyamar sebagai orang lain dan mendapatkan akses, sehingga aksinya tercatat dilakukan oleh orang lain tersebut. Pada sistem terdistribusi, user mungkin saja mendelegasikan proses pada objek lain, sehingga objek tersebut dapat digunakan untuk Sistem Keamanan CO RBA 

  Kurangnya accountability, misalnya identitas user yang tidak mencukupi

  

  Penyadapan untuk mendapatkan data yang seharusnya dirahasiakan

  

  Memodif ikasi pada komunikasi antar objek (mengubah, menambah maupun menghapus item) Sistem Keamanan CO RBA 

  Sistem CO RBA bukanlah jenis sistem informasi biasa, melainkan karena sif at terdistribusinya, sistem ini memiliki potensi ancaman yang mungkin tidak terdapat pada sistem lain. Sistem Keamanan CO RBA 

  O leh karena sifat terdistribusi tersebut, beberapa tujuan keamanan yang khusus pada CO RBA adalah:

  

  Menyediakan keamanan atas sistem heterogen dimana vendor yang berbeda mungkin mensuplai O RB yang berbeda pula Sistem Keamanan CO RBA 

  Karena sistem CO RBA berorientasi objek, maka spesif ikasi-nya juga harus berorientasi objek:

   1.interf ace harus sepenuhnya objek oriented murni

   2.model harus menggunakan enkapsulasi untuk menampilkan kesatuan sistem dan menyembunyikan kompleksitas mekanisme sekuriti dibawah interf ace sederhana

   3.model harus mengizinkan implementasi polimorf isme pada objeknya yang berbasis pada mekanisme lapisan bawah berbeda, sehingga menyediakan apa yang disebut Sistem Keamanan CO RBA 

  Secure O bject Invocation, untuk memastikan invocation diproteksi oleh aturan sekuriti

  

  Access Control dan Auditing, untuk memastikan bahwa accsess control dan auditing yang diperlukan telah diterapkan pada invocation objek. Sistem Keamanan CO RBA  spesif ikasi O MG menentukan f itur-f itur kunci yang harus diproses oleh sistem keamanan pada CO RBA, yaitu:

   Authorisation dan Access control (memutuskan apakah suatu user dapat mengakses objek (umumnya menggunakan identitas secara normal dan/ atau atribut istimewa lain) dan apakah atribut kontrol dari objek target dapat mengaksesnya)

   Security Auditing (untuk membuat mencatat semua kegiatan user yang berhuungan dengan sekuriti. Mekanisme auditing harus harus dapat mengidentif ikasi user secara benar, Sistem Keamanan CO RBA 

  Keamanan dari komunikasi antar objek (hal ini memerlukan koneksi yang terpercaya antara client dan target, yang mungkin memerlukan autentif ikasi dari client untuk target, maupun autentif ikasi dari target untuk client. Hal ini juga memerlukan integrity protection dan Conf identiality protection untuk message yang dikirimkan antar object)

  

  Non-repudiation (menyediakan bukti nyata dari suatu aksi yang dilakukan oleh user)

   RMI (Remote Method Invocation) 

  RMI adalah salah satu bagian dari J2SE yang digunakan untuk membangun aplikasi terdistribusi menggunakan bahasa Java.

   RMI adalah kumpulan kelas dalam Java yang digunakan untuk menangani pemanggilan (invocation) method secara jarak jauh (remote) dalam suatu jaringan atau Internet, Idenya memisahkan obyek-obyek secara terdistribusi dalam mesin-mesin yang berbeda.

  RMI (Remote Method Invocation) 

  RMI menggunakan prinsip pemrograman berorientasi obyek dimana obyek satu dapat saling berkomunikasi dengan obyek lainnya.

   Untuk membangun aplikasi RMI dibutuhkan Interf ace.

   RMI terdiri dari RMI client dan server.

  

Arsitektur RMI

  Arsitektur RMI Arsitektur RMI 

  RMI Server akan mendaf tarkan remote obyeknya ke RMI Registry melalui bind dengan nama unik.

  RMI Client yang akan melakukan suatu pemanggilan method dari remote obyek, harus meminta ref erensi obyek ke RMI Registry berdasarkan nama kelas obyek tersebut.

   Dalam RMI harus ada pendefinisian interf ace (behaviour) dan implementasi interf ace (berupa

kelas) , RMI hanya dimiliki oleh bahasa Java saja.

  

Arsitektur RMI

  G ambar RMI Layer Arsitektur RMI 

  Selama remote invocation stub bertanggung jawab untuk:  Meminta lokasi remote server obyek pada remote ref erence Layer

  

 Marshalling : merangkaian argumen pada output stream

 Memberitahu remote ref erence Layer bahwa semua data parameter telah terkirim, sehingga pemanggilan method sesungguhnya dapat dilakukan oleh server

   Unmarshalling: rangkaian nilai yang diterima dari remote obyek

   Memberitahu remote ref erence Layer bahwa pemanggilan telah lengkap Arsitektur RMI 

  Skeleton bertanggung jawab untuk: 

  Marshalling: nilai kembalian atau exception kepada stub client

  

  Mengirimkan panggilan method pada server object sesungguhnya