Senin, 06 Oktober 2014

SISTEM TERDISTRIBUSI DAN PERAN MIDDLEWARE


SISTEM TERDISTRIBUSI

1.1. Definisi Sitem Terdistribusi
Sistem distribusi adalah sebuah sistem yang komponennya berada pada jaringan komputer. Komponen tersebut saling berkomunikasi dan melakukan koordinasi hanya dengan pengiriman pesan (message passing).
Sistem terdistribusi merupakan kebalikan dari Sistem Operasi Prosesor Jamak. Pada sistem tersebut, setiap prosesor memiliki memori lokal tersendiri. Kumpulan prosesornya saling berinteraksi melalui saluran komunikasi seperti LAN dan WAN menggunakan protokol standar seperti TCP/IP. Karena saling berkomunikasi, kumpulan prosesor tersebut mampu saling berbagi beban kerja, data, serta sumber daya lainnya.
Sistem terdistribusi dapat dikatakan sebagai suatu keberadaan beberapa komputer yang bersifat transparan dan secara normal, setiap sistem terdistribusi mengandalkan layanan yang disediakan oleh jaringan komputer.
Dalam penggunaanya sistem terdistribusi sangat diperlukan karena:
   ü  Performance
Sekumpulan prosesor dapat menyediakan kinerja yang lebih tinggi daripada komputer yang terpusat
   ü  Distribution
Banyak aplikasi yang terlibat, sehingga lebih baik jika dipisah dalam mesin yang berbeda (contoh: aplikasi perbankan, komersial)
   ü  Reliability
Jika terjadi kerusakan pada salah satu mesin, tidak akan mempengaruhi kinerja system secara keseluruhan
   ü  Incremental Growth
Mesin baru dapat ditambahkan jika kebutuhan proses meningkat
   ü  Sharing Data/Resource
Resource adalah:
– Segala hal yang dapat digunakan bersama dalam jaringan komputer.
– Meliputi hardware (e.g. disk, printer, scanner), juga software (berkas, basis data, obyek data).
   ü  Communication
Menyediakan fasilitas komunikasi antar manusia
Beberapa contoh dari sistem terdistribusi yaitu :
    1.  Internet, merupakan suatu bentuk jaringan global yang menghubungkan komputer denga satu sama lainnya, yang dapat berkomunikasi dengan media IP sebagai protokol.



2.   Intranet
● Jaringan yang teradministrasi secara lokal
● Biasanya proprietary
● Terhubung ke internet (melalui firewall)
● Menyediakan layanan internal dan eksternal


       3. Sistem terdistribusi multimedia
Biasanya digunakan pada infrastruktur internet
ü  Karakteristik
Sumber data yang heterogen dan memerlukan sinkronisasi secara real time
ü  Video, audio, text Multicast
Contoh:
- Teleteaching tools (mbone-based, etc.)
- Video-conferencing
- Video and audio on demand
      4. Mobile dan sistem komputasi ubiquitous
ü  Sistem telepon Cellular (e.g., GSM)
Resources dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak


ü  Komputer laptop, ubiquitous computing
ü  Handheld devices, PDA, etc
  5. World wide web
ü  Arsitektur client/server tebuka yang diterapkan di atas infrastruktur internet
ü  Shared resources (melalui URL)
  6. Contoh distribusi yang lainnya seperti
    ü  Sistem telepon seperti ISDN, PSTN
    ü  Manajemen jaringan seperti Administrasi sesumber jaringan
    ü  Network File System (NFS) seperti Arsitektur untuk mengakses sistem file melalui jaringan.

1.2. Karakteristik Sistem Terdistribusi
       Dalam system terdistribusi terdapat beberapa karakteristik yaitu :
   1. No global clock
- Terdapat batasan pada ketepatan proses sinkronisasi clock pada sistem terdistribusi, oleh karena asynchronous message passing
- Pada sistem terdistribusi, tidak ada satu proses tunggal yang mengetahui global state sistem saat ini (disebabkan oleh concurrency dan message passing)
        2. Independent failure
