DISTRIBUTED OBJECT CORBA & RMI -...

52
DISTRIBUTED OBJECT CORBA & RMI Sistem terdistribusi – week 13

Transcript of DISTRIBUTED OBJECT CORBA & RMI -...

DISTRIBUTED OBJECTCORBA & RMI

Sistem terdistribusi – week 13

Outline

Arsitektur CORBA Komponen utama CORBA Komponen Corba pada client Komponen Corba pada server Komponen utama penyusun CORBA Sistem keamanan CORBA Arsitektur RMI

Arsitektur CORBA

CORBA (Common Object Request BrokerArchitecture) adalah suatu standard untuk sistemobjek oriented terdistribusi yang dikembangkanoleh OMG.

CORBA memungkinkan kita menggunakan aplikasitanpa adanya batasan platform, teknologijaringan, bahasa pemrograman, maupun letakobjek pemberi service yang dituju.

Arsitektur CORBA

CORBA memiliki arsitektur yang berbasiskan modelobjek.

Model ini diturunkan dari abstrak Core ObjectModel yang didefiniskan OMG di dalam OMA(Object Management Architecture).

Sistem CORBA terdiri dari objek-objek yangmengisolasi suatu client dari suatu server denganmenggunakan interface enkapsulasi yangdidefinisikan secara ketat.

Arsitektur CORBA

Object Management Architecture (OMA) mendefinisikanberbagai fasilitas highlevel yang diperlukan untuk komputasiberorientasi objek. Bagian utama dari OMA adalah ObjectRequest Broker (ORB).

ORB merupakan suatu mekanime yang memberikan transparansilokasi, komunikasi, dan aktivasi suatu objek.

ORB adalah semacam software bus untuk objek-objek dalamCORBA. Berdasarkan OMA, spesifikasi CORBA harus dipatuhi olehORB.

Komponen CORBA

CORBA disusun oleh komponen-komponen utama : ORB (Object Request Broker) IDL (Interface Definition Language) DII (Dynamic Invocation Interface) IR (Interface Repositories) OA (Object Adapter)

Komponen CORBA

Arsitektur CORBA

Komponen CORBA

Komponen CORBA pada client 1. Client Application 2. Client IDL Stubs 3. Dynamic Invocation Interface 4. Interface Repository 5. Client Side ORB Interface 6. ORB Core

Komponen CORBA

Komponen CORBA pada server : 1. Server Side ORB Interface 2. Static IDL Skeleton 3. Dynamic Skeleton Interface

Komponen CORBA

1. Object Request Broker - ORB ORB merupakan inti dari CORBA dan bertanggung

jawab untuk menjalankan semua mekanisme yangdibutuhkan, yaitu:Menemukan implementasi objek untuk memenuhi requestMenyiapkan implementasi objek untuk menerima requestMelakukan komunikasi data untuk memenuhi suatu request

Komponen CORBA

Dengan ORB, yang terdiri dari interface, suatu clientdapat berkomunikasi dengan object implementationtanpa adanya batasan platform, teknologi jaringan,bahasa pemrograman, dan letak objek

Request :

Komponen CORBA

Dengan menggunakan ORB, objek client bias memintasebuah method pada sebuah object server yang bisasaja terdapat dalam satu mesin maupun jaringan yangberbeda.

ORB menerima panggilan dan menemukan objek yangbisa mengimplementasikan permintaan, mengirimparameter, invoke method, dan mengembalikan hasilyang diperoleh.

Komponen CORBA

Object Implementation (OI) Suatu Object Implementation (OI) menyediakan

semantik dari objek, yang umumnya dilakukan denganmendefiniskan data untuk object instance dan kodeuntuk method-method objek tersebut.

Seringkali kita menggunakan objek lain ataumenggunakan software tambahan untukmengimplementasikan sifat suatu objek.

Komponen CORBA

Secara umum, Object Implementation (OI) tidaktergantung pada ORB atau bagaimana suatu clientmemanggil suatu objek.

Object Implementation (OI) dapat memilih interface-nya ke ORB-dependent service yang dipilih denganmemilih Object Adapter (OA).

Komponen CORBA

Object Implementation (OI) menerima suatu requestmelalui 1. IDL Skeleton 2. Dynamic Skeleton Interface(DSI)

