Middleware adalah perangkat lunak yang memungkinkan satu atau lebih jenis komunikasi atau konektivitas antara aplikasi atau komponen dalam jaringan terdistribusi, pada dasarnya menciptakan 'perangkat lunak perekat' yang merekatkan sistem yang berbeda.
Middleware merampingkan pengembangan aplikasi dan mempercepat waktu ke pasar melalui fungsi-fungsi cerdas yang memfasilitasi koneksi antara platform yang pada awalnya tidak dirancang untuk terhubung.
Berbagai jenis middleware meliputi berikut ini:
Buletin industri
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.
Istilah middleware pertama kali diperkenalkan pada akhir 1960-an. Disebut demikian karena versi awal biasanya bertindak sebagai mediator antara front-end aplikasi (klien) dan sumber daya back-end. Sumber daya ini dapat berupa basis data, aplikasi mainframe, atau perangkat keras khusus yang digunakan klien untuk meminta data. Menanggapi peningkatan komputasi terdistribusi pada tahun 1980-an, penggunaan middleware meningkat sebagai cara untuk menghubungkan aplikasi yang lebih baru ke sistem lama tradisional.
Namun middleware saat ini beroperasi jauh melampaui cakupan ini. Middleware portal, misalnya, mencakup front-end aplikasi serta berbagai alat untuk konektivitas back-end. Middleware basis data biasanya menyertakan penyimpanan datanya sendiri.
Middleware telah berevolusi untuk memainkan peran penting dalam pengembangan aplikasi cloud native modern. Menggunakan teknologi kontainer, yang memungkinkan DevOps dan tim lain terhubung ke sumber daya yang didistribusikan di lingkungan multicloud. Hal ini mendukung integrasi berkelanjutan (CI) dan pengiriman berkelanjutan (CD)—CI/CD—sehingga merampingkan pengkodean, pengujian, dan penerapan aplikasi untuk penskalaan yang cepat dan pertumbuhan bisnis.
Perusahaan semakin memanfaatkan middleware sebagai penawaran layanan berbasis cloud untuk komunikasi antara sistem dan sebagai alat manajemen data. Sebuah studi dari Technavio memproyeksikan bahwa pasar middleware sebagai layanan (MWaaS) global akan meningkat sebesar USD 45,44 miliar, dengan laju pertumbuhan tahunan gabungan (CAGR) sebesar 17,73% pada tahun 2023—2028. Studi ini mengaitkan pertumbuhan ini dengan adopsi komputasi cloud yang meluas serta peningkatan komputasi nirserver dan layanan mikro.1
Middleware memungkinkan pengembang untuk membangun aplikasi tanpa membuat integrasi khusus kapan pun mereka perlu terhubung ke komponen aplikasi (layanan atau layanan mikro), sumber data, sumber daya komputasi, atau perangkat.
Middleware memfasilitasi komunikasi antara aplikasi dan layanan yang berbeda dengan menyediakan layanan penting. Perangkat lunak ini mencapai komunikasi ini melalui kerangka kerja perpesanan umum, seperti notasi objek JavaScript (JSON), representational state transfer (REST), extensible markup language (XML), protokol akses objek sederhana (SOAP), atau layanan web. Biasanya, middleware juga menyediakan layanan yang memungkinkan komponen yang ditulis dalam berbagai bahasa—seperti Java, C++, PHP, dan Python—untuk saling berkomunikasi.
Komponen arsitektur middleware standar meliputi yang berikut ini:
Selain menyediakan interoperabilitas yang menghemat pekerjaan, layanan middleware membantu pengembang perangkat lunak dengan cara berikut.
Berdasarkan informasi permintaan klien atau aplikasi front-end, middleware dapat menyesuaikan aplikasi back-end atau respons layanan. Dalam aplikasi e-commerce peritel, logika aplikasi middleware dapat menyortir hasil pencarian produk dari basis data inventaris back-end berdasarkan lokasi toko terdekat. Penyortiran ini didasarkan pada alamat IP atau informasi lokasi di judul permintaan HTTP.
Middleware biasanya membuat koneksi yang aman dari aplikasi front-end ke sumber data back-end yang menggunakan Transport Layer Security (TSL) atau protokol keamanan jaringan lainnya. Hal ini dapat memberikan kemampuan autentikasi, permintaan aplikasi front-end yang sulit untuk kredensial (nama pengguna dan kata sandi) atau sertifikat digital.
Ketika lalu lintas aplikasi melonjak, middleware perusahaan dapat menskalakan untuk mendistribusikan permintaan klien di beberapa server—on premises atau di cloud. Kemampuan pemrosesan bersamaan dapat mencegah masalah ketika beberapa klien mencoba mengakses sumber data back-end yang sama secara bersamaan.
Middleware membantu pengembang melakukan modernisasi aplikasi, mengubah aplikasi lama monolitik menjadi aplikasi cloud yang dibangun di atas arsitektur layanan mikro.
Otomatisasi middleware membantu pengembang merampingkan dan mengotomatiskan pengelolaan berbagai tugas TI yang kompleks untuk meningkatkan efisiensi secara keseluruhan.
Middleware mendukung metodologi DevSecOps (singkatan dari pengembangan, keamanan, dan operasi) dengan membantu tim membangun aplikasi lebih cepat sekaligus mengurangi risiko keamanan.
Ada banyak jenis middleware. Beberapa berfokus pada jenis konektivitas tertentu, yang lainnya berfokus pada aplikasi, komponen aplikasi, dan perangkat tertentu. Beberapa middleware menggabungkan kemampuannya untuk tugas pengembangan perangkat lunak tertentu. Berikut adalah beberapa jenis perangkat lunak middleware yang paling terkenal dan paling umum digunakan:
Middleware berorientasi pesan (MOM) memungkinkan komponen aplikasi yang menggunakan protokol pesan yang berbeda untuk berkomunikasi dan bertukar pesan. Selain menerjemahkan atau mentransformasikan pesan antara aplikasi, MOM mengelola pengarahan pesan, sehingga pesan selalu sampai ke komponen yang tepat dalam urutan yang sesuai. Contoh MOM termasuk antrean pesan dan perantara pesan.
Middleware panggilan prosedur jarak jauh (RPC) memungkinkan satu aplikasi untuk memicu prosedur di aplikasi lain, baik di komputer yang sama maupun di komputer atau jaringan yang berbeda. Proses ini membuat kedua aplikasi berfungsi seolah-olah mereka adalah bagian dari aplikasi yang sama di komputer yang sama.
Middleware data atau basis data menyederhanakan akses dan interaksi dengan basis data back-end. Umumnya, middleware basis data adalah berbentuk server SQL database.
Middleware antarmuka pemrograman aplikasi (API) menyediakan alat yang dapat digunakan pengembang untuk membuat, mengekspos, dan mengelola API untuk aplikasi mereka sehingga pengembang lain dapat terhubung dengannya.
Beberapa middleware API menyertakan alat untuk memonetisasi API, memungkinkan organisasi yang berbeda untuk menggunakannya, dengan biaya tertentu. Contoh middleware API termasuk platform API management, API gateway, dan portal pengembang API.
Middleware perantara permintaan objek (ORB) bertindak sebagai perantara antara permintaan dari satu objek atau komponen aplikasi dan pemenuhannya oleh objek atau komponen lain. Proses ini terjadi di dalam jaringan terdistribusi yang memastikan komunikasi dan interaksi yang lancar di antara komponen.
Perantara permintaan objek (ORB) beroperasi dengan arsitektur perantara permintaan objek umum (CORBA) yang memungkinkan satu komponen perangkat lunak untuk membuat permintaan dari komponen lain tanpa mengetahui di mana komponen tersebut dihosting atau seperti apa antarmuka penggunanya (UI). Mekanisme "perantara" mengelola informasi ini selama pertukaran.
Middleware transaksional menyediakan layanan untuk mendukung pelaksanaan transaksi data di seluruh jaringan terdistribusi. Middleware transaksional yang paling terkenal adalah monitor pemantauan transaksi (TPM) yang mendorong transaksi dari satu langkah ke langkah berikutnya. Mereka mengelola pertukaran data dengan menambahkan, mengubah, atau menghapus data sesuai kebutuhan sampai transaksi selesai.
Middleware streaming data asinkron mereplikasi aliran data di penyimpanan perantara, memungkinkan berbagi data di antara beberapa aplikasi. Apache Kafka adalah salah satu contoh platform middleware sumber terbuka yang paling terkenal untuk streaming peristiwa real time.
Middleware perangkat menyediakan serangkaian kemampuan integrasi dan konektivitas yang terfokus untuk mengembangkan aplikasi bagi sistem operasi (OS) seluler tertentu.
Portal middleware menyediakan alat dan sumber daya untuk mengintegrasikan konten dan kemampuan dari berbagai aplikasi terkait 'di kaca' atau pada satu layar untuk membuat aplikasi komposit tunggal.
Middleware robotika menyederhanakan integrasi perangkat keras, firmware, dan perangkat lunak robotik dari berbagai produsen dan lokasi.
Ada dua kelas dasar middleware: middleware aplikasi perusahaan dan middleware platform.
Middleware integrasi aplikasi perusahaan memungkinkan organisasi untuk membangun hub integrasi perusahaan. Sistem ini menyediakan cara standar untuk menghubungkan semua aplikasi, komponen aplikasi, proses bisnis, dan sumber data back-end di seluruh perusahaan yang diperluas.
Hingga sekitar satu dekade yang lalu, middleware integrasi aplikasi perusahaan yang paling umum adalah enterprise service bus (ESB), yang berfungsi sebagai pusat integrasi dalam arsitektur berorientasi layanan (SOA).
Saat ini, platform integrasi sebagai layanan (iPaaS) memungkinkan organisasi untuk menghubungkan aplikasi, data, proses, dan layanan di seluruh hybrid cloud—kombinasi lingkungan on premises, cloud pribadi, dan cloud publik. Ini membantu organisasi menghindari pekerjaan dan biaya pembelian, instalasi, pengelolaan, dan pemeliharaan middleware integrasi (dan perangkat keras tempatnya berjalan) di dalam pusat data miliknya sendiri.
Penyedia layanan cloud (CSP) utama seperti Microsoft Azure, Google Cloud, Amazon Web Services (AWS), atau IBM Cloud, semuanya menawarkan solusi iPaaS.
Middleware platform (atau middleware application platform) mendukung pengembangan aplikasi. Platform ini mempercepat pengiriman aplikasi dengan menyediakan lingkungan hosting waktu proses—seperti lingkungan waktu proses Java (Java RE), kontainer atau keduanya—untuk aplikasi atau logika bisnis. Middleware platform dapat mencakup atau menggabungkan server aplikasi perusahaan, server web, sistem manajemen konten (CMS), dan jenis middleware lainnya yang disebutkan di atas.
Baik platform integrasi sebagai layanan (iPaaS) iPaaS dan platform sebagai layanan (PaaS) adalah solusi komputasi berbasis cloud yang melayani tujuan berbeda. Jika iPaaS berfokus pada pengaktifan integrasi aplikasi, perangkat, dan sistem, PaaS menyediakan platform bagi organisasi untuk membangun, menjalankan, dan mengelola aplikasi.
PaaS merupakan pilihan bisnis kecil dan perusahaan rintisan dengan anggaran TI terbatas karena memungkinkan tim membangun aplikasi dengan biaya yang efisien dibandingkan dengan membuat platform pengembangan internal. iPaaS adalah pilihan yang lebih baik untuk organisasi dan perusahaan besar yang menjalankan arsitektur kompleks dan dinamis.
Namun demikian, layanan iPaaS sering bekerja sama dengan layanan cloud, termasuk PaaS dan perangkat lunak sebagai layanan (SaaS). Misalnya, organisasi mungkin menggabungkan iPaaS dengan solusi pengembangan PaaS (misalnya Cloud Foundry, Red Hat OpenShift) atau SaaS (GitHub).
Cloud native adalah pendekatan pengembangan aplikasi yang menggunakan teknologi komputasi cloud dasar untuk menyediakan pengembangan, penerapan, dan pengelolaan yang konsisten di seluruh lingkungan hybrid cloud.
Aplikasi cloud native saat ini dibangun dari layanan mikro dan diterapkan dalam kontainer yang menggunakan Kubernetes, platform orkestrasi kontainer yang banyak digunakan.
Layanan mikro adalah komponen aplikasi yang digabungkan secara longgar yang mencakup tumpukan mereka sendiri dan dapat digunakan dan diperbarui secara independen satu sama lain. Mereka berkomunikasi dengan menggunakan kombinasi REST API, perantara pesan, dan event stream.
Kontainer adalah tugas eksekusi ringan yang mengemas kode aplikasi, seperti layanan mikro, bersama dengan hanya pustaka OS dan dependensi yang diperlukan untuk menjalankan kode itu di infrastruktur TI cloud atau tradisional apa pun.
Bersama-sama, teknologi ini dan teknologi terkait menciptakan platform kuat, yang dikembangkan sekali-terapkan di mana saja, untuk menghadirkan aplikasi hybrid cloud yang benar-benar baru dan memodernisasi sistem lama untuk digunakan di cloud. Namun, mereka juga mengarah pada lingkungan pengembangan yang kompleks yang menggabungkan lebih banyak lagi aplikasi perangkat lunak, sumber data, bahasa pemrograman, alat bantu, dan sistem terdistribusi.
Middleware dapat mengatasi beberapa kerumitan ini. Namun, menjalankan aplikasi dalam kontainer dengan middleware konvensional dapat menambah kerumitannya sendiri, termasuk overhead infrastruktur yang dirancang untuk dihilangkan oleh kontainer. Karena alasan inilah platform pengembangan aplikasi cloud menyertakan middleware dalam kontainer atau berupa modul sehingga hanya fungsi konektivitas yang diperlukan saja yang bisa dikemas dalam sebuah kontainer.
Middleware mendukung pengembangan game dengan berfungsi sebagai mesin game. Lapisan perangkat lunak ini membantu mengintegrasikan video, audio, dan komponen game penting lainnya dengan lancar.
Untuk lembaga keuangan, middleware mengintegrasikan aplikasi dan basis data pelanggan untuk mendukung layanan perbankan digital termasuk pemrosesan transaksi secara real-time.
Data kesehatan sulit untuk diakses dan dibagikan dengan aman. Middleware penting untuk interoperabilitas layanan kesehatan untuk memungkinkan aliran data yang lancar di berbagai sistem dan aplikasi layanan kesehatan, seperti platform perawatan kesehatan jarak jauh dan catatan kesehatan elektronik (EHR).
Organisasi e-commerce menggunakan middleware untuk menghubungkan platform online mereka dengan layanan back-end yang penting, seperti pemrosesan pesanan untuk meningkatkan pengalaman pelanggan secara keseluruhan.
Dalam manufaktur, middleware membantu memastikan sistem perangkat lunak bisnis termasuk platform perencanaan sumber daya perusahaan (ERP) terintegrasi dengan aplikasi lain untuk memberikan tampilan terpadu tentang operasi. Pendekatan ini membantu mengoptimalkan dan merampingkan pemeliharaan, rantai pasokan, penjaminan kualitas, dan banyak lagi.