- Kemungkinan adanya kegagalan proses tunggal yang tidak diketahui
- Proses tunggal mungkin tidak peduli pada kegagalan sistem keseluruhan
   3. Concurrency of components
- E.g. Beberapa pemakai browser mengakses suatu halaman web secara bersamaan.
- Bagaimana jika ada operasi update?

1.3. Model Sistem Terdistribusi
       Dalam pelaksanaannya sistem terdistribusi memiliki berbagai bentuk (model), yaitu :
           1. Sistem client - server
Merupakan bagian dari model sistem terdistribusi yang membagi jaringan berdasarkan
pemberi dan penerima jasa layanan. Pada sebuah jaringan akan didapatkan: file server, time
server, directory server, printer server, dan seterusnya.


2. Sistem point to point
   Merupakan bagian dari model sistem terdistribusi dimana sistem dapat sekaligus berfungsi sebagai client maupun server.
3. Sistem terkluster
Adalah gabungan dari beberapa sistem individual (komputer) yang dikumpulkan pada suatu lokasi, saling berbagi tempat penyimpanan data (storage), dan saling terhubung dalam jaringan lokal (Local Area Network). Sistem kluster memiliki persamaan dengan sistem paralel dalam hal menggabungkan beberapa CPU untuk meningkatkan kinerja komputasi. Jika salah satu mesin mengalami masalah dalam menjalankan tugas maka mesin lain dapat mengambil alih pelaksanaan tugas itu. Dengan demikian, sistem akan lebih handal dan fault tolerant dalam melakukan komputasi.

        Dalam hal jaringan, sistem kluster mirip dengan sistem terdistribusi (distributed system).    Bedanya, jika jaringan pada sistem terdistribusi melingkupi komputer-komputer yang lokasinya        tersebar maka jaringan pada sistem kluster menghubungkan banyak komputer yang dikumpulkan     dalam satu tempat.

1.4. Permasalahan Sistem Terdistribusi
Masalah dengan sistem terdistribusi yang dapat dimunculkan antara lain berkaitan dengan :
* Software - bagaimana merancang dan mengatur software dalam Distribusi Sistem
* Ketergantungan pada infrastruktur jaringan
* Kemudahan akses ke data yang di share, memunculkan masalah keamanan

Dalam setiap penggunaan suatu sistem, banyak sekali ditemui permasalahan – permasalahan yang muncul, begitu juga dengan sistem terdistribusi. Selain permasalahan – permasalahan yang akan dihadapi terdapat tantangan – tantangan dalam sistem terdistribusi.

1.5. Tantangan Sistem Terdistribusi
Tantangan yang ada dalam Sistem Terdistribusi yaitu :
1. Keheterogenan komponen (heterogenity)
2. Keterbukaan (openness)
3. Keamanan (security)
4. Scalability
5. Penanganan kegagalan (failure handling)
6. Concurrency of components
7. Transparansi

1. Keheterogenan
*  Suatu sistem terdistribusi dapat dibangun dari berbagai network, operation system, hardware dan programming language yang berbeda.
*    IP dapat digunakan utk mengatasi perbedaan jaringan.
*    Middleware mengatasi perbedaan lainnya.
2. Keterbukaan
      *    Mendukung extensibility.
      *    Setiap komponen memiliki antarmuka (interface), yg di-publish ke komponen lain.
      *   Perlu integrasi berbagai komponen yg dibuat oleh programmer atau vendor ygberbeda.
3. Keamanan
                      *   Shared resources & transmisi informasi rahasia perlu dilengkapi dengan enkrips
                      *    Cegah denial of service.
  4. Scalability
       *    Penambahan pemakai membutuhkan penambahan resource yg konstan
       *    Cegah bottleneck.
       *    Jika perlu, gunakan replikasi.
5. Penanganan Kegagalan
       *   Setiap proses (komputer atau jaringan) dapat mengalami kegagalan secara independen.
       *   Komponen lain harus tetap berjalan dgn baik.
       *   E.g. failed branch in a distributed banking system.