Komponen CORBA

2. Interface Interface suatu objek dapat didefinisikan dengan cara

statis, yaitu menggunakan IDL (Interface DefinitionLanguange).

IDL mendefinisikan tipe suatu objek berdasarkanoperasi-operasi (yang mungkin dijalankan pada objektersebut) dan parameter operasi tersebut.

Komponen CORBA

Client meminta suatu request dengan melakukanakses ke OR (Object Reference) suatu objek yang ditujudan mengetahui tipe dari objek dan operasi-operasiyang dapat dilakukan pada objek tersebut.

Client menginisialisasi request dengan memanggil rutinsuatu stub yang sesuai dengan objek atau membangunrequest secara dinamik.

Komponen CORBA

Dalam arsitekturnya, ORB tidak perludimplementasikan dalam sebuah komponen tunggal;namun, ORB didefinisikan menggunakan interface-interface yang dimilikinya.

Interface-interface tersebut dikelompokan menjadi:1. operasi yang sama untuk semua implementasi ORB2. operasi khusus untuk tipe objek tertentu3. operasi khusus untuk style OI tertentu

Komponen CORBA

3. Object Reference (OR) Object Reference (OR) merupakan informasi yang

dibutuhkan untuk menentukan sebuah objek dalamORB.

Client dan Object Implementation (OI) memiliki bagianyang tertutup dari OR dengan language mapping,yang kemudian disekat dari representasi aktualnya.

Dua implementasi ORB dapat memiliki representasi ORyang berbeda.

Komponen CORBA

Semua ORB harus menyediakan language mappingyang sama untuk sebuah OR (umumnya disebut objek)untuk sebuah bahasa pemrograman tertentu. Hal inimemungkinkan sebuah program ditulis dalam bahasaapapun untuk mengakses OR secara independenterhadap ORB tertentu.

Komponen CORBA

4. Interface Definition Language (IDL) Objek-objek CORBA dispesifikasikan menggunakan

interface, yang merupakan penghubung antara clientdan server.

Interface Definition Language (IDL) digunakan untukmendefinisikan interface tersebut.

IDL menentukan tipe-tipe suatu objek denganmendefinisikan interface-interface objek tersebut.

Komponen CORBA

Melalui IDL, Object Implementation (OI) akanmemberitahu client yang akan mengaksesnya operasiapa saja dan method apa saja yang harus dipanggilclient tersebut.

Bahasa Pemrograman yang berbeda dapat mengaksesobjek-objek CORBA dalam bebagai cara yangberbeda.

Pemetaan dari IDL ke bahasa pemrograman tertentuharus sama untuk semua implementasi ORB

Komponen CORBA

Language Mapping ini menyertakan definisi tipe datauntuk bahasa pemrograman tertentu dan procedureinterface untuk mengakses objek melalui ORB. Inimeliputi: 1. Struktur dari client stub interface (tidak dibutuhkan

untuk bahasa OOP) 2. Dynamic Invocation Interface 3. Implementation Skeleton 4. Object Adapters 5. Direct ORB Interface

Komponen CORBA

Language Mapping juga mendefinisikan interaksiantara pemanggilan objek dan langkah kontrol padaclient dan implementasi.

Komponen CORBA

Dynamic Invocation/Skeleton Interface IDL interface yang digunakan oleh sebuah client

ditentukan pada saat client dikompilasi. Hal tesebut mengakibatkan seorang programmer

hanya dapat menggunakan server-server yang terdiridari objek-objek yang mengimplementasikan interface-interface tersebut.

Komponen CORBA

Bila suatu aplikasi membutuhkan interface-interfaceyang tak didefiniskan saat kompilasi, makadiperlukan DII (Dynamic Invocation Interface) atau punDSI (Dynamic Skeleton Interface).

DII memungkinkan suatu aplikasi/client memanggiloperasi-operasi dari sembarang interface.

DSI menyediakan suatu cara untuk mengirim requestdari sebuah ORB ke sebuah Object Implementation(OI) tanpa harus mengetahui tipe dari objek pada saatkompilasi.

Komponen CORBA

Dynamic Invocation Interface (DII) DII memungkinkan client untuk mendapatkan sebuah

instance dari objek CORBA dan membuat invocationpada objek tersebut dengan menciptakan requestyang sifatnya dinamis.

