Apa itu middleware?

203

Saya telah mendengar banyak orang baru-baru ini berbicara tentang middleware , tetapi apa definisi yang tepat dari middleware? Ketika saya melihat middleware, saya menemukan banyak informasi dan beberapa definisi, tetapi ketika membaca informasi dan definisi ini, tampaknya sebagian besar 'barang' ada di tengah-tengah sesuatu. Jadi, apakah semua hal middleware?

Atau apakah Anda memiliki contoh perangkat yang bukan middleware?

Michel
sumber

Jawaban:

219

Katakanlah perusahaan Anda membuat 4 produk berbeda, klien Anda memiliki 3 produk berbeda dari 3 perusahaan berbeda.

Suatu hari klien berpikir, mengapa kita tidak mengintegrasikan semua sistem kita ke dalam satu sistem besar. Sepuluh menit kemudian departemen TI mereka mengatakan itu akan memakan waktu 2 tahun.

Anda (pengembang yang bijaksana) berkata, mengapa kita tidak hanya mengintegrasikan semua sistem yang berbeda dan membuatnya bekerja bersama dalam lingkungan yang homogen? Manajer klien menatap Anda ... Anda melanjutkan, kami akan menggunakan Middleware, kami akan mempelajari Input / Output dari semua sistem yang berbeda, sumber daya yang mereka gunakan dan kemudian memilih kerangka kerja Middleware yang sesuai.

Masih menjelaskan kepada manajer non-teknologi.
Dengan kerangka kerja Middleware di tengah, sistem pertama akan menghasilkan barang-barang X, sistem Y dan Z akan mengkonsumsi keluaran-keluaran itu dan seterusnya.

medopal
sumber
Contoh yang sangat bagus! Dengan cara ini, bukankah itu akan menjadi lingkungan yang heterogen? tidak homogen.
Rabia Naz khan
Middleware adalah komponen data (agregasi + transformasi).
overexchange
92

Middleware adalah istilah yang sangat samar-samar. Apa itu "middleware" dalam satu kasus tidak akan di yang lain. Secara umum, Anda dapat mengharapkan sesuatu yang diklasifikasikan sebagai middleware memiliki karakteristik berikut:

  • Terutama (biasanya secara eksklusif) perangkat lunak; biasanya tidak memerlukan perangkat keras khusus.

  • Jika tidak ada, aplikasi yang bergantung padanya harus memasukkannya sebagai bagian dari aplikasi mereka dan akan mengalami banyak duplikasi.

  • Hampir pasti menghubungkan dua aplikasi dan mengirimkan data di antara mereka.

Anda akan melihat bahwa definisi ini kurang lebih sama dengan sistem operasi. Jadi, misalnya, tumpukan atau caching TCP / IP dapat dianggap middleware. Tetapi OS Anda bisa menyediakan fitur yang sama juga. Memang, middleware dapat dianggap sebagai ekstensi khusus untuk sistem operasi, khusus untuk satu set aplikasi yang bergantung padanya. Itu hanya menyediakan layanan tingkat yang lebih tinggi.

Beberapa contoh middleware:

  • cache terdistribusi
  • antrian pesan
  • monitor transaksi
  • paket rewriter
  • sistem cadangan otomatis
John Feminella
sumber
20

Wikipedia memiliki penjelasan yang cukup bagus: http://en.wikipedia.org/wiki/Middleware

Dimulai dengan

Middleware adalah perangkat lunak komputer yang menghubungkan komponen atau aplikasi perangkat lunak. Perangkat lunak ini terdiri dari serangkaian layanan yang memungkinkan beberapa proses berjalan pada satu atau lebih mesin untuk berinteraksi.

Apa itu Middleware memberikan beberapa contoh.

aioobe
sumber
1
Saya sudah menemukannya sendiri, tetapi tampaknya wikipedia mengatakan semuanya middleware atau apakah Anda memiliki contoh perangkat yang bukan middleware
Michel
2
Saya akan mengklarifikasi dengan menambahkan ... "satu atau lebih mesin untuk berinteraksi yang asli tidak akan mampu". Kalau tidak, setuju, tidak ada yang salah dengan jawaban itu.
jeriley
1
Lebih baik mengatakan "satu atau lebih [proses] untuk berinteraksi yang secara native tidak akan mampu".
fstuijt
19

