Ara katman yazılımı tam olarak nedir?


204

Bir çok insanın ara katman yazılımı hakkında konuştuğunu duydum , ancak ara katman yazılımının kesin tanımı nedir? Ara katman yazılımına baktığımda, çok fazla bilgi ve bazı tanımlar buluyorum, ancak bu bilgi ve tanımları okurken, çoğunlukla tüm 'mallar' bir şeyin ortasında görünüyor. Peki, her şey ara katman yazılımı mıdır?

Yoksa ara katman yazılımı olmayan bir eşya örneğiniz var mı?

Yanıtlar:


219

Diyelim ki şirketiniz 4 farklı ürün üretiyor, müşteriniz başka 3 farklı şirketten 3 farklı ürün daha alıyor.

Bir gün müşteri düşündü, neden tüm sistemlerimizi tek bir dev sisteme entegre etmiyoruz. On dakika sonra BT departmanları bunun 2 yıl süreceğini söyledi.

Siz (bilge geliştirici) dediniz ki, neden sadece tüm farklı sistemleri entegre etmiyoruz ve homojen bir ortamda birlikte çalıştırmıyoruz? Size bakan müşteri yöneticisi ... Devam ettiniz, bir Middleware kullanacağız, tüm farklı sistemlerin Giriş / Çıkışlarını, kullandıkları kaynakları inceleyip uygun bir Middleware çerçevesi seçeceğiz.

Hala teknik olmayan yöneticiye açıklanması
Middleware çerçevesi ortada olduğunda, ilk sistem X şeyler üretecek, Y ve Z sistemi bu çıktıları tüketecek vb.


Büyük örnek! Bu şekilde heterojen bir ortam olmayacak mı? homojen değil.
Rabia Naz khan

Ara katman yazılımı bir veri (toplama + dönüştürme) bileşenidir.
54'te aşırı döviz değişimi

92

Ara katman yazılımı son derece belirsiz bir terimdir. Bir durumda "ara katman yazılımı" başka bir şey olmayacaktır. Genel olarak, ara katman yazılımı olarak sınıflandırılan bir şeyin aşağıdaki özelliklere sahip olmasını bekleyebilirsiniz:

  • Öncelikle (genellikle münhasıran) yazılım; genellikle herhangi bir özel donanıma ihtiyaç duymaz.

  • O takdirde değildi orada, ona bağlı uygulamalar kendi uygulamasının parçası olarak içermek zorunda kalacak ve çoğaltılması çok yaşayacaktır.

  • Neredeyse kesinlikle iki uygulamayı birbirine bağlar ve aralarında veri aktarır.

Bunun bir işletim sistemiyle hemen hemen aynı tanım olduğunu fark edeceksiniz. Dolayısıyla, örneğin, bir TCP / IP yığını veya önbellekleme ara katman yazılımı olarak düşünülebilir. Ancak işletim sisteminiz de aynı özellikleri sağlayabilir. Gerçekten de, ara katman yazılımı, bir işletim sistemine, ona bağlı bir dizi uygulamaya özgü özel bir uzantı gibi düşünülebilir. Yalnızca daha üst düzey bir hizmet sunar.

Bazı katman yazılım örnekleri:

  • dağıtılmış önbellek
  • mesaj kuyruğu
  • işlem monitörü
  • paket yeniden yazma
  • otomatik yedekleme sistemi

20

Wikipedia'nın oldukça iyi bir açıklaması var: http://en.wikipedia.org/wiki/Middleware

İle başlar

Middleware, yazılım bileşenlerini veya uygulamalarını bağlayan bilgisayar yazılımıdır. Yazılım, bir veya daha fazla makinede çalışan birden çok işlemin etkileşime girmesine izin veren bir dizi hizmetten oluşur.

Middleware nedir birkaç örnek verir.


1
Zaten kendim buldum, ama wikipedia her şeyin ara katman yazılımı olduğunu söylüyor veya ara katman yazılımı olmayan bir eşya örneği var mı
Michel

2
"... doğal olarak etkileşimde bulunamayacak bir veya daha fazla makine" ekleyerek açıklığa kavuşturacağım. Aksi takdirde, katılıyorum, bu cevapta yanlış bir şey yok.
jeriley

1
"Doğal olarak etkileşimde bulunamayacak bir veya daha fazla [süreç]" demek daha iyi.
fstuijt

19

