Definisi Middleware :
sebagai sebuah aplikasi yang secara logic yang terletak diantara lapisan aplikasi (Middleware didefinisikan seperti software yang menghubungkan komponen perangkat lunak atau aplikasi yang berisi sekumpulan layanan yang memungkinkan agar beberapa proses dapat berjalan untuk satu atau beberapa mesin computer untuk saling berinteraksi dalam sebuah jaringan.
Teknologi ini berkembang untuk menyediakan untuk Interoperabilitas dalam dukungan yang koheren didistribusikan pindah ke arsitektur, yang paling sering digunakan untuk mendukung dan mempermudah kompleksitas, aplikasi didistribusikan.
Middleware juga bisa disebut application layer) dan lapisan data dari sebuah arsitektur layer-layer TCP/IP Penggunaan middleware ini sangat dibutuhkan untuk bermigrasi dari aplikasi mainframe ke aplikasi client/server dan juga untuk menyediakan komunikasi antar platform yang berbeda termasuk server web, server aplikasi, dan alat-alat serupa yang mendukung pengembangan aplikasi dan pengiriman Middleware yang paling banyak dipublikasikan :
CORBA (Common Object Request Broker Architecture)
defini CORBA (Common Object Request Broker Architecture) adalah sebuah middleware yang dihasilkan oleh sebuah konsorsium yang bernama OMG (Object Management Group). CORBA didesain agar komponen cerdas diizinkan untuk dapat saling menjelajah satu dengan yang lain dan saling berinteraksi melalui suatu objek bus yang bernama ORB (Object Request Broker). Melalui ORB inilah objek–objek yang terletak di local atau di remote pada sistem terdistribusi berbasis CORBA saling berkomunikasi. Untuk mendefinisikan sistem berbasis CORBA terlebih dahulu kita harus mendefinisikan IDL (Interface Definition Language). CORBA dikatakan sebagai sebuah spesifikasi middleware yang ideal yang mendukung suatu sistem terdistribusi yang menerapkan teknologi berbasis objek, selain itu CORBA juga dikatakan sebagai suatu sistem yang terbuka, artinya bahwa teknologi CORBA merupakan sebuah standarisasi yang terbuka bagi siapasaja yang ingin menerapkan. Dengan adanya dua hal tersebut, pengembang dapat membangun sebuah aplikasi yang dapat berkomunikasi walaupun satu dengan yang lainnya menggunakan bahasa pemrograman yang berbeda.
KELEBIHAN corba:
• Programer dapat dengan mudah menulis aplikasi yang mampu bekerja secara independent antar platform dan jaringan
• Memberikan kemampuan untuk mengintegrasi software aplikasi yang berbeda,tanpa harus tergantung pada fasilitas komunikasi tingkat bawah
• Bekerja secara baik dengan beberapa midleware-midleware yang ada,termasuk microsoft distributor sistem(DCOM) .suport penggunaan secara statis maupun dinamis
• Memberikan ekstensi optional untuk area yang tidak bisa dijamah oleh core aplikasi.
Distributed Component Object Model (DCOM)
Distributed Component Object Model adalah protokol yang berfungsi untuk mengaktifkan komponen pada perangkat lunak (software) agar dapat berkomunikasi langsung dengan jaringan. (Spangler, 2004). Tujuan DCOM adalah agar komponen yang telah dibuat dapat diregister di suatu komputer dan di akses oleh banyak komputer lain. Protokol yang digunakan oleh DCOM dapat meliputi:
1. Protokol TCP/IP
2. Protokol UDP/IP
3. Protokol HTTP
4. Protokol RPC
Secara umum DCOM menerapkan sistem Klien-Server sehingga terdapat istilah DCOM klien dan DCOM server. Cara kerja DCOM yang menggunakan Remote Procedure Call dimana Object diletakkan di dalam Back-End (Server) dalam bentuk file Dll (Dynamic Linking Library) dan klien akan mengakses objek tersebut
melalaui media jaringan yang ada.
RMI (Remote Method Invocation)
Merupakan 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.
Aplikasi RMI sering kali terdiri dari dua program terpisah yaitu server dan client. Aplikasi server semacam ini biasanya membuat beberapa objek remote, menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses, serta menunggu client menginvoke/memanggil method dari objek-objek remote tersebut. Aplikasi client mendapatkan referensi remote ke satu atau lebih objek remote di server dan menjalankan method dari objek tersebut.
RMI menyediakan mekanisme dimana server dan client berkomunikasi danmemberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi. Dalam RMI, semua informasi tentang satu pelayanan server disediakan dalam suatu definisi remote interface. Dengan melihat pada definisi interface, seorang pemrogram dapat memberitahukan method apa yang dapat dikerjakan oleh server, meliputi data apa yang diterima dan data apa yang akan dikirim sebagai tanggapan.
Definisi yang ada pada remote interface menentukan karakteristik methods yang disediakan server yang dapat dilihat oleh client. Client programmer harus dapat mengetahui methods apa yang disediakan server dan bagaimana memanggilnya langsung dengan melihat ke remote interface. Client mendapatkan referensi ke remote object melalui RMI registry.
Contoh RMI dikenal seperti Proxy dan Skeleton.
Membangun suatu aplikasi terdistribusi menggunakan RMI meliputi 6 langkah. Keenam langkah tersebut adalah:
1. Mendefinisikan remote interface
2. Implementasi remote interface dan server
3. Pengembangan client (atau applet) yang menggunakan remote interface
4. Mengkompilasi source files dan mem-buat stub and skeletons
5. Memulai (start) RMI registry
6. Menjalankan server dan client
Keuntungan RMI
• Salahsatu 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
Kelemahan RMI
proses pembukaan socket yang kadang-kadang tidak dapat diimplementasikan lewat jaringan internet, tapi hal ini bisa diatasi dengan menggunakan Spring HttpInvoker, sama persis dengan RMI tapi lewat protokol HTTP.
Teknologi ini berkembang untuk menyediakan untuk Interoperabilitas dalam dukungan yang koheren didistribusikan pindah ke arsitektur, yang paling sering digunakan untuk mendukung dan mempermudah kompleksitas, aplikasi didistribusikan.
Middleware juga bisa disebut application layer) dan lapisan data dari sebuah arsitektur layer-layer TCP/IP Penggunaan middleware ini sangat dibutuhkan untuk bermigrasi dari aplikasi mainframe ke aplikasi client/server dan juga untuk menyediakan komunikasi antar platform yang berbeda termasuk server web, server aplikasi, dan alat-alat serupa yang mendukung pengembangan aplikasi dan pengiriman Middleware yang paling banyak dipublikasikan :
CORBA (Common Object Request Broker Architecture)
defini CORBA (Common Object Request Broker Architecture) adalah sebuah middleware yang dihasilkan oleh sebuah konsorsium yang bernama OMG (Object Management Group). CORBA didesain agar komponen cerdas diizinkan untuk dapat saling menjelajah satu dengan yang lain dan saling berinteraksi melalui suatu objek bus yang bernama ORB (Object Request Broker). Melalui ORB inilah objek–objek yang terletak di local atau di remote pada sistem terdistribusi berbasis CORBA saling berkomunikasi. Untuk mendefinisikan sistem berbasis CORBA terlebih dahulu kita harus mendefinisikan IDL (Interface Definition Language). CORBA dikatakan sebagai sebuah spesifikasi middleware yang ideal yang mendukung suatu sistem terdistribusi yang menerapkan teknologi berbasis objek, selain itu CORBA juga dikatakan sebagai suatu sistem yang terbuka, artinya bahwa teknologi CORBA merupakan sebuah standarisasi yang terbuka bagi siapasaja yang ingin menerapkan. Dengan adanya dua hal tersebut, pengembang dapat membangun sebuah aplikasi yang dapat berkomunikasi walaupun satu dengan yang lainnya menggunakan bahasa pemrograman yang berbeda.
KELEBIHAN corba:
• Programer dapat dengan mudah menulis aplikasi yang mampu bekerja secara independent antar platform dan jaringan
• Memberikan kemampuan untuk mengintegrasi software aplikasi yang berbeda,tanpa harus tergantung pada fasilitas komunikasi tingkat bawah
• Bekerja secara baik dengan beberapa midleware-midleware yang ada,termasuk microsoft distributor sistem(DCOM) .suport penggunaan secara statis maupun dinamis
• Memberikan ekstensi optional untuk area yang tidak bisa dijamah oleh core aplikasi.
Distributed Component Object Model (DCOM)
Distributed Component Object Model adalah protokol yang berfungsi untuk mengaktifkan komponen pada perangkat lunak (software) agar dapat berkomunikasi langsung dengan jaringan. (Spangler, 2004). Tujuan DCOM adalah agar komponen yang telah dibuat dapat diregister di suatu komputer dan di akses oleh banyak komputer lain. Protokol yang digunakan oleh DCOM dapat meliputi:
1. Protokol TCP/IP
2. Protokol UDP/IP
3. Protokol HTTP
4. Protokol RPC
Secara umum DCOM menerapkan sistem Klien-Server sehingga terdapat istilah DCOM klien dan DCOM server. Cara kerja DCOM yang menggunakan Remote Procedure Call dimana Object diletakkan di dalam Back-End (Server) dalam bentuk file Dll (Dynamic Linking Library) dan klien akan mengakses objek tersebut
melalaui media jaringan yang ada.
RMI (Remote Method Invocation)
Merupakan 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.
Aplikasi RMI sering kali terdiri dari dua program terpisah yaitu server dan client. Aplikasi server semacam ini biasanya membuat beberapa objek remote, menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses, serta menunggu client menginvoke/memanggil method dari objek-objek remote tersebut. Aplikasi client mendapatkan referensi remote ke satu atau lebih objek remote di server dan menjalankan method dari objek tersebut.
RMI menyediakan mekanisme dimana server dan client berkomunikasi danmemberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi. Dalam RMI, semua informasi tentang satu pelayanan server disediakan dalam suatu definisi remote interface. Dengan melihat pada definisi interface, seorang pemrogram dapat memberitahukan method apa yang dapat dikerjakan oleh server, meliputi data apa yang diterima dan data apa yang akan dikirim sebagai tanggapan.
Definisi yang ada pada remote interface menentukan karakteristik methods yang disediakan server yang dapat dilihat oleh client. Client programmer harus dapat mengetahui methods apa yang disediakan server dan bagaimana memanggilnya langsung dengan melihat ke remote interface. Client mendapatkan referensi ke remote object melalui RMI registry.
Contoh RMI dikenal seperti Proxy dan Skeleton.
Membangun suatu aplikasi terdistribusi menggunakan RMI meliputi 6 langkah. Keenam langkah tersebut adalah:
1. Mendefinisikan remote interface
2. Implementasi remote interface dan server
3. Pengembangan client (atau applet) yang menggunakan remote interface
4. Mengkompilasi source files dan mem-buat stub and skeletons
5. Memulai (start) RMI registry
6. Menjalankan server dan client
Keuntungan RMI
• Salahsatu 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
Kelemahan RMI
proses pembukaan socket yang kadang-kadang tidak dapat diimplementasikan lewat jaringan internet, tapi hal ini bisa diatasi dengan menggunakan Spring HttpInvoker, sama persis dengan RMI tapi lewat protokol HTTP.