6. Concurrency
       *   Multiple users with concurrent requests to a shared resources.
       *   Setiap resource hrs aman di lingkungan tersebut di atas.
7. Transparansi
Transparan: bagi pemakai, keberadaan beberapa komponen tampak sebagai satu sistem saja.
*    Access transparency:
Local & remote resources dapat diakses dengan operasi yg sama.
*   Location transparency:
– Resource dapat diakses tanpa tahu di mana lokasinya.
– Bagaimana pendapat Anda mengenai hyperlink & URL?
*  Concurrency transparency
– Beberapa proses dapat sama-sama menggunakan suatu resource tanpa saling interferensi.
       – Bagaimana jika beberapa pemakai secara bersamaan akan mengubah suatu berkas:
*   Replication transparency:
    Pemakai maupun pemrogram aplikasi tidak perlu mengetahui adanya                replikasi resource, yg dapat meningkatkan kehandalan dan unjuk kerja.
*Failure transparency:
  Pemakai dan pemrogram aplikasi dapat menyelesaikan tugasnya walaupun ada kegagalan  hardware atau software.
*Mobility transparency:
   Resource dan klien dapat berpindah tanpa mempengaruhi operasi pemakai atau program.
*Performance transparency:
   Sistem dapat dikonfigurasi ulang untuk meningkatkan unjuk kerja, sejalan dengan perubahan beban sistem.
*Scaling transparency:
Sistem dan aplikasi mudah bertambah luas tanpa perubahan struktur sistem dan algoritma aplikasi.


DEFINISI DAN PERAN MIDDLEWARE SISTEM TERDISTRIBUSI




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 [1].
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 :
·         Microsoft's COM/DCOM (Component Object Model)
·         Object Management Group's Common Object Request Broker Architecture  (CORBA),
·         RMI (Remote Method Invocation)

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

2. CORBA merupakan sebuah spesifikasi middleware yang ideal untuk mendukung dan mengaplikasikan sistem komputer terdistribusi. Arsitektur CORBA berbasis pada model objek. Model ini berasal dari abstraksi inti model objek yang didefinisikan oleh OMG dalam sebuah petunjuk OMA (Object Management Architecture). CORBA bersifat open, maksudnya bahwa CORBA bisa dipakai oleh setiap orang yang ingin menggunakan standarisasi CORBA ini. Sehingga akan muncul perbedaan-perbedaan dalam menggunakannya, seperti perbedaan platform ataupun bahasa pemrograman. Tetapi hal ini justru menjadi kelebihan CORBA bahwa CORBA mampu mengkomunikasikan sistem yang memiliki perbedaan-perbedaan tersebut.

3.  RMI (Remote Method Innovation)
RMI adalah sebuah tekhnik pemanggilan method remote yang lebih secara umum lebih baik dari RPC. RMI menggunakan paradigma pemrograman berorientasi obyek. 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.
Tujuan :
1. Menyediakan fasilitas bagi programmer untuk dapat mendistribusikan objek yang digunakan pada beberapa proses yang berbeda.
2. Dapat berjalan dalam satu mesin ataupun di beberapa mesin yang terhubung dengan jaringan. Aplikasi Obyek Terdistribusi
          Aplikasi RMI sering kali terdiri dari dua program terpisah yaitu server dan client.
1.    Aplikasi Server
       ·    Membuat beberapa remote objek
       ·    Menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses
       ·    Menunggu RMI client merequest server
2.   Aplikasi Client
       ·   Mendapatkan referensi remote ke satu atau lebih objek remote di server
       ·   Menjalankan method dari objek tersebut
       ·   Meminta pemanggilan ke beberapa remote objek berbasarkan referensi yang diterimanya.

PERAN MIDDLEWARE TERHADAP SISTER :
            Middleware adalah software yang dirancang untuk mendukung pengembangan sistem tersebar dengan memungkinkan aplikasi yang sebelumnya terisolasi untuk saling berhubungan. Dengan bantuan middleware, data yang sama dapat digunakan oleh customer service, akuntansi, pengembangan, dan manajemen sesuai kebutuhan. Di sini middleware dapat berfungsi sebagai penerjemah informasi sehingga setiap aplikasi mendapatkan format data yang dapat mereka proses.