Ada (setidaknya) tiga definisi berbeda yang saya ketahui

  • dalam komputasi bisnis, middleware adalah perangkat lunak perpesanan dan integrasi antara aplikasi dan layanan

  • dalam bermain game, middleware adalah apa pun yang disediakan oleh pihak ketiga

  • dalam (beberapa) sistem perangkat lunak tertanam, middleware menyediakan layanan yang digunakan aplikasi, yang terdiri dari fungsi-fungsi yang disediakan oleh lapisan abstraksi perangkat keras - ia berada di antara lapisan aplikasi dan lapisan abstraksi perangkat keras.

Pete Kirkham
sumber
15

Sederhananya Middleware adalah komponen perangkat lunak yang menyediakan layanan untuk mengintegrasikan sistem yang berbeda bersama.

Dalam lingkungan perusahaan yang kompleks, ada sejumlah tantangan ketika Anda perlu mengintegrasikan dua atau lebih sistem perusahaan untuk berbicara satu sama lain. Biasanya sistem ini tidak saling memahami bahasa karena mereka dikembangkan pada platform yang berbeda menggunakan bahasa yang berbeda (seperti C ++, Java, Cobol, dll.).

Jadi inilah perangkat lunak middleware dalam gambar yang menyediakan layanan seperti

  • transformasi format pesan dari satu aplikasi ke yang lain,
  • merutekan dan memperkaya pesan selain menjaga keamanan,
  • enkripsi,
  • validasi dan
  • menerapkan aturan bisnis yang berbeda untuk pesan-pesan ini.

Contoh khas middleware adalah produk ESB seperti broker pesan IBM (WMB / IIB), WESB, Datapower XI50, Oracle Fusion, Mule dan banyak lainnya.

Oleh karena itu, middleware sebagian besar duduk di antara aplikasi yang menggunakan layanan dan aplikasi penyedia layanan dan membantu aplikasi ini untuk saling berbicara.

SAK123
sumber
14

Middleware adalah tentang bagaimana aplikasi kita menanggapi permintaan yang masuk. Middlewares melihat permintaan yang masuk, dan membuat keputusan berdasarkan permintaan ini. Kami dapat membangun seluruh aplikasi hanya menggunakan middlewares. Misalnya ASP.NET adalah kerangka kerja web yang terdiri dari komponen HTTP middleware berikut.

  1. Penanganan pengecualian / kesalahan
  2. Server file statis
  3. Autentikasi
  4. MVC Middlewares

Seperti yang ditunjukkan pada diagram di atas, ada berbagai komponen middleware di ASP.NET yang menerima permintaan yang masuk, dan mengarahkannya ke kelas C # (dalam hal ini kelas pengontrol).

Eldiyar Talantbek
sumber
10

Middleware adalah istilah umum untuk perangkat lunak yang berfungsi untuk "merekatkan bersama" program-program yang terpisah, seringkali kompleks dan sudah ada. Beberapa komponen perangkat lunak yang sering dihubungkan dengan middleware termasuk aplikasi perusahaan dan layanan Web.

Falcucci
sumber
6

Ada definisi umum dalam pengembangan aplikasi web yang (dan saya membuat kata-kata ini tetapi tampaknya cocok): Komponen yang dirancang untuk memodifikasi permintaan dan / atau respons HTTP tetapi (biasanya) tidak melayani respons secara keseluruhan, dirancang untuk dirantai bersama untuk membentuk saluran perubahan perilaku selama pemrosesan permintaan.

Contoh tugas yang biasanya dilaksanakan oleh middleware:

  • Kompresi respons Gzip
  • Otentikasi HTTP
  • Minta logging

Poin kuncinya di sini adalah bahwa tidak ada yang bertanggung jawab penuh untuk merespons klien. Sebaliknya masing-masing mengubah perilaku dalam beberapa cara sebagai bagian dari pipa, meninggalkan respons aktual untuk datang dari sesuatu nanti dalam urutan (pipa).

Biasanya, middlewares dijalankan sebelum semacam "router", yang memeriksa permintaan (seringkali jalur) dan memanggil kode yang sesuai untuk menghasilkan respons.

Secara pribadi, saya benci istilah "middleware" karena sifatnya yang murah hati tetapi umum digunakan.

Berikut adalah penjelasan tambahan yang khusus berlaku untuk Ruby on Rails.

Brad Peabody
sumber
6

Middleware berdiri di antara aplikasi web dan layanan web yang asli tidak dapat berkomunikasi dan sering ditulis dalam berbagai bahasa / kerangka kerja.

