**Посредничка програмска опрема** (англиски: Middleware) е софтвер кој поврзува други видови на софтвер и апликации заедно. Тој содржи услуги кои овозможуваат различни компоненти и процеси да се извршуваат на интеракција во исто време. Ова им овозможува на компјутерите да работат поефикасно. Со други зборови middleware им овозможува на информациите кои се зачувани во една база на податоци да се пренесат и користат во друга база на податоци.

Друга употреба или дефиниција е тоа дека тој ги поврзува оперативните системи на една страна и апликациите на друга страна. Тоа во теорија е помош за потребите на интернетот, односно можност за оперативниот систем да праќа информации на некоја апликација, а потоа низ апликацијата да поминат информациите назад на оперативниот систем.

Middleware е софтвер кој поврзува различни делови на некоја апликација или серија на апликации. Можеме да го сфатиме тоа како еден вид на „лепило" кое ги држи заедно мрежата и компјутерите кои се поврзани на неа. Middleware може да биде една апликација или може да биде целокупниот опслужувач.

Middleware може да биде сфатен како адаптер, уред кој ќе биде стартован од новиот печатач на постариот компјутер. Адаптерот, односно middleware поврзува 2 уреди, овозможувајќи им комуникација помеѓу нив и оттука е функционалноста. Препорачаните middleware пакети вклучуваат DCE(Distributed Computing Environment) и Corba (Common Object Request Broker Architecture).

Секој тип на middleware ги има истите општи цели: да овозможи повеќе компјутери да прават повеќе работи преку мрежата или да овозможи еден компјутер да прави повеќе работи или една комплицирана работа работа во мрежата. На пример, некои middleware се користат за да направат врска од базата на податоци до опслужувачот, дозволувајќи има на корисниците пристап до базата на податоци преку интернет пребарувач.

Одредени сложени компјутерски системи побаруваат middleware со цел да работат на нивните барани апликации. Перфектен пример на голема форма на middleware е апликациски опслужувач, кој е опслужувач кој е посветен на една апликација или еден тип на апликација.

Одличен пример за middleware ќе биде пакет на софтвер којшто помага да се послужи средина за играње на мрежа. Повеќе и се почесто, игрите на мрежа се одликуваат со висока дефиниција, висока резолуција и графички интензивни презентации. Традиционалните решенија за опслужувач не се веќе доволни за да се олеснат искуствата со играњето во мрежа, особено е играње со повеќе играчи на мрежата. Middleware помага да се пополни празнината, и во реалноста и во вирутелната реалност.

Во својата најоснова, middleware е невидлив, дозволувајќи им на компјутерите да се поврзат и да комуницираат еден со друг и со опслужувачот. Без middleware, одредени видови на мрежни активности ќе бидат невозможни. Колку што помоќни апликации доаѓаат, толку повеќе middleware ќе биде потребен.
Најприфатена дефиниција е дека Middleware претставува секој софтвер кој овозвможува меѓусебна комуникација со некој друг софтвер.

### Постојат неколку видови на middleware

1. *Message Oriented Middleware (во превод посредничка програмска опрема ориентирана на пораки). Ова е голема категорија и вклучува асинхроно складиште и напредна апликациска способност за пораки како и интеграциски брокери кои вршат трансформација на пораки и насочување или дури бизнис процес координација.*
2. *Object Middleware (во превод посредничка програмска опрема за објекти). Оваа категорија се состои главно од објект побарувачки брокери. Овој вид на middleware им овозможува на апликациите да испраќаат објекти и побарувачки услуги во објектно-ориентираниот систем*
3. *RPC Middleware (во превод посредничка програмска опрема за повикување на процедури на далечински систем – Remote Procedure Call ). Овој тип на middleware е обезбеден за повикување на процедури на далечински системи, па оттука и називот RPC – Remote Procedure Call. За разлика од Message Oriented Middleware, RPC middleware претставува синхрона интеракција помеѓу системи и е најчесто користена во рамките на една апликација.*
4. *Database Middleware (во превод посредничка програмска опрема за база на податоци). Database middleware дозволува директен пристап до податочната структура и овозможува интеракција директно со базата на податоци.*
5. *Transaction Middleware (во превод посредничка програмска опрема за трансакција). Оваа категорија како што се користи во middleware ресурсниот центар вклучува традиционална TPM (Transaction Processing Monitors е сет на информации кои ја обработуваат податочната трансакција во системот на бази на податоци којшто ја следат трансакциони програми - тоа се специјал вид на програми) и веб апликационен опслужувач*
6. *Portals (во превод посредничка програмска опрема за портали). Ние го вклучуваме претприемачките портални опслужувачи како middleware во голема мера, бидејќи тие го олеснуваат она ние го нарекуваме "преден крај" интеграција. Тие дозволуваат интеракција помеѓу корисничкиот десктоп и задниот крај на системите и услугите*