DII menggunakan Interface Repository (IR) untukmemvalidasi dan mengambil identifier operasi padasuatu request yang dibuat.

Komponen CORBA

Empat tahap yang diperlukan saat penggunaanDynamic Invocation Interface (DII):Mengidentifikasikan target objek yang akan dipanggilMendapatkan target interface dari objek tersebutMembangun invocationMengirim request dan mendapatkan respon

Komponen CORBA

keuntungan menggunakan DII, yaitu: Aplikasi client dapat melakukan permintaan kepada

setiap operasi meskipun tersebut tidak diketahui pada saataplikasi dikompilasi

Aplikasi client tidak harus dikompilasi ulang untukmengakses OI yang diaktivasi ulang

Komponen CORBA

Dynamic Skeleton Interface (DSI) Dynamic Skeleton Interface (DSI) menyerupai DII,

namun tereletak di sisi server. DSI memungkinkan server ditulis tanpa harus

mempunyai skeleton-skeleton atau informasi tentangwaktu kompilasi, dan untuk objek mana server inidiimlementasikan.

Fungsi utama Dynamic Skeleton Interface (DSI) adalahmendukung implementasi gateway antara ORB yangmemiliki protocol komunikasi berbeda.

Komponen CORBA

5. Object Adapter (OA) Object Adapter (OA) merupakan cara utama bagi

sebuah Object Implemetation (OI) untuk mengaksesservice yang disediakan oleh ORB.

Tugas utamanya adalah melakukan masking (menutupi)perbedaan dalam implementasi objek untukmemperoleh portability yang lebih tinggi.

Komponen CORBA

6. ORB Interface ORB Interface Merupakan interface yang

berhubungan langsung dengan ORB yang sama untuksemua ORB dan tidak tergantung pada interfacesuatu objek atau Objek Adapter (OA).

Komponen CORBA

7. Inteface Repository (IR) Interface Repository (IR) merupakan online database

yang berisi tentang meta informasi tentang tipe dariobjek ORB.

Meta informasi yang disimpan meliputi informasitentang modul, interface, operasi, atribut, dan eksepsidari objek.

Komponen CORBA

ORB biasa menggunakan IR untuk: menyediakan interoperability antar implementasi ORB

yang berbeda menyediakan type checking dari signature sebuah

request yang melalui SII dan DIIMengecek kebenaran grafik inheritanceMengelola instalasi dan distribusi interface definition alam

sebuah jaringanMengizinkan designer apliaksi untuk memodifikasi

interface definitionMengizinkan language compiler untuk mengcompile stub

dan skeleton dari IR bahkan langsung dari file IDL.

Komponen CORBA

8. Implementation Repository Implementation Repository terdiri dari informasi yang

memperbolehkan ORB untuk mencari dan mengaktivasiimplementasi suatu objek.

Meskipun untuk suatu ORB atau lingkungan operasi,Implementation Repository merupakan tempat yangkonvensional untuk menyimpan suatu informasi.

Komponen CORBA

9. Internet Inter-ORB Protocol (IIOP) CORBA mendefinisikan IIOP (Internet Inter-ORB

Protocol) untuk mengatur bagaimana objekberkomunikasi melalui jaringan.

IIOP merupakan open protocol yang berjalan diatasTCP/IP.

Sistem Keamanan CORBA

Secara umum, keamanan berkenaan denganmasalah: Confidentiality (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

berhak mengaksesnya)

Sistem Keamanan CORBA

Beberapa jenis ancaman yang dideskripsikan dalamspesifikasi OMG 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 dilakukanoleh orang lain tersebut. Pada sistem terdistribusi, usermungkin saja mendelegasikan proses pada objek lain,sehingga objek tersebut dapat digunakan untukkepentingannya.

Sistem Keamanan CORBA

Kurangnya accountability, misalnya identitas useryang tidak mencukupi

Penyadapan untuk mendapatkan data yangseharusnya dirahasiakan

Memodifikasi pada komunikasi antar objek (mengubah,menambah maupun menghapus item)

Sistem Keamanan CORBA

Sistem CORBA bukanlah jenis sistem informasibiasa, melainkan karena sifat terdistribusinya,sistem ini memiliki potensi ancaman yang mungkintidak terdapat pada sistem lain.