Salah satu contohnya adalah OWIN middleware for .NETlingkungan, sebelum orang-orang dipaksa untuk meng-host aplikasi web dalam perangkat lunak hosting microsoft yang disebut IIS. Setelah owin dikembangkan, ia telah menambah kapasitas untuk menjadi tuan rumah baik di IIS dan tuan rumah, di IIS baru saja menambahkan dukungan untuk Owin yang bertindak sebagai antarmuka. Juga menjadi mungkin host .NET web apps on Linux via Mono, yang sekali lagi menambahkan dukungan untuk Owin.

Ini juga menambah kapasitas untuk membuat Single Page Applications, Owin menangani Httpkonteks permintaan / respons, jadi di atas owin Anda dapat menambahkan authentication/authorizationlogika melalui OAuth2 misalnya, Anda dapat mengkonfigurasi middleware untuk mendaftarkan kelas yang berisi logika otentikasi pengguna (misalnya implementasi OAuth2) atau kelas yang berisi logika bagaimana mengelola pesan permintaan / tanggapan http, dengan cara itu Anda dapat membuat satu aplikasi berkomunikasi dengan aplikasi / layanan lain melalui format data yang berbeda (seperti json, xml, dll jika Anda menargetkan web).

Daniel
sumber
3

Beberapa contoh middleware: CORBA, Remote Method Invocation (RMI), ...

Contoh-contoh yang disebutkan di atas adalah semua bagian dari perangkat lunak yang memungkinkan Anda untuk menjaga komunikasi antara berbagai proses (baik berjalan pada mesin yang sama atau didistribusikan melalui misalnya internet).

fstuijt
sumber
2

Dari pengalaman saya sendiri dengan webwork, middleware adalah hal-hal antara pengguna (browser web) dan database backend. Itu adalah perangkat lunak yang mengambil barang yang dimasukkan pengguna (contoh: pesanan untuk iPad, melakukan beberapa logika bisnis magis, yaitu memeriksa apakah ada cukup iPad yang tersedia untuk mengisi pesanan) dan memperbarui database backend untuk mencerminkan perubahan tersebut.

kejahatan
sumber
2

Ini hanya bagian dari perangkat lunak atau alat yang digunakan aplikasi Anda dan kemampuan raplikasi sehubungan dengan ketersediaan tinggi, skalabilitas, pengintegrasian dengan perangkat lunak atau sistem lain tanpa Anda khawatir tentang perubahan kode level aplikasi Anda.

Sebagai contoh: Sistem operasi yang menjalankan aplikasi Anda memerlukan perubahan IP, Anda tidak perlu khawatir tentang hal itu dalam kode Anda, itu adalah tumpukan middleware di mana Anda dapat dengan mudah memperbarui konfigurasi.

Contoh 2: Anda mengalami masalah dengan alokasi memori runtime Anda dan merasa bahwa penggunaan aplikasi Anda telah meningkat, Anda tidak perlu banyak tentang hal itu kecuali jika Anda memiliki bug atau hambatan dalam kode Anda, itu mudah dicapai dengan mengatur konfigurasi perangkat lunak middleware di yang menjalankan aplikasi Anda.

Contoh 3: Anda memiliki beberapa perangkat lunak yang berbeda dan Anda memerlukannya untuk saling berbicara atau mengirim data dalam format umum yang dapat dimengerti oleh semua sistem maka di sinilah sistem middleware berguna.

Semoga informasi yang diberikan membantu.

Afzal Haque
sumber
2

itu adalah lapisan perangkat lunak antara sistem operasi dan aplikasi di setiap sisi sistem komputasi terdistribusi dalam jaringan. Bahkan menghubungkan jaringan heterogen dan sistem perangkat lunak.

Maryam Sheikh
sumber
0

Saya selalu menganggapnya sebagai perangkat lunak tertua yang harus saya instal. Aplikasi total menggunakan server web, server database, dan server aplikasi. Server web menjadi middleware antara data dan aplikasi.

Rick
sumber
0

Jika saya tidak salah, dalam kerangka aplikasi perangkat lunak , berdasarkan konteksnya , Anda dapat mempertimbangkan middlewareuntuk peran berikut yang dapat digabungkan untuk melakukan aktivitas tertentu di antara pengguna requestdan aplikasi response.

  • Adaptor
  • Pembersih
  • Validator
ANM Saiful Islam
sumber