Selasa, 25 Juni 2013

Middleware ( CORBA, DCOM, RMI )

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.

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
  • 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
  • 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 Pemakaian 
    Tujuan 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.


Cobra

                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 :
  • Programmer 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 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.

Aplikasi RMI seringkali 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.


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----------

  •   

1 komentar:

  1. 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