Pengertian Middleware adalah sebuah aplikasi yang secara logic berada diantara lapisan aplikasi (application layer) dan lapisan data dari sebuah arsitektur layer-layer TCP/IP [1].  Middleware bisa juga disebut protokol. Protokol komunikasi middleware mendukung layanan komunikasi aras tinggi. Software yang berfungsi sebagai lapisan konversi atau penerjemah yaitu :
1. Software penghubung yang berisi sekumpulan layanan yang memungkinkan beberapa proses dapat berjalan pada satu atau lebih mesin untuk saling berinteraksi pada suatu jaringan juga sebagai integrator.
2. Middleware saat ini dikembangkan untuk memungkinkan satu aplikasi berkomunikasi dengan lainnya walaupun berjalan pada platform yang berbeda.
Contoh Layanan Middleware
  Ø  Transaction Monitor
1. Produk pertama yang disebut middleware.
2. Menempati posisi antara permintaan dari program client dan database, untuk menyakinkan bahwa semua transaksi ke database terlayani dengan baik
  Ø  Messaging Middleware
1. Menyimpan data dalam suatu antrian message jika mesin tujuan sedang mati atau overloaded
2. Mungkin berisi business logic yang merutekan message ke ujuan sebenarnya dan memformat ulang data lebih tepat
3. Sama seperti sistem messaging email, kecuali messaging middleware digunakan untuk mengirim data antar aplikasi
Contoh Layanan Middleware
  Ø  Distributed Object Middleware
Contoh: RPC, CORBA dan DCOM/COM
  Ø  Middleware basis data
menyediakan antarmuka antara sebuah query dengan beberapa database yang terdistribusi
Contoh: JDBC, ODBC, dan ADO.NET
  Ø  Application Server Middleware

J2EE Application Server, Oracle Application Server

SISTEM TERDISTRIBUSI

1.1. Definisi Sitem Terdistribusi
Sistem distribusi adalah sebuah sistem yang komponennya berada pada jaringan komputer. Komponen tersebut saling berkomunikasi dan melakukan koordinasi hanya dengan pengiriman pesan (message passing).
Sistem terdistribusi merupakan kebalikan dari Sistem Operasi Prosesor Jamak. Pada sistem tersebut, setiap prosesor memiliki memori lokal tersendiri. Kumpulan prosesornya saling berinteraksi melalui saluran komunikasi seperti LAN dan WAN menggunakan protokol standar seperti TCP/IP. Karena saling berkomunikasi, kumpulan prosesor tersebut mampu saling berbagi beban kerja, data, serta sumber daya lainnya.
Sistem terdistribusi dapat dikatakan sebagai suatu keberadaan beberapa komputer yang bersifat transparan dan secara normal, setiap sistem terdistribusi mengandalkan layanan yang disediakan oleh jaringan komputer.
Dalam penggunaanya sistem terdistribusi sangat diperlukan karena:
ü  Performance
Sekumpulan prosesor dapat menyediakan kinerja yang lebih tinggi daripada komputer yang terpusat
ü  Distribution
Banyak aplikasi yang terlibat, sehingga lebih baik jika dipisah dalam mesin yang berbeda (contoh: aplikasi perbankan, komersial)
ü  Reliability
Jika terjadi kerusakan pada salah satu mesin, tidak akan mempengaruhi kinerja system secara keseluruhan
ü  Incremental Growth
Mesin baru dapat ditambahkan jika kebutuhan proses meningkat
ü  Sharing Data/Resource
Resource adalah:
– Segala hal yang dapat digunakan bersama dalam jaringan komputer.
– Meliputi hardware (e.g. disk, printer, scanner), juga software (berkas, basis data, obyek data).
ü  Communication
Menyediakan fasilitas komunikasi antar manusia
Beberapa contoh dari sistem terdistribusi yaitu :
1.       Internet, merupakan suatu bentuk jaringan global yang menghubungkan komputer denga satu sama lainnya, yang dapat berkomunikasi dengan media IP sebagai protokol.

