sitem terdistribusi corba
DESCRIPTION
tugas sitem terdistribusiTRANSCRIPT
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
TI 12 B
Oleh :
Nurul Hotimah(12312490)
Ridho Ramdhani()
Feni Ayu Prahartiwi()
Julia()
PERGURUAN TINGGI TEKNOKRAT JURUSAN TEKNIK
INFORMATIKA LAMPUNG
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Pendahuluan
Sistem komputer terdistribusi adalah sebuah sistem yang memungkinkan aplikasi komputer
beroperasi secara terintegrasi pada lebih dari satu lingkungan yang terpisah secara fisis.
Tidaklah mungkin untuk mengembangkan sistem terdistribusi yang homogen secara paksaan,
karena secara alamiah sistem komputer terdistribusi tumbuh dari lingkungan yang heterogen.
Kata kunci dalam menjembatani perbedaan-perbedaan yang muncul adalah interoperabilitas
(interoperability).
Bagaimana mungkin dua obyek yang dikembangkan secara terpisah, dengan perangkat dan
bahasa yang berbeda, serta dijalankan di komputer yang berbeda pula bisa saling berkomunikasi?
Apa yang bisa "mempertemukan" perbedaan-perbedaan itu? Kuncinya adalah konsep tentang
interface.
CORBA (Common Object Request Broker Architecture) adalah suatu standard untuk sistem
objek oriented terdistribusi yang dikembangkan oleh OMG. CORBA memungkinkan kita
menggunakan aplikasi tanpa adanya batasan platform, teknologi jaringan, bahasa pemrograman,
maupun letak objek pemberi service yang dituju. CORBA sebagai system yang terdistribusi,
memiliki potensi yang besar untuk ditembus dari berbagai sisi. Karena itu diperlukan suatu
sistem pengamanan yang memadai pada CORBA.
Makalah ini akan membahas mengenai Arsitekut CORBA dan system kemanan pada CORBA.
CORBA bukanlah suatu bahasa pemrograman akan tetapi merupakan spesifikasi untuk
mengembangkan obyek-obyek terdistribusi. Beberapa perangkat lunak yang
mengimplementasikan COBRA misalnya: ORBIX (yang dikembangkan oleh IONA
Technologies), Visi Broker (yang dikembangkan oleh Insprise), dan JavaIDL (yang
dikembangkan oleh JavaSoft). CORBA memiliki arsitektur yang berbasis pada model obyek.
Model ini diturunkan dari Core Obyect Model yang didefinisikan oleh OMA (Object
Management Architectur), dimana model ini adalah merupakan gambaran abstrak yang tidak
dapat diimplementasikan tanpa menggunakan teknologi tertentu. Dengan model tersebut suatu
aplikasi dibangun dengan standard yang telah ditentukan.
Keunikan dari CORBA adalah kemampuannya makalah corba dalam menangani heterogenitas
antara client dan server (dalam terminologi CORBA, obyek server dinamakan implementasi
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
obyek (object implementation). Keduanya dapat saja diimplementasikan dalam hardware, sistem
operasi, bahasa pemrograman, dan di lokasi yang berbeda, tetapi tetap bisa saling berkomunikasi.
Kuncinya ada pada sebuah lapisan software yang disebut dengan ORB (Object Request Broker)
Keunikan dari CORBA adalah kemampuannya dalam menangani heterogenitas antara client dan
server (dalam terminologi CORBA, obyek server dinamakan implementasi obyek (object
implementation). Keduanya dapat saja diimplementasikan dalam hardware, sistem operasi,
bahasa pemrograman, dan di lokasi yang berbeda, tetapi tetap bisa saling berkomunikasi.
Kuncinya ada pada sebuah lapisan software yang disebut dengan ORB (Object Request Broker).
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
KATA PENGANTAR
Segala puji dan syukur ke hadirat Allah SWT yang telah memberikan rahmat dan
kekuatanNya sehingga penulis dapat menyelesaiakan paper ini
Ucapan terimakasih yang setulus-tulusnya kami sampaikan kepada yang terhormat Bapak
Syaiful Ahdan, selaku dosen pada mata kuliah Sistem Terdistribusi yang merupakan salah satu
mata kuliah yang sedang kami tempuh pada Program Sarjana STMIK Teknik Informatika di
Perguruan tinggi Teknokrat bandarlampung.Semoga budi baik dan ketulusannya mendapat
pahala yang berlipat ganda dari Allah SWT.
Pada kesempatan ini pula kami hendak menyampaikan permohonan maaf kepada semua
pihak seandainya ada kesalahan yang penulis lakukan baik yang disengaja maupun tidak
disengaja. Penulis menyadari sepenuhnya bahwa kajian dalam makalah ini masih jauh dari
sempurna, oleh karena itu dengan besar hati penulis akan menerima segala kritik dan saran.
Semoga makalah ini dapat bermanfaat untuk pembaca dan penulis maupun anggota
kelompok kami sendiri.
Bandar Lampung, 01 November 2014
Penulis,
Kelompok 1
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Arsitektur Corba
1.1 pembahasan
Tepatnya pada tahun 1991 suatu Konsorsium yang bernama OMG (Common Object Request
Broker Architecture) yang terdiri 800 perusahaan (Kecuali Microsoft) mengembangkan suatu
teknologi yang bertujuan untuk membuat sebuah spesifikasi standar arsitektur obyek
terdistribusi. Standard tersebut dikenal dengan nama Common Object Request Broker
Architecture (CORBA).
CORBA sebenarnya mendefinisikan suatu protokol agar obyek-obyek dapat saling
berkomunikasi. Obyek-obyek itu tidak perlu dibuat dengan bahasa pemrograman yang sama,
tidak perlu berada pada mesin yang sama, bahkan tidak perlu pada platform yang sejenis. Jadi
sebuah obyek yang bertindak sebagai server sumber informasi yang ditulis dengan C++ serta
dijalankan di Sun Solaris dapat saja diakses oleh sebuah obyek klien berupa applet java yang
berjalan pada sebuah Java Virtual Machine di Windows misalnya. Obyek klien tidak perlu tahu
dimana server berada dan bagaimana suatu server diimplementasikan, karena hal tersebut adalah
merupakan tugas dari ORB (Object Request Broker). ORB berkuajiban menghubungkan obyek-
obyek yang membutuhkan pelayanan kepada obyek yang menyediakan layanan. Dalam hal ini
dapat dibayangkan ORB sebagai jaringan kabel telepon antar obyek, dan dalam implementasinya
memerlukan system keamanan.
CORBA (Common Object Request Broker Architecture) adalah suatu standard sistem
obyek oriented terdistribusi yang dikembangkan oleh OMG. CORBA memungkinkan kita
menggunakan aplikasi tanpa adanya batasan platform, teknologi jaringan, bahasa pemrograman,
maupun letak obyek pemberi service yang dituju. CORBA sebagai system yang terdistribusi,
memiliki potensi yang besar untuk ditembus dari berbagai sisi. Karena itu diperlukan suatu
sistem pengamanan yang memadai pada CORBA.
CORBA berbeda dengan RMI, berikut perbedaan CORBA dengan RMI:
1. CORBA adalah dapat diimplementasikan dengan sembarang bahasa
pemrograman.
2. CORBA terdiri dari beberapa mekanisme dimana RMI dapat termasuk di
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
dalamnya.
3. Pada RMI tidak menggunakan ORB (Object Request Broker).
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)
Tujuan CORBA adalah untuk pengembangan pemrograman objek terdistribusi.CORBA
bukanlah bahasa pemrograman, tapi merupakan spesifikasi untuk mengembangkan objek-objek
terdistribusi. Beberapa software yang mengimplementasikan COBA misalnya ORBIX (oleh
IONA Technologies), VisiBroker (oleh Insprise), dan JavaIDL (oleh JavaSoft). CORBA
memiliki arsitektur yang berbasiskan model objek. Model ini diturunkan dari abstrak Core
Object Model yang didefiniskan OMG di dalam OMA (Object Management Architecture).
Model ini merupakan gambaran abstrak yang tidak dapat diimplementasikan tanpa menggunakan
teknologi tertentu. Dengan model tersebut, suatu aplikasi dibangun dengan standard yang telah
ditentukan. Sistem CORBA terdiri dari objek-objek yang mengisolasi suatu client dari suatu
server dengan menggunakan interface enkapsulasi yang didefinisikan secara ketat. Objek objek
CORBA dapat berjalan di atas berbagai platform, dapat terletak dimana saja dalam suatu
network, dan dapat dikodekan dengan bahasa pemrograman apapun asal memiliki IDL mapping.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
1.2 Model Arsitekur OMG
Arsitektur CORBA (Common Object Request Broker Architecture) yang pertama kali
dikembangkan oleh OMG (Object Management Group), bertujuan untuk pengembangan
pemrograman berorientasi pada obyek yang terdistribusi. CORBA itu sendiri bukanlah
merupakan suatu bahasa pemrograman, tetapi merupakan suatu spesifikasi standard arsitektur
untuk mengembangkan obyek-obyek terdistribusi. Beberapa software yang
mengimplementasikan CORBA misalnya ORBIX (oleh Technologies), VisiBroker (oleh
msprise), dan Java IDL (oleh JavaSoft). CORBA memiliki arsitektur yang berbasiskan model
obyek. Model ini diturunkan strak Core Object Model yang didefiniskan OMG di dalam OMA
(Object agement Architecture). Model mi merupakan gambaran abstrak yang tidak dapat
diimplementasikan tanpa menggunakan teknologi tertentu. Dengan model tersebut, suatu aplikasi
dapat dibangun dengan standard yang telah ditentukan.
Gambar 1.
Model Arsitektur OMG
Sistem CORBA terdiri dari obyek-obyek yang mengisolasi suatu client dari suatu server
dengan menggunakan interface enkapsulasi yang didefinisikan secara ketat. Obyek CORBA
dapat berjalan di atas berbagai platform, dapat terletak dimana saja dalam suatu network, dan
dapat dikodekan dengan bahasa pemrograman apapun asal memiliki mapping.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Aplikasi enterprise tradisional kebanyakan adalah monolitik artinya data store, business
logic, dan user interface. Perubahan yang sedikit saja mengakibatkan seluruh system perlu
dikompilasi ulang. Dengan demikian reusability dari modul-modul adalah rendah sedang
aplikasi terdistribusi yang dikembangkan dengan CORBA, komponen-komponennya dapat
dipisahkan. Contoh dalam suatu aplikasi modular 3-tier, setiap komponen menjadi bagian yang
terpisah. Semua komponen yang berupa obyek dapat dipakai oleh obyek-obyek lain dimana
obyek-obyek itu tidak perlu ditulis dalam bahasa yang sama, tidak perlu berada pada platform
yang sama atau pada mesin yang sama. Sekali obyek dibuat maka obyek itu dapat digunakan dari
klien mana saja. User interface tier yang menampilkan informasi kepada pemakai akan menjadi
tipis. Hal ini disebabkan karena obyek telah dipindahkan ke service tier yang bertindak sebagai
middle war. Pada lapisan obyek logic ini terdapat CORBA object. Obyek-obyek inilah yang
kemudian akan mengakses database yang berada pada data store tier.
Dengan CORBA beban dari suatu layanan bisa disebar ke beberapa server lain. CORBA
dapat juga membuat bahasa pemrograman, misalnya Java, dan dapat berkomunikasi dengan
obyek yang dibuat dengan bahasa yang lain dimanapun. Berkat kemampuan dinamic invocatioan
interface dan dynamic skeleton interface CORBA, sebuah obyek (obyek Java) misalnya yang
menjadi pelayan dapat memberi informasi mengenai jati dirinya kepada obyek lain agar obyek
lain tersebut dapat meminta suatu layanan yang tersedia. Sebagai balasannya,
ketidaktergantungan platform dari Java (write once – run anywhere) tentu memudahkan
administrator dalam memutuskan di mesin mana obyek CORBA yang dibuat akan diletakkan
asalkan ada Java Virtual Machine pasti akan jalan.
1.3 Object Management Architecture (OMA)
Object Management Architecture (OMA) mendefinisikan berbagai fasilitas high-level
yang diperlukan untuk komputasi berorientasi obyek. Bagian utama dari OMA adalah Object
Request Broker (ORB). ORB merupakan suatu mekanisme yang memberikan transparansi lokasi,
komunikasi, dan aktivasi. Suatu obyek. ORB adalah semacam software bus untuk obyek-obyek
dalam CORBA. Berdasarkan OMA, spesifikasi CORRBA harus dipatuhi oleh ORB.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
CORBA disusun oleh komponen-komponen utama :
1. ORB (Object Request Broker)
2. IDL (Interface Definition Language)
3. DII (Dynamic Invocation Interface)
4. IR (Interface Repositories)
5. OA (Object Adapter)
Client Object Implementations
Dynamic
Invocation
Interface
Static IDL
Stubs
ORB
Interface
Static IDL
Skeletons
Dynamic
Skeleton
Interface
Object
Adapter
Object Request Broker
Interface Repository Implementation Repository
Gambar 2. Struktur CORBA ORB
[Sumber Distributed Programming With JAVA, Qusay H.Maumoud,P.152-154]
Komponen CORBA pada sisi Client:
1. Client Application,
2. Client IDL Stubs,
3. Dynamic Invocation Interface,
4. Interface Repository,
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
5. Client Side ORB Interface,
6. ORB Core .
Komponen CORBA yang terletak di sisi Server:
1. Server Side ORB Interface,
2. Static IDL Skeleton,
3. Dynamic Skeleton Interface,
4. Object Adapter,
5. Server Side Implementation.
1.3.1 Komponen Object Request Broker (ORB)
Inti dari CORBA adalah ORB, dimana ORB bertanggungjawab untuk menjalankan semua
mekanisme yang dibutuhkan, antara lain yaitu:
1. menemukan implementasi obyek untuk memenuhi suatu request,
2. menyiapkan implementasi obyek untuk menerima suatu request,
3. melakukan komunkasi data untuk memenuhi suatu request.
Sebuah permintaan (request) yang dikirimkan suatu client ke suatu object implementation
akan melewati ORB. Dengan ORB, yang terdiri dari interface, suatu entitas dapat berkomunikasi
dengan object implementation tanpa adanya batasan platform, topologi jaringan, bahasa
pemrograman, dan letak obyek.
Dengan menggunakan ORB, obyek client dapat meminta sebuah method pada sebuah
object server yang bisa saja terdapat dalam satu mesin maupun jaringan yang berbeda. ORB
menerima panggilan dan menemukan obyek yang bisa mengimplementasikan permintaan,
mengirim parameter, invoke method, dan mengembalikan hasil yang diperoleh.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Berikut adalah gambar yang menunjukkan komponen utama dari arsitektur CORBA ORB
(Object Request Broker). Didalamnya terdapat komponen-komponen CORBA disisi klien dan
komponen-komponen CORBA disisi server.
1.3.1.1 Client
Secara umum, client adalah suatu program/proses yang melakukan request pada suatu objek.
Terdapat pula client relative, yaitu suatu objek yang menjadi client dari objek lainnya.
Client suatu objek harus mengakses OR (Object Reference) suatau objek tertentu untuk
melakukan operasi pada suatu objek. Client hanya mengetahui struktur logika suatu objek
melalui interface yang dimiliki objek tersebut dan behaviour yang dimiliki objek tersebut saat
dipanggil.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Secara umum, client mengakses objek dan ORB melalui language mapping.
Client dapat bersifat portable dan seharusnya dapat berjalan tanpa harus mengubah kode pada
ORB yang mendukung language mapping berbeda dengan objek instance yang
mengimplementasikan interface berbeda. Untuk membuat suatu request, client dapat
menggunakan :
DII (Dynamic Invocation Interface) yaitu suatu interface yang tidak tergantung pada
inteface objek yang dituju
IDL Stub, yang tergantung pada interface objek yang dituju.
(ctt. Untuk fungsi-fungsi tertentu, client dapat berinteraksi secara langsung dengan ORB)
1.3.1.2 Object Implementation(OI)
Suatu Object Implementation (OI) menyediakan semantik dari objek, yang umumnya dilakukan
dengan mendefiniskan data untuk object instance dan kode untuk method-method objek tersebut.
Seringkali kita menggunakan objek lain atau menggunakan software tambahan untuk
mengimplementasikan sifat suatu objek. Berbagai Object Implementation (OI) dapat didukung
oleh server yang terpisah, librarys, sebuah program setiap method, aplikasi terenkapuslasi,
object-oriented database, dan lain-lain. Dengan menggunakan object adapters (OA) tambahan,
dimungkinkan untuk mendukung suatu Object Implementation (OI) secara virtual. Secara umum,
Object Implementation (OI) tidak tergantung pada ORB atau bagaimana suatau client memanggil
suatu objek.Object Implementation (OI) dapat memilih interface-nya ke ORB-dependent service
yang dipilih dengan memilih Object Adapter (OA).
Object Implementation (OI) menerima suatu request melalui :
IDL Skeleton
Dynamic Skeleton Interface(DSI)
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Object Implementation (OI) dapat memanggil Object Adapter (OA) dan ORB pada saat
memproses sebuah request.
1.3.1.3 ORB Interface
ORB Interface Merupakan interface yang berhubungan langsung dengan ORB yang sama untuk
semua ORB dan tidak tergantung pada interface suatu obyek atau Obyek Adapter (OA). Karena
banyak fungsionalitas ORB yang disediakan melalui OA, stub, skeleton , maupun dynamic
invocation; maka ada sedikit operasi yang umum bagi semua obyek.
Inteface suatu objek dapat didefinisikan dengan cara statis, yaitu menggunakan IDL (Interace
Definition Languange). IDL mendefiniskan tipe suatu objek berdasarkan operasi-operasi (yang
mungkin dijalankan pada objek tersebut) dan parameter operasi tersebut.
Interface dapat pula ditambahkan ke dalam suatu IRS (Interface Repository Service) yang
menggambarkan komponen-komponen dari interface suatu objek. Client dapat mengakses
komponen-komponen ini saat runtime. Client meminta suatu request dengan melakukan akses ke
OR (Object Reference) suatu objek yang dituju dan mengetahui tipe dari objek dan operasi-
operasi yang dapat dilakukan pada objek tersebut. Client menginisialisasi request dengan
memanggil rutinrutin suatu stub yang sesuai dengan objek atau membangun request secara
dinamik. Interface dinamik dan interface stub harus memeiliki semantic request yang bisa dalam
pemanggilan suatu request. ORB mencari implementation code yang dituju, mengirimkan
parameterparameter dan mentransfer kontrol pada Object Implementation melalui IDL Sekeleton
atau Dynamic Skeleton. Secara spesifik, skeleton berupa interface dan OA (ObjectAdapter).
Dalam mengolah suatu request, Object Implementation memberikan service pada ORB melalui
OA (Object Adapter). Saat suatu request selesai dijalankan, control dan nilai keluaran
dikembalikan ke client. OI dapat memilih OA yang akan digunakan. Keputusan pemilihan OA
ditentukan oleh jenis service yang dibutuhkan oleh OI tersebut. Infomasi tentang OI diberikan
pada saat instalasi dan disimpan dalam IR (Implementation Repository) yang digunakan selama
pengiriman hasil request.Dalam arsitekturnya, ORB tidak perlu dimplementasikan dalam sebuah
komponen tunggal; namun, ORB didefinisikan menggunakan interface-interface yang
dimilikinya. Interface-interface tersebut dikelompokan menjadi :
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Operasi yang sama untuk semua implementasi ORB
Operasi khusus untuk tipe objek tertentu
Operasi khusus untuk style OI tertentu
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.
1.3.1.4 Object Reference (OR)
Object Reference (OR) merupakan informasi yang dibutuhkan untuk menentukan sebuah objek
dalam ORB. Client dan Object Implementation (OI) memiliki bagian yang tertutup dari OR
dengan language mapping, yang kemudian disekat dari representasi aktualnya. Dua implementasi
ORB dapat memiliki representasi OR yang berbeda. Representasi OR pada sisi client hanya valid
selama masa hidup client tersebut. Semua ORB harus menyediakan language mapping yang
sama untuk sebuah OR (umumnya disebut objek) untuk sebuah bahasa pemrograman tertentu.
Hal ini memungkinkan sebuah program ditulis dalam bahasa apapun untuk mengakses OR secara
independen terhadap ORB tertentu.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
1.3.2 Interface Definition Language (IDL)
Objek-objek CORBA dispesifikasikan menggunakan interface, yang merupakan penghubung
anatara client dan server. Interface Definition Language (IDL) digunakan untuk mendefinisikan
interface tersebut. IDL menentukan tipe-tipe suatu objek dengan mendefinisikan interface-
interface objek tersebut. Sebuah interface terdiri dari kumpulan operasi dan parameter operasi
tersebut. IDL hanya mendeskripsikan interface, tidak mengimplementasikannya. Meskipun
sintaks yang dimiliki oleh IDL menyerupai sintaks bahasa pemrograman C++ dan Java., perlu
diingat, IDL bukan bahasa pemrograman. Melalui IDL, Object Implementation (OI) akan
memberitahu client --yang akan mengaksesnya—operasi apa saja dan method apa saja yang
harus dipanggil client tersebut.
Dari definisi IDL, objek-objek CORBA dipetakan ke bahasa pemrograman C, C++, Java, dan
lain-lain—yang memiliki IDL mapping. Bahasa Pemrograman yang berbeda dapat mengakses
objek-objek CORBA dalam bebagai cara yang berbeda. Pemetaan dari IDL ke bahasa
pemrograman tertentu harus sama untuk semua implementasi ORB. Language Mapping ini
menyertakan definisi tipe data untuk bahasa pemrograman tertentu dan procedure interface untuk
mengakses objek melalui ORB. Ini meliputi:
Struktur dari client stub interface (tidak dibutuhkan untuk bahasa OOP)
Dynamic Invocation Interface
Implementation Skeleton
Object Adapters
Direct ORB Interface
Language Mapping juga mendefinisikan interaksi antara pemanggilan objek dan langkah kontrol
pada client dan implementasi. Pemetaan yang paling umum menyediakan syncrhonous call,
dimana rutin mengembalikan nilai pada saat operasi suatu objek selesai dilakukan. Pemetaan
tambahan memungkinkan sebuah call diisisiasi dan control dikembalikan kepada program
1.3.2.1 Dynamic Invocation/Skeleton Interface(DI)
IDL interface 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 interfaceinterface tersebut.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Bila suatu aplikasi membutuhkan interface-interface yang tak didefiniskan saat kompilasi, maka
diperlukan DII (Dynamic Invocation Interface) atau pun DSI (Dynamic Skeleton Interface). DII
memungkinkan suatu aplikasi/client memanggil operasi-operasi dari sembarang interface. DSI
menyediakan suatu cara untuk mengirim request dari sebuah ORB ke sebuah Object
Implementation (OI) tanpa harus mengetahui tipe dari objek pada saat kompilasi.
1.3.3 Dynamic Invocation Interface (DII)
CORBA mendukung DII dan SII. Operasi invocation dapat dilakukan menggunakan static
interface ataupun dynamic interface. Static Invocation Interface (SII) ditentukan pad saat
kompilasi dan dihubungkan dengan client mengunakan stub. Sedangkan Dynamic Invocation
Interface (DII) memungkinkan aplikasi di sisi client untuk menggunakan server object tanpa
perlu mengetahui tipe obek-objek tersebut saat kompilasi. DII memungkinkan client untuk
mendapatkan sebuah instance dari objek CORBA dan membuat invocation pada objek tersebut
dengan menciptakan request yang sifatnya dinamis. DII menggunakan Interface Repository (IR)
untuk memvalidasi dan mengambil identifier operasi pada suatu request yang dibuat.
1.3.4 Komponen Interface Repository (IR)
Client menggunakan Interface Repository (IR) untuk mempelajari tentang interface-objek yang
tidak diketahui dan client menggunakan DII untuk memanggil methods suatu objek.
Empat tahap yang diperlukan saat penggunaan Dynamic Invocation Interface (DII):
Mengidentifikasikan target objek yang akan dipanggil
Mendapatkan target interface dari objek tersebut
Membangun invocation
Mengirim request da mendapatkan respon
Aplikasi-aplikasi client yang menggunakan Dynamic Invocation Interface (DII) tidak
lebih efisien dari yang menggunakan SII, tapai ada dua 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 OI yang diaktivasi ulang
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Interface Repository (IR) merupakan online database yang berisi tentang meta informasi tentang
tipe dari obyek ORB. Meta informasi yang disimpan meliputi informasi tentang modul, interface,
operasi, atribut, dan eksepsi dari obyek.
Interface Repository (IR) menyediakan cara lain untuk menentukan interface ke suatu
obyek. Interface ini dapat ditambahkan kelayanan IR. Dengan menggunakan IR, sebuah client
akan mencari obyek yang tidak diketahui pada saat kompilasi, menemukan informasi tentang
interface obyek tersebut dan implementasi suatu aktivasi dan deaktivasi.
ORB biasa menggunakan IR untuk:
1. menyediakan interoperability antar implementasi ORB yang berbeda,
2. menyediakan type checking dari signature sebuah request yang melalui SII dan DII.
3. mengecek kebenaran grafik inheritance,
4. mengelola instalasi dan distribusi interface definition dalam sebuah jaringan,
5. mengeizinkan designer apliaksi untuk memodifikasi interface definition, dan
mengizinkan language compiler untuk mengkompile stub dan skeleton dari IR bahkan langsung
dari file IDL.
-Implementation Repository
Implementation Repository terdiri dari informasi yang memperbolehkan ORB untuk mencari dan
mengaktivasi implementasi suatu objek. Meskipun untuk suatu ORB atau lingkungan operasi,
Implementation Repository merupakan tempat yang konvensional untuk menyimpan suatu
informasi.
1.3.4.1 Dynamic Skeleton Interface (DSI)
Dynamic Skeleton Interface (DSI) menyerupai DII, namun tereletak di sisi server. DSI
mungkinkan server ditulis tanpa harus mempunyai skeleton-skeleton atau informasi tentang
waktu kompilasi, dan untuk obyek mana server ini diimlementasikan. Fungsi utama Dynamic
Skeleton Interface (DSI) adalah mendukung implementasi gateway antara ORB yang memiliki
protocol komunikasi berbeda.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
1.3.5 Object Adapter (OA)
Object Adapter (OA) merupakan cara utama bagi sebuah Object Implemetation (OI) untuk
lmengakses service yang disediakan oleh ORB. Tugas utamanya adalah melakukan masking
(menutupi) perbedaan dalam implementasi objek untuk memperoleh portability yang lebih tinggi
1.3.6 -Internet Inter-ORB Protocol (IIOP)
CORBA mendefinisikan IIOP (Internet Inter-ORB Protocol) untuk mengatur bagaimana objek
berkomunikasi melalui jaringan. IIOP merupakan open protocol yang berjalan diatas TCP/IP.
Pada sisi server, CORBA membagi-bagikan obyek dan dalam hal menerima permintaan tidak
benar-benar secara langsung diterima. Sebagai gantinya, suatu proxy, disebut skeleton. Skeleton
adalah suatu obyek lokal yang dipergunakan dalam bahasa pemrograman pada obyek server,
dan akan diproses dalam server. Skeleton menerima permintaan yang disampaikan dari stub dan
meminta suatu metoda yang sesuai/cocok pada server. Dengan cara ini obyek server mengetahui
bahwa klien adalah lokal. Kemudian hasilnya dikembalikan dengan cara yang sama. Karenanya
maka kemudian mengirimkan permintaan antara klien dan server melalui jaringan IIOP
protocol yang digunakan.
Keseluruhan proses pengiriman permintaan antara clent dan server dapat ditunjukkan
melaui gambar diagram berikut ini.
By : Nurul,Ridho,Feni,JuliaSistem Terdistribusi
Gambar 4.
Proses Pengiriman Permintaan Antara Clent dan Server
Ketika IDL didefinisikan interface dipetakan kedalam bahasa pemrograman. Bahasa
berbeda dapat digunakan baik pada klien maupun server; stub dan skeleton dihasilkan melaui
pemetaan IDL ke bahasa server dan client. Yang harus dilakukan oleh semua pengembang
adalah meliputi kode yang dihasilkan dengan aplication yang dikembangkan.
Arsitektur CORBA adalah merupakan object oriented, oleh karena itu sama dengan
bahasa pemrograman obyek oriented. Dimana kita dapat membagi-bagikan obyek secara natural.
Tetapi bagaimana untuk bahasa yang bukan obyek oriented? Dalam hal ini, komunikasi
dilakuakan pada suatu tingkat yang lebih rendah dan mungkin harus mengatasi stub dan skeleton
secara langsung.