Fark ettiğim (en az) üç farklı tanım var

  • iş bilgi işleminde, ara katman yazılımları uygulamalar ve hizmetler arasında mesajlaşma ve entegrasyon yazılımıdır

  • oyunlarda, ara katman yazılımı üçüncü taraflarca sağlanan her şeydir

  • gömülü yazılım sistemlerinde, ara katman yazılımı, donanım soyutlama katmanının sağladığı işlevlerden oluşan uygulamaların kullandığı hizmetleri sağlar - uygulama katmanı ve donanım soyutlama katmanı arasında bulunur.


15

Basitçe söylemek gerekirse Middleware, farklı sistemleri bir araya getirmek için hizmet sağlayan bir yazılım bileşenidir.

Karmaşık bir kurumsal ortamda, birbirinizle konuşmak için iki veya daha fazla kurumsal sistemi bir araya getirmeniz gerektiğinde bir takım zorluklar vardır. Normalde bu sistemler, farklı diller (C ++, Java, Cobol, vb.) Kullanılarak farklı platformlarda geliştirildikleri için birbirlerinin dilini anlamazlar.

İşte burada resim gibi ara katman yazılımı geliyor

  • mesaj biçimlerinin bir uygulamadan diğerine dönüşümü,
  • güvenliğin yanı sıra mesajların yönlendirilmesi ve zenginleştirilmesi,
  • şifreleme,
  • doğrulama ve
  • bu mesajlara farklı iş kuralları uygulamak.

Ara katman yazılımının tipik bir örneği, IBM Message Broker (WMB / IIB), WESB, Datapower XI50, Oracle Fusion, Mule ve diğerleri gibi ESB ürünleridir.

Bu nedenle, ara katman yazılımı çoğunlukla servis tüketen uygulamalar ile servis sağlayıcı uygulamaları arasında yer alır ve bu uygulamaların birbirleriyle konuşmasına yardımcı olur.


14

Ara katman yazılımı, uygulamamızın gelen isteklere nasıl yanıt verdiğiyle ilgilidir. Middlewares gelen talebi inceler ve bu talebe göre kararlar alır. Tüm uygulamaları yalnızca orta yol yazılımlarını kullanarak oluşturabiliriz. Örneğin ASP.NET, aşağıdaki ana HTTP ara katman bileşenlerini içeren bir web çerçevesidir.

  1. İstisna / hata işleme
  2. Statik dosya sunucusu
  3. Kimlik Doğrulama
  4. MVC ara katman

Yukarıdaki şemada gösterildiği gibi, ASP.NET'te gelen isteği alan ve bir C # sınıfına (bu durumda bir denetleyici sınıfı) yönlendiren çeşitli ara katman bileşenleri vardır.


10

Ara katman yazılımı, ayrı, genellikle karmaşık ve zaten var olan programları "birbirine yapıştırmaya" hizmet eden genel bir terimdir. Ara katman yazılımı ile sık sık bağlanan bazı yazılım bileşenleri arasında kurumsal uygulamalar ve Web hizmetleri bulunur.


6

Web uygulaması geliştirmede yaygın bir tanım vardır (ve bu ifadeyi uyduruyorum, ancak uygun görünüyor): Bir HTTP isteğini ve / veya yanıtını değiştirmek için tasarlanmış ancak (genellikle) yanıtı sunmayan bir bileşen bütünüyle, istek işleme sırasında davranışsal değişikliklerin bir boru hattını oluşturmak için birlikte zincirlenecek şekilde tasarlanmıştır.

Ara katman yazılımı tarafından yaygın olarak uygulanan görevlere örnekler:

  • Gzip yanıtı sıkıştırma
  • HTTP kimlik doğrulaması
  • Günlük kaydı iste

Burada kilit nokta, bunların hiçbirinin müşteriye cevap vermekten tamamen sorumlu olmamasıdır. Bunun yerine, her biri davranışı boru hattının bir parçası olarak bir şekilde değiştirir ve gerçek yanıtı sıradaki (boru hattı) sonraki bir şeyden gelmeye bırakır.

Genellikle, orta yollar, isteği (genellikle yolu) inceleyen ve yanıtı oluşturmak için uygun kodu çağıran bir tür "yönlendirici" den önce çalıştırılır.

Şahsen ben jenerikliği için "ara katman" teriminden nefret ediyorum ama ortak kullanımda.

Ruby on Rails için özellikle geçerli olan ek bir açıklama.


6