2.   Intranet
● Jaringan yang teradministrasi secara lokal
● Biasanya proprietary
● Terhubung ke internet (melalui firewall)
● Menyediakan layanan internal dan eksternal


       3. Sistem terdistribusi multimedia
Biasanya digunakan pada infrastruktur internet
ü  Karakteristik
Sumber data yang heterogen dan memerlukan sinkronisasi secara real time
ü  Video, audio, text Multicast
Contoh:
- Teleteaching tools (mbone-based, etc.)
- Video-conferencing
- Video and audio on demand
      4. Mobile dan sistem komputasi ubiquitous
ü  Sistem telepon Cellular (e.g., GSM)
Resources dishare : frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak


ü  Komputer laptop, ubiquitous computing
ü  Handheld devices, PDA, etc
  5. World wide web
ü  Arsitektur client/server tebuka yang diterapkan di atas infrastruktur internet
ü  Shared resources (melalui URL)
  6. Contoh distribusi yang lainnya seperti
ü  Sistem telepon seperti ISDN, PSTN
ü  Manajemen jaringan seperti Administrasi sesumber jaringan
ü  Network File System (NFS) seperti Arsitektur untuk mengakses sistem file melalui jaringan.

1.2. Karakteristik Sistem Terdistribusi
Dalam system terdistribusi terdapat beberapa karakteristik yaitu :
1. No global clock
- Terdapat batasan pada ketepatan proses sinkronisasi clock pada sistem terdistribusi, oleh karena asynchronous message passing
- Pada sistem terdistribusi, tidak ada satu proses tunggal yang mengetahui global state sistem saat ini (disebabkan oleh concurrency dan message passing)


2. Independent failure
- Kemungkinan adanya kegagalan proses tunggal yang tidak diketahui
- Proses tunggal mungkin tidak peduli pada kegagalan sistem keseluruhan
3. Concurrency of components
- E.g. Beberapa pemakai browser mengakses suatu halaman web secara bersamaan.
- Bagaimana jika ada operasi update?
1.3. Model Sistem Terdistribusi
Dalam pelaksanaannya sistem terdistribusi memiliki berbagai bentuk (model), yaitu :
1. Sistem client - server
Merupakan bagian dari model sistem terdistribusi yang membagi jaringan berdasarkan pemberi dan penerima jasa layanan. Pada sebuah jaringan akan didapatkan: file server, time server, directory server, printer server, dan seterusnya.


2. Sistem point to point
Merupakan bagian dari model sistem terdistribusi dimana sistem dapat sekaligus berfungsi sebagai client maupun server.
3. Sistem terkluster
Adalah gabungan dari beberapa sistem individual (komputer) yang dikumpulkan pada suatu lokasi, saling berbagi tempat penyimpanan data (storage), dan saling terhubung dalam jaringan lokal (Local Area Network). Sistem kluster memiliki persamaan dengan sistem paralel dalam hal menggabungkan beberapa CPU untuk meningkatkan kinerja komputasi. Jika salah satu mesin mengalami masalah dalam menjalankan tugas maka mesin lain dapat mengambil alih pelaksanaan tugas itu. Dengan demikian, sistem akan lebih handal dan fault tolerant dalam melakukan komputasi.



