Tri Rahayu
10.01.53.0020
A2 / Malam
Middleware ( CORBA, DCOM, RMI )
Middleware
Tujuan
utama layanan middleware adalah untuk membantu memecahkan
interkoneksi beberapa aplikasi dan masalah interoperabilitas.
Middleware sangat dibutuhkan untuk bermigrasi dari aplikasi mainframe
ke aplikasi client/server dan juga untuk menyediakan komunikasi antar
platform yang berbeda.
Perangkat lunak ini
terdiri dari serangkaian pelayanan yang mengizinkan bermacam-macam
proses berjalan dalam satu atau lebih mesin untuk dapat saling
berinteraksi satu sama yang lainnya. Lambat laun teknologi ini
menyediakan kemampuan interoperabilitas yang mendukung pada
perpindahan ke arsitektur distribusi yang berhubungan, yang biasanya
sering digunakan untuk mendukung dan menyederhanakan kerumitan,
aplikasi terdistribusi.
Termasuk didalamnya, web server, aplikasi server dan peralatan sama yang mendukung pengembangan dan pengantaran aplikasi. Middleware secara khusus menjadi bagian dari teknologi informasi modern berbasis XML, SOAP, web service dan pelayanan berbasis arsitektur. Middleware berada diantara aplikasi perangkat lunak yang mungkin bekerja pada system operasi yang berbeda. Middleware serupa dengan middle layer dari sebuah tiga baris sistem arsitektur tunggal, kecuali usahanya melewati bermacam-macam system atau aplikasi. Contohnya perangkat lunak EAI (Enterprise Application Integration), perangkat lunak telekomunikasi, monitor transaksi dan perangkat lunak pemesanan dan pengantrian.
Termasuk didalamnya, web server, aplikasi server dan peralatan sama yang mendukung pengembangan dan pengantaran aplikasi. Middleware secara khusus menjadi bagian dari teknologi informasi modern berbasis XML, SOAP, web service dan pelayanan berbasis arsitektur. Middleware berada diantara aplikasi perangkat lunak yang mungkin bekerja pada system operasi yang berbeda. Middleware serupa dengan middle layer dari sebuah tiga baris sistem arsitektur tunggal, kecuali usahanya melewati bermacam-macam system atau aplikasi. Contohnya perangkat lunak EAI (Enterprise Application Integration), perangkat lunak telekomunikasi, monitor transaksi dan perangkat lunak pemesanan dan pengantrian.
Middleware adalah Software
yang berfungsi sebagai lapisan konversi atau penerjemah.Juga sebagai
consolidator dan integrator. Middleware saat ini dikembangkan untuk
memungkinkan satu aplikasi berkomunikasi dengan lainnya walaupun
berjalan pada platform yang berbeda. Saat ini terdapat bermacam
produk yang menawarkan middleware
Tujuan dan asalusul Middleware
Tujuan dan asalusul Middleware
- Middleware adalah S/W penghubung yang berisi sekumpulan layanan yang memungkinkan beberapa proses dapat berjalan pada satu atau lebih mesin untuk
saling berinteraksi pada suatu jaringan - Middleware sangat dibutuhkan untuk bermigrasi dari aplikasi mainframe ke aplikasi client/server dan juga untuk menyediakan komunikasi antar platform yang berbeda
- Middleware yang paling banyak dipublikasikan :
– Open Software Foundation's Distributed Computing Environment (DCE),
– Object Management Group's Common Object Request Broker Architecture (CORBA),
– Microsoft's COM/DCOM (Component Object Model)Lapisan middleware
Arsitektur
Teknis
- Layanan Middleware merupakan sekumpulan S/W terdistribusi yang menempati lapisan antara aplikasi dan sistem operasi serta layanan jaringan di suatu node pada jaringan komputer
- Menyediakan kumpulan fungsi API (Application Programming Interfaces) yang lebih tinggi daripada API yang disediakan sistem operasi dan layanan jaringan yang memungkinkan suatu aplikasi dapat :
– Mengalokasikan suatu layanan secara transparan pada jaringan,
– Menyediakan interaksi dengan aplikasi atau layanan lain
– Tidak tergantung dari layanan jaringan
– Handal dan mampu memberikan suatu layanan
– Diperluas (dikembangkan) kapasitasnya tanpa kehilangan fungsinya
Messaging
Middleware
Merupakan antarmuka dan transportasi antar aplikasi
Merupakan antarmuka dan transportasi antar aplikasi
- Menyimpan data dalam suatu antrian message jika mesin tujuan sedang mati atau overloaded
- Mungkin berisi business logic yang merutekan message ke tujuan sebenarnya dan memformat ulang data lebih tepat.
- Sama seperti sistem messaging email, kecuali messaging middleware digunakan untuk mengirim data antar aplikasi
gambar
massaging middleware:
Produk Messaging Middleware
Produk utama messaging (pengiriman pesan) untuk pengaturan komunikasi asinkronus antar aplikasi adalah MQSeries dari IBM. MQSeries telah dipasangkan pada semua platform server. Microsoft memperkenalkan sistem messagingnya sendiri yang digabungkan dengan Component Object Model(COM), yaitu Microsoft Message Queue Server (MSMQ). MSMQ dan MQSeries menawarkan fungsi yang sama.
Distributed Processing
- Sistem objek terdistribusi, seperti CORBA, DCOM dan EJB memungkinkan proses-proses untuk dijalankan di sembarang node pada jaringan
- Sistem Objek terdistrbusi tersebut berbeda dari messaging middleware, yang menyebabkan proses proses(komponen/objek) dijalankan dalam mode synchronous daripada pengiriman data secara asynchronous
Remote
Procedure Calls
- Remote Procedure Calls (RPC) memungkinkan suatu bagian logika aplikasi untuk didistribusikan pada jaringan. Contoh :
– SUN RPC, diawali dengan network file system (SUN NFS),
– DCE RPC, sebagai dasar Microsoft’s COM. - Object Request Brokers (ORBs) memungkinkan objek untuk didistribusikan dan dishare pada jaringan yang heterogen.
– Pengembangan dari model prosedural RPC,
– Sistem objek terdistribusi, seperti CORBA, DCOM,EJB, dan .NET memungkinkan proses untuk dijalankan pada sembarang jaringan.
Middleware
Application Server
- Sebuah Web-based Application server, yang menyediakan antarmuka untuk berbagai aplikasi,digunakan sebagai middleware antara browser dan aplikais.
- J2EE adalah contoh application serverA wide range of server-side processing has been supported by appservers(i.e.;J2EE).Pertimbangan PemakaianTujuan utama layanan middleware adalah untuk membantu memecahkan interkoneksi beberapa aplikasi dan masalah interoperabilitas. Bagaimanapun juga middleware bukanlah “obat mujarab” :
- Ada jarak antara prinsip dan praktek. Beberapa middleware membuat suatu aplikasi tergantung pada suatu produk tertentu
- Sedikitnya jumlah middleware menjadikan rintangan tersendiri.Untuk menjaga lingkungan komputasi mudah diatur,pengembang biasanya memilih sejumlah kecil layanan yang memenuhi kebutuhan mereka
- Selama layanan middleware masih memunculkan abtraksi pemrograman terdistrbusi, middleware masih akan memberikan bagi si pengembang suatu pilihan rancangan aplikasi yang cukup sulit. Contoh : pengembang masih harus menentukan layanan atau fungsi apa yang harus diletakkan pada client ataupun server.
CORBA
adalah sebuah arsitektur software yang berbasis pada teknologi
berorientasi obyek atau Object Oriented (OO) dengan paradigma
client-server. Dalam terminologi OO, sebuah obyek
berkomunikasi dengan obyek lain dengan cara pengiriman pesan (message
passing). Konteks komunikasi ini kemudian dipetakan ke dalam model
client-server: satu obyek berperan sebagai client (si
pengirim pesan) dan yang lain bertindak sebagai server (yang
menerima pesan dan memroses pesan yang bersangkutan). Sebagai contoh,
dalam ilustrasi di awal tulisan ini, jika si pasien memerlukan obat
tertentu, maka obyek aplikasi di tempat praktek dokter berlaku
sebagai client dan mengirim pesan ke obyek aplikasi di apotik
guna mengetahui apakah obat yang diperlukan tersedia di sana.
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).
Tujuan
:
Meng-automatisasi
tugas-tugas yang umum dalam pemrograman jaringan, seperti object
registration, location dan activation; framing dan error-handling;
parameter marshaling dan un-marshaling; dan operation dispatching.
Automatisasi ini biasa dihandle oleh sebuah software perantara yang
disebut ORB (Object Request Broker). Posisinya berada di antara layer
Data dan aplikasi.
Kelebihan
memakai CORBA :- Memberikan kemampuan untuk mengintegrasi software aplikasi yang berbeda, tanpa harus tergantung pada fasilitas komunikasi tingkat bawah.
- Bekerja secara baik dengan beberapa middleware-middleware yang ada, termasuk Microsoft distributed system(DCOM).
- Memberikan extensi opsional untuk area yang tidak bisa dijamah oleh core aplikasi.
- Support penggunaan secara statis maupun dinamis.
- Punya protocol
yang menjadi kesepakatan – IIOP, yang memfasilitasi komunikasi
antar ORB.
Pemrograman Berbasis CORBA
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.
Dalam teknologi OO, interface dapat dikatakan sebagai "ikatan
kontrak" antara dua obyek yang akan berkomunikasi. Bagi obyek
server, interface berfungsi sebagai "iklan"
tentang apa saja yang bisa dikerjakannya. Bagi client,
interface berfungsi untuk mengetahui layanan-layanan apa yang
disediakan oleh server. Dalam CORBA, spesifikasi interface
merupakan hal yang pertama kali dilakukan, layaknya dalam kehidupan
nyata di mana sebelum terjadi transaksi, dibuat dulu kontraknya.
Spesifikasi interface dibuat menggunakan sebuah bahasa khusus
yang bersifat standar yang disebut Interface Definition Language
(IDL).
Sintaks
IDL sendiri mirip dengan sintaks bahasa C++. Berikut ini contoh
sebuah spesifikasi interface untuk layanan yang disediakan oleh obyek
aplikasi di apotik. Ingat bahwa spesifikasi ini berlaku baik untuk
client maupun implementasi obyek.
interface
checkObat {
float
checkHarga(in string namaObat);
boolean
checkTersedia(in string namaObat);
};
Sekilas
definisi di atas mirip dengan definisi kelas dalam C++. Perbedaan
yang paling nyata adalah tidak ada kode program untuk fungsi
checkHarga
dan checkTersedia
! Perlu diingat bahwa interface
hanya menyatakan apa
yang tersedia (aspek what),
tidak menyebutkan bagaimana
menyediakannya (aspek how).
Kita tidak akan membahas sintaks IDL dalam kesempatan ini. Fokus kita
adalah bagaimana menggunakan spesifikasi interface
yang dibuat dengan IDL ini untuk membuat client
dan implementasi obyek dalam aplikasi.
Interface
yang ditulis dengan IDL hanya merupakan kerangka bagi program client
dan implementasi obyek. Pemrogram masih harus mengisi detil-detil
keduanya sehingga membentuk program yang utuh. Pada contoh
interfacecheckObat
di atas misalnya, fungsi-fungsi checkHarga
dan checkTersedia
harus diimplementasikan.
Yang
perlu diperhatikan dalam pemrograman client dan implementasi
obyek adalah bahasa pemrograman yang digunakan. Bahasa yang bisa
digunakan adalah yang memiliki pemetaan (mapping) dengan IDL.
Pemetaan ini menyebutkan ekuivalensi tipe data, fungsi, dan
konstruksi pemrograman IDL lainnya dalam konstruksi pemrograman
bahasa yang bersangkutan. Pada umumnya bahasa pemrograman populer
seperti C, C++, Java, Smalltalk, dan COBOL telah memiliki pemetaan
ini. Seperti telah dijelaskan di depan, client dan
implementasi obyek dapat menggunakan bahasa pemrograman yang berbeda.
Langkah
selanjutnya adalah kompilasi program. Program client,
implementasi obyek, dan spesifikasi interface dikompilasi.
Spesifikasi interface dikompilasi dengan kompiler IDL,
menghasilkan kode stub (untuk client) dan skeleton
(untuk implementasi obyek). Tiap bahasa yang didukung memiliki
kompiler IDL sendiri. Selanjutnya dilakukan proses linking
untuk menghasilkan program yang bisa dieksekusi.
DCOM
DCOM
adalah (Distributed COM)merupakan suatu teknologi cara melakukan
distribusi COM. Istilah COM sama seperti komponen. Tujuan DCOM adalah
agar komponen yang telah kita buat dan diregister di suatu komputer
dapat di akses oleh banyak komputer lain.
DCOM
sendiri bukan merupakan teknologi beru karena teknologi ini banyak
dipakai dalam sistem distribusi pada sistem jaringan TCP/IP. Protokol
yang digunakan oleh DCOM dapat meliputi:
-
Protokol TCP/IP
-
Protokol UDP/IP
-
Protokol HTTP
-
Protokol RPC
Secara
umum DCOM menerapkan sistem Client-Serversehingga terdapat istilah
DCOM clientdan DCOM server.
DCOM
merupakan ektensi dari Component Object Model (COM). Pada COM kita
melihat bagaimana suatu komponen client saling berinteraksi.
Interaksi ini dapat didefinisikan sebagai hubungan secara langsung
antara komponen (COM Server) dan COM Client. Aplikasi client
memanggil method yang ada di komponen COM tanpa perantara apapun dan
terjadi dalam suatu proses baik pada aplikasi client maupun komponen
itu sendiri.
Sedangkan
pada sistem operasi yang baru proses akan dilindungi dari gangguan
proses yang lain sehingga aplikasi client tidak akan langsung
mamanggil komponen tetapi melalui interproses yang disediakan oleh
sistem operasi. Ketika client dan server pada tempat yang berbeda,
DCOM akan menggantikan lokal interproses yang berkomunikasi dengan
sebuah jaringan protokol. Melalui protokol DCOM ini, aplikasi client
dapat mengakses DCOM server.
DCOM
juga menyembunyikan lokasi suatu komponen sehingga aplikasi tinggal
langsung memanggil method yang ada di komponen DCOM. Lokasi DCOM yang
independen inilah yang membuat penyederhanaan pada penerapan sistem
distribusi suatu komponen dan juga meningkatkan performance.
Bayangkan kita mempunyai
komponen
yang banyak dan kemudian dilakukan distribusi ke jaringan LAN, maka
hal ini akan meningkatkan laju trafik jaringan sehingga komunikasi
data pada jaringan LAN ini akan jauh lebih lambat.
Dengan
adanya DCOM maka semua komponen didistribusikan dalam suatu protokol
DCOM dan proses yang sama. Ketika suatu aplikasi mengakses komponen
melalui DCOM maka DCOM akan melakukan proses validasi komponen,
tujuanya untuk mengakses apakah komponen yang dipanggil ini ada
didalam DCOM.
Cara
Kerja Remote DCOM
Salah
satu kegunaan DCOM adalah distribusi dan remoting suatu objek ke
komponen lain dalam suatu jaringan komputer. Ketika kita akan membuat
suatu komponen COM dan komponen ini akan diakses banyak komputer
bahkan dalam waktu bersamaan, maka kita harus melakukan sistem
distribusi untuk objek yang kita buat belum lagi kita akan menghadapi
load balancing karena banyaknya yang mengakses data objek oleh
komputer lain. Dengan DCOM ini,kita akan mendapatkan solusi untuk
masalah
sistem distribusi.
Kita
telah ketahui bahwa apliaksi dikatakan berbasis sistem remoting bila
apabila aplikasi itu mengakses suatu onjek yang dapat berupa data,
suara, informasi dan sebagainya dari suatu komputeryang ada dalam
suatu jaringan tertentu. Dalam kasus ini DCOM client akan berfungsi
sebagai remoter yaitu objek yang melakukan remote ke komputer serer
melalui DCOM Server.
Jika
kita perhatikan, kita akan melihat bahwa komunikasi antara komputer
dilakukan dan melalui DCOM. Misalkan komputerA meminta data dari
database, maka komputer A akan merequest data melalui objek yang ada
di DCOMClient. Kemudian DCOM client akan melakukan validasi mengenai
komponen objek yang dieksekusi, jika ditemukan objek yang meminta,
maka DCOM client akan mengecek sumber objek berasal sebagai contohnya
suber objek berasal dari komputer server S, maka DCOM client akan
melakukan remoting ke komputerS melalui DCOM server yang dimilikinya.
DCOM
serve akan mengecek authorisasinyayang dimilki oleh komputer A. Jika
komputer A mmpunyai hak akses maka DCOM server akan mengeksekusi
sesuai permintaan komputer A dan hasilnya dikembalikan ke DCOM
Client. Proses ini akan sama untuk setiap komputer yang ingin
melakukan remoting melalui DCOM.
RMI
Remote
Method Invocation (RMI) adalah sebuah teknik pemanggilan method
remote yang lebih secara umum lebih baik daripada RPC. RMI
menggunakan paradigma pemrograman berorientasi obyek (Object Oriented
Programming). RMI memungkinkan kita untuk mengirim obyek sebagai
parameter dari remote method. Dengan dibolehkannya program Java
memanggil method pada remote obyek, RMI membuat pengguna dapat
mengembangkan aplikasi Java yang terdistribusi pada jaringan.
Sebagai contoh.:
Pada paket Whiteboard, RMI digunakan untuk program-program Chat, Whiteboard dan Projector. Dalam program Chat, RMI digunakan untuk memasukkan input dari para pengguna, baik dosen maupun mahasiswa, ke komputer server. Setelah itu, server akan mengeluarkan output berupa hasil percakapan antar pengguna kepada semua komputer klien. Pada Whiteboard, penggunaan RMI terletak pada pengiriman graphics dan image antara komputer server dan klien. Sedangkan pada Projector, RMI digunakan agar dosen, sebagai klien, bisa mengatur indeks tampilan pada Projector yang berlangsung pada komputer mahasiswa, yang berfungsi sebagai klien lainnya.
Remote
Procedure Calls (RPCs)
- Memanggil fungsi yang berada di komputer lain
- Komunikasi di atas jaringan
- Marshal data
- Tipe-tipe data terbatas
- cenderung memakai interface definition language (IDL)
Remote
Method Invocation (RMI)
- Implementasi RPC dengan Java
- Meng-handle marshaling data across the network
- Transfer Java objects
- No IDL is required
Keuntungan
RMI
alahsatu
keuntungan RMI adalah kemampuan untuk download bytecodes
(code) dari suatu object's class, jika class tsb tidak
terdefinisikan di VM-nya penerima. Type-type dan metode-metode object
(class), yang terletak dalam satu VM, dapat dikirim ke VM yang lain,
yang mungkin saja remote. Sifat-sifat object yang terkirim ini tidak
berubah sama sekali
---------o0o----------
permisi gan, saya ada sedikit tulisan mengenai protokol WebSocket yang saya terapkan kedalam beberapa bahasa pemrograman berikut: http://datacomlink.blogspot.co.id/2015/11/implementasi-server-websocket-rfc-6455.html ditunggu feedbacknya gan, semoga menambah wawasan bersama, terima kasih gan.. :D
BalasHapus