Middleware yerel olarak iletişim kuramayan ve genellikle farklı dillerde / çerçevelerde yazılmış web uygulamaları ile web hizmetleri arasında duruyor.

Böyle bir örnek, OWIN middleware for .NETowin insanları web uygulamaları adı verilen bir microsoft barındırma yazılımında barındırmaya zorlanmadan önce ortamdır IIS. Owin geliştirildikten sonra, hem IIS'de hem de kendi ana bilgisayarında barındırma kapasitesi ekledi, IIS'de sadece arabirim görevi gören Owin için destek eklendi. Ayrıca host .NET web apps on Linux via MonoOwin için destek ekledi.

Ayrıca Single Page Applications, Owin işleme Httpisteği / yanıt bağlamı oluşturma kapasitesi ekledi , bu yüzden owin'in üstüne authentication/authorizationOAuth2 aracılığıyla mantık ekleyebilirsiniz , örneğin, kullanıcı kimlik doğrulaması mantığı içeren bir sınıfı kaydetmek için ara katmanı yapılandırabilirsiniz (örn. OAuth2 uygulaması için) veya http istek / yanıt mesajlarını yönetme mantığını içeren sınıf, bu şekilde bir uygulamanın farklı veri formatı (web hedefliyorsanız json, xml, vb.) aracılığıyla diğer uygulamalar / hizmetler ile iletişim kurmasını sağlayabilirsiniz.


3

Ara katman yazılımlarına bazı örnekler: CORBA, Uzaktan Yöntem Çağırma (RMI), ...

Yukarıda belirtilen örneklerin tümü, farklı işlemler (aynı makinede çalışan veya örneğin internet üzerinden dağıtılan) arasındaki iletişimi korumanıza izin veren yazılım parçalarıdır.


2

Kendi web deneyimimden bir ara katman, kullanıcılar (web tarayıcısı) ve arka uç veritabanı arasında bir şeydi. Kullanıcıların koyduğu şeyleri alan yazılımdı (örnek: iPad siparişleri, bazı sihirli iş mantığı yaptı, yani siparişi doldurmak için yeterli iPad olup olmadığını kontrol edin) ve bu değişiklikleri yansıtacak şekilde arka uç veritabanını güncelledi.


2

Uygulamanızın yürüttüğü ve yüksek kullanılabilirlik, ölçeklenebilirlik, uygulama seviyesi kodu değişikliklerinizle uğraşmadan diğer yazılımlarla veya sistemlerle entegrasyon açısından uygulama yeteneklerinin uygulandığı bir yazılım veya araçtır.

Örneğin: Uygulamanızın çalıştığı işletim sistemi bir IP değişikliği gerektirir, kodunuzda endişelenmenize gerek yoktur, yapılandırmayı basitçe güncelleyebileceğiniz ara katman yığınıdır.

Örnek 2: Çalışma zamanı bellek ayırma ile ilgili sorunlar yaşıyorsanız ve uygulama kullanımınızın arttığını hissediyorsunuz, kodunuzda bir hata veya darboğaz yoksa bu konuda fazla bir şey yapmanız gerekmiyor, ara yazılım yazılımı yapılandırmasını ayarlayarak kolayca erişilebilir uygulamanızın çalıştığı

Örnek 3: Birden fazla farklı yazılımınız var ve birbirleriyle konuşmaları veya tüm sistemler tarafından anlaşılabilir ortak bir formatta veri göndermeleri gerekiyor, o zaman ara katman sistemleri kullanışlı oluyor.

Umarım verilen bilgiler yardımcı olur.


2

işletim sistemi ile ağdaki dağıtılmış bilgi işlem sisteminin her iki yanındaki uygulamalar arasındaki bir yazılım katmanıdır. Aslında heterojen ağ ve yazılım sistemlerini birbirine bağlar.


0

Bunu her zaman kurmak zorunda olduğum en eski yazılım olarak düşündüm. Toplam uygulama bir web sunucusu, bir veritabanı sunucusu ve bir uygulama sunucusu kullandı. Web sunucusu, veriler ve uygulama arasındaki ara katman yazılımıdır.


0

Yanılmıyorsam, içeriğe dayalı yazılım uygulama çerçevesinde , kullanıcı ile uygulama arasında belirli etkinlikleri gerçekleştirmek için birleştirilebilecek aşağıdaki rolleri göz önünde bulundurabilirsiniz .middlewarerequestresponse

  • adaptör
  • Temizleyici
  • Doğrulayıcı
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.