Dalam hal jaringan, sistem kluster mirip dengan sistem terdistribusi (distributed system). Bedanya, jika jaringan pada sistem terdistribusi melingkupi komputer-komputer yang lokasinya tersebar maka jaringan pada sistem kluster menghubungkan banyak komputer yang dikumpulkan dalam satu tempat.
1.4. Permasalahan Sistem Terdistribusi
Masalah dengan sistem terdistribusi yang dapat dimunculkan antara lain berkaitan dengan :
􀂃 Software - bagaimana merancang dan mengatur software dalam Distribusi Sistem
􀂃 Ketergantungan pada infrastruktur jaringan
􀂃 Kemudahan akses ke data yang di share, memunculkan masalah keamanan
Dalam setiap penggunaan suatu sistem, banyak sekali ditemui permasalahan – permasalahan yang muncul, begitu juga dengan sistem terdistribusi. Selain permasalahan – permasalahan yang akan dihadapi terdapat tantangan – tantangan dalam sistem terdistribusi.
1.5. Tantangan Sistem Terdistribusi
Tantangan yang ada dalam Sistem Terdistribusi yaitu :
1. Keheterogenan komponen (heterogenity)
2. Keterbukaan (openness)
3. Keamanan (security)
4. Scalability
5. Penanganan kegagalan (failure handling)
6. Concurrency of components
7. Transparansi
1. Keheterogenan
􀂊 Suatu sistem terdistribusi dapat dibangun dari berbagai network, operation system, hardware dan programming language yang berbeda.
􀂊 IP dapat digunakan utk mengatasi perbedaan jaringan.
􀂊 Middleware mengatasi perbedaan lainnya.
2. Keterbukaan
􀂊 Mendukung extensibility.
􀂊 Setiap komponen memiliki antarmuka (interface), yg di-publish ke komponen lain.
􀂊 Perlu integrasi berbagai komponen yg dibuat oleh programmer atau vendor yg berbeda.
3. Keamanan
􀂊 Shared resources & transmisi informasi rahasia perlu dilengkapi dengan enkripsi.
􀂊 Cegah denial of service.


4. Scalability
􀂊 Penambahan pemakai membutuhkan penambahan resource yg konstan.
􀂊 Cegah bottleneck.
􀂊 Jika perlu, gunakan replikasi.
5. Penanganan Kegagalan
􀂊 Setiap proses (komputer atau jaringan) dapat mengalami kegagalan secara independen.
􀂊 Komponen lain harus tetap berjalan dgn baik.
􀂊 E.g. failed branch in a distributed banking system.
6. Concurrency
􀂊 Multiple users with concurrent requests to a shared resources.
􀂊 Setiap resource hrs aman di lingkungan tersebut di atas.
7. Transparansi
Transparan: bagi pemakai, keberadaan beberapa komponen tampak sebagai satu sistem saja.
􀂊 Access transparency:
Local & remote resources dapat diakses dengan operasi yg sama.
􀂊 Location transparency:
Resource dapat diakses tanpa tahu di mana lokasinya.
– Bagaimana pendapat Anda mengenai hyperlink & URL?
􀂊 Concurrency transparency:
– Beberapa proses dapat sama-sama menggunakan suatu resource tanpa saling interferensi.
– Bagaimana jika beberapa pemakai secara bersamaan akan mengubah suatu berkas?
􀂊 Replication transparency:
Pemakai maupun pemrogram aplikasi tidak perlu mengetahui adanya replikasi resource, yg dapat meningkatkan kehandalan dan unjuk kerja.
􀂊 Failure transparency:
Pemakai dan pemrogram aplikasi dapat menyelesaikan tugasnya walaupun ada kegagalan hardware atau software.
􀂊 Mobility transparency:
Resource dan klien dapat berpindah tanpa mempengaruhi operasi pemakai atau program.
􀂊 Performance transparency:
Sistem dapat dikonfigurasi ulang untuk meningkatkan unjuk kerja, sejalan dengan perubahan beban sistem.
􀂊 Scaling transparency:
Sistem dan aplikasi mudah bertambah luas tanpa perubahan struktur sistem dan algoritma aplikasi.