Sistem Keamanan CORBA

Oleh karena sifat terdistribusi tersebut, beberapatujuan keamanan yang khusus pada CORBAadalah: Menyediakan keamanan atas sistem heterogen dimana

vendor yang berbeda mungkin mensuplai ORB yangberbeda pula

Sistem Keamanan CORBA

Karena sistem CORBA berorientasi objek, makaspesifikasi-nya juga harus berorientasi objek: 1.interface harus sepenuhnya objek oriented murni 2.model harus menggunakan enkapsulasi untuk

menampilkan kesatuan sistem dan menyembunyikankompleksitas mekanisme sekuriti dibawah interfacesederhana

3.model harus mengizinkan implementasi polimorfisme padaobjeknya yang berbasis pada mekanisme lapisan bawahberbeda, sehingga menyediakan apa yang disebutteknologi keamanan independen

Sistem Keamanan CORBA

Secure Object Invocation, untuk memastikan invocationdiproteksi oleh aturan sekuriti

Access Control dan Auditing, untuk memastikan bahwaaccsess control dan auditing yang diperlukan telahditerapkan pada invocation objek.

Sistem Keamanan CORBA

spesifikasi OMG menentukan fitur-fitur kunci yang harusdiproses oleh sistem keamanan pada CORBA, yaitu:

Authorisation dan Access control (memutuskan apakah suatuuser dapat mengakses objek (umumnya menggunakanidentitas secara normal dan/atau atribut istimewa lain) danapakah atribut kontrol dari objek target dapatmengaksesnya)

Security Auditing (untuk membuat mencatat semua kegiatanuser yang berhuungan dengan sekuriti. Mekanisme auditingharus harus dapat mengidentifikasi user secara benar,bahkan setelah rangkaian call melalui banyak objek)

Sistem Keamanan CORBA

Keamanan dari komunikasi antar objek (hal inimemerlukan koneksi yang terpercaya antara client dantarget, yang mungkin memerlukan autentifikasi dariclient untuk target, maupun autentifikasi dari targetuntuk client. Hal ini juga memerlukan integrityprotection dan Confidentiality protection untuk messageyang dikirimkan antar object)

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

Administrasi dari informasi sekuriti.

RMI (Remote Method Invocation)

RMI adalah salah satu bagian dari J2SE yangdigunakan untuk membangun aplikasi terdistribusimenggunakan bahasa Java.

RMI adalah kumpulan kelas dalam Java yangdigunakan untuk menangani pemanggilan(invocation) method secara jarak jauh (remote)dalam suatu jaringan atau Internet, Idenyamemisahkan obyek-obyek secara terdistribusidalam mesin-mesin yang berbeda.

RMI (Remote Method Invocation)

RMI menggunakan prinsip pemrogramanberorientasi obyek dimana obyek satu dapat salingberkomunikasi dengan obyek lainnya.

Untuk membangun aplikasi RMI dibutuhkanInterface.

RMI terdiri dari RMI client dan server.

Arsitektur RMI

Arsitektur RMI

Arsitektur RMI

RMI Server akan mendaftarkan remote obyeknyake RMI Registry melalui bind dengan nama unik.RMI Client yang akan melakukan suatupemanggilan method dari remote obyek, harusmeminta referensi obyek ke RMI Registryberdasarkan nama kelas obyek tersebut.

Dalam RMI harus ada pendefinisian interface(behaviour) dan implementasi interface (berupakelas) , RMI hanya dimiliki oleh bahasa Java saja.

Arsitektur RMI

Gambar RMI Layer

Arsitektur RMI

Selama remote invocation stub bertanggung jawabuntuk: Meminta lokasi remote server obyek pada remote

reference Layer Marshalling : merangkaian argumen pada output stream Memberitahu remote reference Layer bahwa semua data

parameter telah terkirim, sehingga pemanggilan methodsesungguhnya dapat dilakukan oleh server

Unmarshalling: rangkaian nilai yang diterima dari remoteobyek

Memberitahu remote reference Layer bahwa pemanggilantelah lengkap

Arsitektur RMI

Skeleton bertanggung jawab untuk: Marshalling: nilai kembalian atau exception kepada

stub client Mengirimkan panggilan method pada server object

sesungguhnya