Многу дистрибуирани апликации прават директна употреба на програмскиот посредник предложен од мрежните оперативни системи. На пример, комуникацијата е често изразена преку операции на сокети, кои дозволуваат процеси на различни машини да поминат еден на друг пораки. Покрај тоа апликациите често прават употреба на посредник кон локалниот датотечен систем.

Како што објаснавме, проблемот со овој пристап е тоа што дистрибуцијата е едвај транспарентна. Решение е да се постави додатен слој на софтвер помеѓу апликации и мрежен оперативен систем, нудејќи повисоко ниво на абстракција. Таквиот слој е соодветно наречен middleware. Тој седи во средината помеѓу апликациите и мрежниот оперативен систем.

Секој локален системски формиран дел од основниот мрежен оперативен систем е претставен за да обезбеди управување со локалните ресурси, во прилог поедноставување на комуникационите средства за поврзување на други компјутери. Со други зборови, middleware сам по себе не го управува поединечниот јазол. Важна цел е да се сокрие хетерогеноста на основните платформи од апликацијата. Затоа, многу middleware системи нудат повеќе или помалце комплетна колекција на услуги и одговара користејќи ништо друго освен нивниот посредник до овие услуги.

### Middleware услуги

Има голем број на услуги заеднички за многу middleware системи. Непроменливо, сите middleware, на еден или друг начин, се обидуваат да ја имплементираат пристапната транспарентност, нудејќи висок степен на комуникациски содржини кои го сокриваат ниското ниво на пораки кои поминуваат низ компјутеркста мрежа. Програмскиот посредник на транспортно ниво е предложен од мрежните оперативни системи и така целосно е заменет со друга содржина. Како комуникација е поддржана многу зависи од моделот на дистрибуција на middleware понудена на корисниците и апликациите.

```
Многу middleware системи обезбедуваат содржини за транспарентен пристап до далечинските податоци, како што се дистрибуираните датотечни системи или дистрибуираните бази на податоци. Важна услуга заедничка за сите middleware е именувањето. Име услугите дозволуваат субјектите да бидат споделени и разгледани (како во директориумите), и се споредливи со телефонски именици жолти страници. Иако именувањето можда изгледа едноставно на прва мисла, тешкотиите произлегуваат кога размерливоста се зема предвид.
```

```
Проблемите се предизвикани од фактот дека за ефикасно прегледување на името во голем скаларен систем, локацијата на субјектот којшто е именуван мора да биде претпоставен за да биде поправен. Ова претпоставка е направена во WWW(World Wide Web),  во којшто секој документ е моментално именуван според значењето на URL. URL содржи им на опслужувачот каде документот на којшто URL се однесува е зачуван. Затоа, ако документот е преместен на друг опслужувач, неговиот URL престанува да работи.
```

Наводи
------

1. ↑
2. ↑
3. ↑  „архивски примерок". Архивирано од изворникот на 2012-06-29. Посетено на 2010-07-07.
4. ↑  Tanenbaum, Andrew S. Van Steen M. 2007. Distributed Systems, Principles and Paradigmes, 2nd ed. , Pearson Education, p. 3.