Middleware
Tujuan Umum
Middleware adalah perangkat lunak (software) komputer yang menghubungkan komponen perangkat lunak atau aplikasi. 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.
Lingkungan Komputasi Middleware
Pelayanan middleware menyediakan banyak set fungsi dari aplikasi antarmuka pemogramanan yang mengizinkan sebuah aplikasi untuk:
- Menemukan tempat melewati jaringan secara transparan sehingga dapat menyediakan interaksi dengan service atau aplikasi lainnya.
- Mandiri dari service jaringan.
- Dapat dipercaya dan selalu tersedia.
Middleware menawarkan beberapa keuntungan unik dari technologi untuk bisnis dan industri. Sebagai contoh, sistem database tradisional biasanya diletakan dalam lingkungan yang dekat dimana pengguna mengakses sistem menggunakan jaringan terbatas atau intranet. Dengan perkembangan fenomena dari World Wide Web, pengguna dapat mengakses database secara virtual dengan berbagai macam jenis akses dari belahan dunia manapun. Middleware mengalamatkan masalah dari berbagai level interoperbilitas diantara struktur database yang berbeda. Middleware memfasilitasi akses transparan untuk melegalkan sistem manajemen database (DBMS) atau aplikasi lewat sebuah web server tanpa memperhatikan karakteristik spesifik database. Perusahaan bisnis sering menggunakan aplikasi middleware untuk menghubungkan informasi dari database departemen, misalnya daftar pembayaran, penjualan, dan penghitungan atau database haouse dalam lokasi geografi yang bermacam-macam. Dalam tingginya kompetisi komunitas kesehatan, laboratorium membuat luas penggunaan dari aplikasi middleware untuk data mining, sistem informasi laboratorium (LIS) cadangan, dan untuk menggabungkan sistem selama proses penggabungan dua rumah sakit. Middleware menolong menjembatani jarak pemisah antara LIS dalam bentuk baru jaringan kesehatan mengikuti proses pembelian rumah sakit. Pengembang jaringan wireless dapat menggunakan middleware untuk menghadapi tantangan penggabungan dengan sensor jaringan wireless (WSN) atau teknologi WSN. Pengimplementasian sebuah aplikasi middleware mengizinkan pengembang middleware untuk menyatukan sistem operasi dan perangkat keras dengan berbagai macam aplikasi yang tersedia. Middleware dapat menolong pengembang perangkat lunak menghindari penulisan antarmuka program aplikasi (API) untuk setiap pengendali program, dengan cara melayani sebagai sebuah antarmuka pemograman yang berdiri sendiri untuk setiap aplikasi yang dibuat.
Contoh Middleware
Perusahaan besar yang menyediakan perangkat lunak middleware antara lain, IBM, Red Hat dan Oracle Corp. Axway, SAP, TIBCO, Informatica, Pervasive dan webMethods merupakan vendor yang mengkhususkan diri pada penyediaan web berbasis tools middleware. Yayasan Apache Software dan konsorsium ObjectWeb memberanikan diri untuk melakukan pengembangan pada middleware opern source. Arsitektur Microsoft .NET “Framework” sejatinya merupakan contoh middleware.
OSGi (Open Service Gateaway Initiative)
Merupakan serangkaian spesifikasi yang mendefinisikan sebuah sistem komponen dinamik untuk Java. Spesifikasi ini memungkinkan sebuah model pengembangan dimana aplikasi (secara dinamis) disusun dari bermacam komponen (yang dapat digunakan ulang) berbeda. Spesifikasi OSGi memungkinkan komponen untuk menyembunyikan implementasi mereka dari komponen lainnya sementara berkomunikasi menggunakan service, dimana objeknya secara khusus dibagi diantara komponen. Model sederhana ini secara mengejutkan telah mencapai efek untuk hampir semua aspek dari proses pengembangan perangkat lunak. OSGi merupakan teknologi pertama yang berhasil memecahkan masalah-masalah nyata dalam pengembangan perangkat lunak dengan menggunakan sebuah komponen sistem. Pengguna teknologi OSGi melihat pengurangan kompleksitas yang signifikan hampir dalam semua aspek pengembangan perangkat lunak. Kode program yang lebih mudah ditulis dan diuji, dapat dipakai ulang, membangun sistem menjadi lebih mudah, pembukaan yang lebih dapat diatur, bugs yang dapat dideteksi lebih cepat dan runtime yang menyediakan sebuah tanda yang memberitahu apa yang sedang berjalan.
OSGi mempunyai lapisan seperti pada gambar berikut ini:
Lapisan OSGi
Merupakan komponen OSGi yang dibuat oleh pengembang.
Lapisan services menghubungkan bundles dalam sebuah jalan dinamik dengan menawarkan sebuah model mengumumkan-mencari-mengikat untuk menjelaskan objek lama Java.
API yang harus diinstall, dijalankan, dihentikan, diperbarui, dan bundle dihilangkan.
Merupakan lapisan yang menjelaskan bagaimana bundles menjadi sangat penting dan mengekspor kode.
Lapisan yang menangani keamanan.
Menjelaskan metoda dan kelas apa yang tersedia dalam platform yang spesifik.
Kolaborasi Antarmuka Otomotif Multimedia (Automotive Multimedia Interface Collaboration/AMI-C)
Kolaborasi antarmuka otomotif multimedia (Automotive Multimedia Interface Collaboration/AMI-C) adalah suatu kelompok yang menciptakan suatu standar umum yang digunakan untuk mengatur bagaimana cara kerja perangkat elektronik seperti komputer, sistem audio dan hiburan lainnya, berkomunikasi dengan kendaraan.
Proses Komunitas Java (Java Community Process/JCP)
Java Community Process (JCP) Program Management Office (PMO) sangat tertarik untuk mengumumkan upgrade ke jcp.org baru-baru ini meluncurkan situs web. Setelah web rumah masyarakat benar-benar dirombak dan dirilis pada bulan Juni 2009, bekerja terus di belakang layar untuk menambah, meningkatkan, dan memperbaiki fungsi dan kegunaannya. Anggota PMO berfungsi sebagai tim proyek untuk mendefinisikan dan menyelesaikan pekerjaan.
Program yang JCP komunitas pengguna telah membantu dalam memberikan umpan balik pada situs web. Banyak fitur baru dan perbaikan bug pada awalnya diusulkan atau diidentifikasi oleh pengguna. Beberapa implementasi tersebut akan segera jelas. Sebagai contoh, semua wiki dan papan sekarang mencakup satu cara bagi pengguna untuk memberikan pendapat mereka yang cepat konten dengan menghadiahi setiap item dengan nilai, dengan memilih jumlah bintang tertentu. Selain itu, semua papan diskusi publik dan wiki termasuk RSS tombol untuk memungkinkan pengguna untuk berlangganan pembaruan konten. Karena pengaturan keamanan dan persyaratan browser, RSS feed fitur ini hanya bekerja jika SSL diaktifkan. Misalnya, fitur RSS melakukan kerja dengan Firefox.
Berbagai bug telah diperbaiki dan navigasi juga telah diperbarui untuk mengatur informasi yang tersedia. Ini adalah langkah inkremental lain sepanjang perjalanan untuk meningkatkan jcp.org. Dalam bulan-bulan mendatang, sebagai masyarakat terus menyarankan perubahan dan perangkat tambahan, upaya akan terus memperbaiki situs. Semua umpan menyimpan program dan JCP jcp.org bergerak maju dan ke atas.
Virtual Machine
Virtual machine (VM) adalah suatu environment, biasanya sebuah program atau system operasi, yang tidak ada secara fisik tetapi dijalankan dalam environment lain. Dalam konteks ini, VM disebut “guest” sementara environment yang menjalankannya disebut “host”. Ide dasar dari virtual machine adalah mengabtraksi perangkat keras dari satu komputer (CPU, memori, disk, dst) ke beberapa environment eksekusi, sehingga menciptakan illusi bahwa masing-masing environment menjalankan komputernya [terpisah] sendiri.VM muncul karena adanya keinginan untuk menjalankan banyak sistem operasi pada satu komputer.Teknologi virtual machine memiliki banyak kegunaan seperti memungkinkan konsolidasi perangkat keras, memudahkan recovery sistem, dan menjalankan perangkat lunak terdahulu. Salah satu penerapan penting dari teknologi VM adalah integrasi lintas platform. Beberapa penerapan lainnya yang penting adalah:
• Konsolidasi server.
Jika beberapa server menjalankan aplikasi yang hanya memakan sedikit sumber daya, VM dapat digunakan untuk menggabungkan aplikasi-aplikasi tersebut sehingga berjalan pada satu server saja, walaupun aplikasi tersebut memerlukan sistem operasi yang berbeda-beda.
• Otomasi dan konsolidasi lingkungan pengembangan dan testing.
Setiap VM dapat berperan sebagai lingkungan yang berbeda, ini memudahkan pengembang sehingga tidak perlu menyediakan lingkungan tersebut secara fisik.
• Menjalankan perangkat lunak terdahulu.
Sistem operasi dan perangkat lunak terdahulu dapat dijalankan pada sistem yang lebih baru.
• Memudahkan recovery sistem.
Solusi virtualisasi dapat dipakai untuk rencana recovery sistem yang memerlukan portabilitas dan fleksibilitas antar platform.
• Demonstrasi perangkat lunak.
Dengan teknologi VM, sistem operasi yang bersih dan konfigurasinya dapat disediakan secara cepat.
Kelebihan Virtual Machine (VM)
Teknologi VM memiliki beberapa keunggulan, antara lain:
• Hal keamanan.
VM memiliki perlindungan yang lengkap pada berbagai sistem sumber daya, yaitu dengan meniadakan pembagian sumber daya secara langsung, sehingga tidak ada masalah proteksi dalam VM. Sistem VM adalah kendaraan yang sempurna untuk penelitian dan pengembangan sistem operasi. Dengan VM, jika terdapat suatu perubahan pada satu bagian dari mesin, maka dijamin tidak akan mengubah komponen lainnya.
• Memungkinkan untuk mendefinisikan suatu jaringan dari Virtual Machine (VM).
Tiap-tiap bagian mengirim informasi melalui jaringan komunikasi virtual. Sekali lagi, jaringan dimodelkan setelah komunikasi fisik jaringan diimplementasikan pada perangkat lunak.
Kekurangan Virtual Machine (VM)
Beberapa kesulitan utama dari konsep VM, diantaranya adalah:
• Sistem penyimpanan.
Sebagai contoh kesulitan dalam sistem penyimpanan adalah sebagai berikut: Andaikan kita mempunyai suatu mesin yang memiliki 3 disk drive namun ingin mendukung 7 VM. Keadaan ini jelas tidak memungkinkan bagi kita untuk dapat mengalokasikan setiap disk drive untuk tiap VM, karena perangkat lunak untuk mesin virtual sendiri akan membutuhkan ruang disk secara substansial untuk menyediakan memori virtual dan spooling. Solusinya adalah dengan menyediakan disk virtual atau yang dikenal pula dengan minidisk, dimana ukuran daya penyimpanannya identik dengan ukuran sebenarnya. Dengan demikian, pendekatan VM juga menyediakan sebuah antarmuka yang identik dengan perangkat keras yang mendasari.
• Pengimplementasian sulit.
Meski konsep VM cukup baik, namun VM sulit diimplementasikan.
Sumber
http://en.wikipedia.org/wiki/Middleware
http://www.osgi.org
http://findarticles.com/p/articles/mi_m0UDO/is_18_12/ai_63667439/
http://www.total.or.id/