views:

246

answers:

6

I hear a lot of people talking last days about middleware, but what is the exact definition of middleware. If I look in information about middleware I found a lot of information and some definitions, but while reading this information and defintions it seems that mostly all 'wares' are in the middle of something. So from my opinion all things are middleware?

or do you have an example of a ware that doesn't is middleware?

+4  A: 

Wikipedia has a quite good explanation: http://en.wikipedia.org/wiki/Middleware

It starts with

Middleware is computer software that connects software components or applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact.

What is Middleware gives a few examples.

aioobe
+1 to counter the downvote. Nothing wrong with this answer.
Oded
I found it myself allready, but it seems wikipedia says everything is middleware or do you have an example of a ware that doesn't is middleware
michel
I would clarify by adding ... "one or more machines to interact that natively would not be able to". Otherwise, agree, nothing wrong with that answer.
jeriley
Better to say "one or more [processes] to interact that natively would not be able to".
florans
+1  A: 

Some examples of middleware: CORBA, Remote Method Invocation (RMI),...

The examples mentioned above are all pieces of software allowing you to take care of communication between different processes (either running on the same machine or distributed over e.g. the internet).

florans
+5  A: 

There are (at least) three different definitions I'm aware of

  • in business computing, middleware is messaging and integration software between applications and services

  • in gaming, middleware is pretty well anything that is provided by a third-party

  • in (some) embedded software systems, middleware provides services that applications use, which are composed out of the functions provided by the hardware abstraction layer - it sits between the application layer and the hardware abstraction layer.

Pete Kirkham
+1  A: 

Lets say your company makes 4 different products, your client has another 3 different products from another 3 different companies.

Someday the client though, why don't we integrate all our systems into one huge system. Ten minutes later their IT department said that will take 2 years.

You (the wise developer) said, why don't we just integrate all the different systems and make them work together in a homogeneous environment? The client manager staring at you... You continued, we will use a Middleware, we will study the Inputs/Outputs of all different systems, the resources they use and then choose an appropriate Middleware framework.

Still explaining to the non tech manager
With Middleware framework in the middle, the first system will produce X stuff, the system Y and Z would consume those outputs and so on.

medopal
nice connector example
michel
+4  A: 

Middleware is a terribly nebulous term. What is "middleware" in one case won't be in another. In general, you can expect something classed as middleware to have the following characteristics:

  • Primarily (usually exclusively) software; usually doesn't need any specialized hardware.

  • If it weren't there, applications that depend on it would have to incorporate it as part of their application and would experience a lot of duplication.

  • Almost certainly connects two applications and passes data between them.

You'll notice that this is pretty much the same definition as an operating system. So, for instance, a TCP/IP stack or caching could be considered middleware. But your OS could provide the same features, too. Indeed, middleware can be thought of like a special extension to an operating system, specific to a set of applications that depend on it. It just provides a higher-level service.

Some examples of middleware:

  • distributed cache
  • message queue
  • transaction monitor
  • packet rewriter
  • automated backup system
John Feminella
A: 

from my own experience with webwork, middleware was stuff that between users (the web browser) and the backend database. It was the software that took stuff that users put in (example: orders for ipads, did some magical business logic (check if there are enough ipads available to fill the order) and updated the backend database to reflect those changes.

eviljack