DEFINISI DAN PERAN MIDDLEWARE SISTEM TERDISTRIBUSI



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 [1].
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 :
·         Microsoft's COM/DCOM (Component Object Model)
·         Object Management Group's Common Object Request Broker Architecture  (CORBA),
·         RMI (Remote Method Invocation)
1. 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. 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
2. CORBA merupakan sebuah spesifikasi middleware yang ideal untuk mendukung dan mengaplikasikan sistem komputer terdistribusi. Arsitektur CORBA berbasis pada model objek. Model ini berasal dari abstraksi inti model objek yang didefinisikan oleh OMG dalam sebuah petunjuk OMA (Object Management Architecture). CORBA bersifat open, maksudnya bahwa CORBA bisa dipakai oleh setiap orang yang ingin menggunakan standarisasi CORBA ini. Sehingga akan muncul perbedaan-perbedaan dalam menggunakannya, seperti perbedaan platform ataupun bahasa pemrograman. Tetapi hal ini justru menjadi kelebihan CORBA bahwa CORBA mampu mengkomunikasikan sistem yang memiliki perbedaan-perbedaan tersebut.
3.  RMI (Remote Method Innovation)
RMI adalah sebuah tekhnik pemanggilan method remote yang lebih secara umum lebih baik dari RPC. RMI menggunakan paradigma pemrograman berorientasi obyek. 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.
Tujuan :
1. Menyediakan fasilitas bagi programmer untuk dapat mendistribusikan objek yang digunakan pada beberapa proses yang berbeda.
2.  Dapat berjalan dalam satu mesin ataupun di beberapa mesin yang terhubung dengan jaringan. Aplikasi Obyek Terdistribusi
          Aplikasi RMI sering kali terdiri dari dua program terpisah yaitu server dan client.
1.    Aplikasi Server
·           Membuat beberapa remote objek
·           Menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses
·           Menunggu RMI client merequest server
2.   Aplikasi Client
·           Mendapatkan referensi remote ke satu atau lebih objek remote di server
·           Menjalankan method dari objek tersebut
·           Meminta pemanggilan ke beberapa remote objek berbasarkan referensi yang diterimanya.
PERAN MIDDLEWARE TERHADAP SISTER :
            Middleware adalah software yang dirancang untuk mendukung pengembangan sistem tersebar dengan memungkinkan aplikasi yang sebelumnya terisolasi untuk saling berhubungan. Dengan bantuan middleware, data yang sama dapat digunakan oleh customer service, akuntansi, pengembangan, dan manajemen sesuai kebutuhan. Di sini middleware dapat berfungsi sebagai penerjemah informasi sehingga setiap aplikasi mendapatkan format data yang dapat mereka proses.
Pengertian Middleware adalah sebuah aplikasi yang secara logic berada diantara lapisan aplikasi (application layer) dan lapisan data dari sebuah arsitektur layer-layer TCP/IP [1].  Middleware bisa juga disebut protokol. Protokol komunikasi middleware mendukung layanan komunikasi aras tinggi. Software yang berfungsi sebagai lapisan konversi atau penerjemah yaitu :
1.   Software penghubung yang berisi sekumpulan layanan yang memungkinkan beberapa proses dapat berjalan pada satu atau lebih mesin untuk saling berinteraksi pada suatu jaringan juga sebagai integrator.
2.   Middleware saat ini dikembangkan untuk memungkinkan satu aplikasi berkomunikasi dengan lainnya walaupun berjalan pada platform yang berbeda.
Contoh Layanan Middleware
Ø  Transaction Monitor
1. Produk pertama yang disebut middleware.
2. Menempati posisi antara permintaan dari program client dan database, untuk menyakinkan bahwa semua transaksi ke database terlayani dengan baik
Ø  Messaging Middleware
1. Menyimpan data dalam suatu antrian message jika mesin tujuan sedang mati atau overloaded
2. Mungkin berisi business logic yang merutekan message ke ujuan sebenarnya dan memformat ulang data lebih tepat
3. Sama seperti sistem messaging email, kecuali messaging middleware digunakan untuk mengirim data antar aplikasi
Contoh Layanan Middleware
Ø  Distributed Object Middleware
Contoh: RPC, CORBA dan DCOM/COM
Ø  Middleware basis data
menyediakan antarmuka antara sebuah query dengan beberapa database yang terdistribusi
Contoh: JDBC, ODBC, dan ADO.NET
Ø  Application Server Middleware
J2EE Application Server, Oracle Application Server