Talk:Middleware (distributed applications)

Confusion About Middleware
In the 1990's, "middleware" was an attempt to create formalized frameworks for distributed component applications (i.e. software built from reusable modules that run in multiple EXE's and on multiple PC's). This was obfuscated somewhat by (a) a huge amount of intentional verbal obfuscation by marketing people and (b) an insane amount of confusing overabstractions encouraged by standards bodies such as OMG. (For an excellent recap, check out the recent article "The Rise and Fall of CORBA" written by a former OMG leader.)

Behind the smoke & mirrors, neither DCOM nor CORBA actually worked all that well, which is why today the only people still using them are "enterprise" developers (i.e. huge corporations that can afford to pay people to program around the flaws). Nowadays the role of middleware is being replaced by simpler systems such as HTTP (for communication), the .NET Framework (for garbage-collected components), XML (for protocol contracts), etc. These are just random examples. The point is that it's not very useful to envision a vague, complex layer called "middleware" -- what we really have is a collection of distinct problems solved by various specialized tools.

However, a lot of $$$ was invested in the "middleware" buzzwords, so marketing people are reluctant to just let it go. Instead they recycle the terminology to apply to other products. This is why nobody at Wikipedia can agree what "middleware" is. Fortunately, the computing world is slowly waking up, and there is a growing distaste for muddy waters that make applications seem elaborate and complex. As this happens, pseudo-concepts such as middleware will be replaced by more concrete jargon that makes things easier, not harder, to understand.

70.169.134.132 03:35, 25 July 2006 (UTC)

I would have to disagree with the Confusion comment
Middleware can be quite simply defined as any software that facilitates a solution without directly contributing to its implementation. By this definition databases and CMSs are not middleware, while CORBA and MOMs are. Note also by this definition Application Servers would not be considered middleware, as their main purpose is to house solution logic. They may play a minor middleware role but this is not the primary purpose.

I can assure you middleware is a very real concept that is integral to the operations of all major corporates. Show me a corporate without MQ-Series (sorry, WebSphere Message Broker), Tibco Rendezvous or webMethods and I'll show you a corporate with one of their minor competitors.

Oh, and by the way, middleware has always been a informal categorisation and not an attempt to create a "formalised framework".

Incorporate EAI
It would be nice if someone could incorporate a reference to Enterprise Application Integration (EAI) into this article. See the following linkfor a good description of this:

http://dictionary.reference.com/search?q=enterprise%20application%20integration

Databases are not middleware
How are database management systems middleware? They're holding the final data, what can they be in the middle of? Unless the idea is that a (eg) DB2 server (middleware) will talk to an IMS mainframe (not middleware), but it hardly seems like a good architecture to be storing the data twice in a non-application-dependent way. Clarification would be appreciated.

I was also taken by that part of the definition i.e regarding databases. I don't beleive this is middleware but since it appears to have become a buzzword maybe it is not that important. I agree that a transaction manager is a good example however.

A DBMS (DataBase Management System) does not hold the 'final' data. It allows users and applications to access the data from the storage hardware, normally RAID.


 * Don't take it too seriously. It's just a buzzword. 68.168.80.4 13:15, 19 November 2006 (UTC)

What about Application_server ?
I am new here (more experienced at a smaller wiki previously). I arrived at the Application_server page. Should the description of the middleware page include the Application_server page too? I cannot think of a middleware that is not an application_server. —The preceding unsigned comment was added by 203.9.186.134 (talk • contribs).


 * I've added an Application Server section and linked to that page.--Bovineone 18:45, 7 May 2006 (UTC)


 * Message-oriented middleware is not an app server. bob pasker 07:07, 17 July 2006 (UTC)

Video game "middleware"
The term 'middleware' seems to have been taken up by video game developers to refer to an entirely different set of products, such as Renderware which enable porting between different platforms. I've always understood middleware to be things like MQ and Tibco, so this kind of surprised me, however it seems to be gaining in usage. Perhaps a seperate Middleware (video games) is needed? Already, I've seen references to the XBox on this article. RobLinwood 00:30, 15 April 2006 (UTC)
 * I've answered myself and added a link to Game engine RobLinwood 00:34, 15 April 2006 (UTC)
 * I have renamed this topic "Middleware (distributed applications)" and added a more general Middleware page that links to this one Paul Foxworthy (talk) 11:29, 20 February 2012 (UTC)

List of "Middleware products and vendors"
I would propose deleting this list on the grounds that: &mdash;Veyklevar 08:08, 15 April 2006 (UTC)
 * 1) Middleware is such an extremely broad term that a list of vendors of middleware isn't very useful.
 * 2) It is against wikipedia policy, namely that Wikipedia is not a repository of links.
 * 3) It is magnet for spam that will require regular cleaning.
 * Agree. In fact, it was just spammed again.  I'm removing it. RobLinwood 22:11, 16 April 2006 (UTC)
 * I've removed it again -- Bovineone 18:42, 7 May 2006 (UTC)

CMS is not middleware!
I think it is not correct to include CMS (Content Management Systems) in Middleware category. CMS softwares & solutions have many diverse functionalities which could not meet criteria in any of definitions of term 'Middleware' (not even Wikipedia's one!)

Publish/subscribe as a part of Mom
I'm in a class of middleware models and they teach us that the publish/subscribe is a kind of Message Oriented Middleware (mom) as you can clearly read in the article Publish/subscribe. However in the list we have pub/sub and mom as different types of middleware. That's why I deleted the pub/sub entry from the list of middleware types. Mainly for the sake of internal coherence. Cheers

--Zimbricchio 01:15, 23 October 2006 (UTC)
 * what about blackboard middlewares I don't see them in the list, they should belong in publish/suscribe category, and they are definitively not mom

Types of middleware
The citation of Hurwitz is probably Judith Hurwitz: Sorting out middleware. DBMS, Volume 11, Issue 1, Jan 1998, pages 10 - 12. An online version can be found here: http://www.dbmsmag.com/9801d04.html

Hurwitz identifies 6 classes of middleware - not only four as written in the article. This should be corrected.

Software framework taxonomy
I'm trying to organize the various types of software frameworks, and I would appreciate input from contributors to this article as well. See Talk:Software framework Ian Bailey 05:12, 11 April 2007 (UTC)

Which "Hurwitz" is meant?
In section "Types of middleware" there's a link to some "Hurwitz"... But it only leads to a disambiguation page, listing several people, and none stands out as author of "Hurwitz's classification system"... Could somebody add some clarification here (ie. correct the link so it points to the correct person)?

Make it simple to start with
My knowledge so far told me that Middleware is some software that facilitates development of some particular types of end-user-software application. Examples are J2EE complaint products, or RTP (a telecom platform) See http://www.fujitsu-siemens.com/products/software/cluster_technology/rtp4cs.html Types of middleware section 1. can be removed or renamed to say "Examples" as IMHO there is standard set of types. I can [hypothetically] develop some platform for banking applications and it would be called middleware by the guys who develop banking applications on top of it. 2. Most of the items listed there are not middleware IMO. If you push it only Application Server would qualify to be a middleware. --TheKashyap 10:23, 27 July 2007 (UTC)

Simple definition
I added a simple definition - from a perspective that predates the various hypes described above (but covering several of the above definitions). It seems there are two perspectives: the application structure perspective (with references e.g. to CORBA), and the more technical operating system structure perspective. I chose the latter. Well, it may be a rather wide definition, but it also shows e.g. why CMS is not to be considered middleware, and why development tools are not middleware. Rbakels 08:35, 14 October 2007 (UTC)

Why Oracle was added to the Organizations sector?
Oracle is not that much a player in the Middle ware sector. Right about their talks to acquire BEA to enhance their Middleware offering, somebody adds them as a key player in the Middle ware Organizations section. What does that mean?

I added BEA to IBM and removed Oracle. If somebody thinks this is not right, please revert back to mentioning IBM only.

Thanks SZ 06:59, 1 December 2007 (UTC)

Client/Server?
"This technology evolved to provide for interoperability in support of the move to client/server architecture." After this somewhat puzzling statement in the third sentence of this article, I couldn't help looking around to see what basis there was for the statement. In the classification of middleware, the word client appears again, so I presume client/server refers to RPC, which sure looks like client/server. And it is! But it's not a "client/server architecture", that's something completely different. A client/server architecture is a centralised architecture, which bundles resources in a server (which can of course be distributed) and maintains only end-user processing in the client (who consumes the resources). RPC is a distributed method of computing, and so it could be extensively used only withint the server portion of the client/server architecture as is often the case.

Am changing the sentence --> "distributed architecture"

EKhayaICT (talk) 06:52, 18 April 2008 (UTC)

Merge Message-oriented middleware here?
See Talk:Message-oriented middleware -- Harry Wood (talk) 10:56, 3 December 2008 (UTC)
 * Proposed. prat (talk) 13:21, 24 September 2010 (UTC)
 * Oppose. MOM is a specific category of middleware, and an important enough topic in its own right. "Middleware (distributed applications)" should and does link to the MOM article.

Mixing Tools with protocoles
It seems that many definitions are done by people that do not work with technology: is really wrong to mix protocols with tools like in the Hurwitz article:"I divide the middleware market into six categories: asynchronous remote procedure call, publish/subscribe, message-oriented middleware, object request brokers (ORBs), SQL-oriented data access middleware, and synchronous RPC". When RPC has become a middleware? Marketing vaporware has created a mess around technology definitions. The article has to be reviewed by someone not involved in selling stuff. —Preceding unsigned comment added by 158.102.29.146 (talk) 15:10, 1 July 2009 (UTC)

Merger proposal
Proposing merger of Message-oriented middleware, Enterprise service bus, Message broker and Enterprise messaging system for reason 2: Overlap - ''There are two or more pages on related subjects that have a large overlap. Wikipedia is not a dictionary; there does not need to be a separate entry for every concept in the universe. For example, "Flammable" and "Non-flammable" can both be explained in an article on Flammability.'' prat (talk) 13:08, 24 September 2010 (UTC)
 * Basically it seems these terms are bandied about for marketing purposes and have no fixed definition, whilst practically speaking their overlap is huge. Perhaps we would do better having a separate Comparison of middleware platforms article to drop all the industry-jargon / copious hair-splitting feature sets in, and keep the main (concept) article more approachable and generalised as befits a general audience? prat (talk) 13:18, 24 September 2010 (UTC)
 * It seems a comparison article already exists at Comparison of business integration software, however it is a bit of a mess and of dubious usefulness. prat (talk) 02:13, 25 September 2010 (UTC)
 * I have just requested comments on this proposal at WikiProject Systems and WikiProject Computing. prat (talk) 07:17, 26 September 2010 (UTC)
 * Hi Prat, I am from the WikiProject Systems and have taken a look. I have been writing about related subjects, but I am no expert here. I think you proposal is very difficult to judge if your not a real expert here. Three of those four articles seems (relatively) well developed and they have a long history. I guess you are right that there is an overlap, but that is not uncommon nowadays. I don't see the real need here. And one more thing. These subjects seems to be separated in other Wikipedia's as well. Just based on these impressions I would vote against it. -- Mdd (talk) 20:20, 26 September 2010 (UTC)
 * Here's a quote from Microsoft in an article titled 'Microsoft on the Enterprise Service Bus (ESB)': "The ESB label simply implies that a product is some type of integration middleware product that supports both MOM (Message-oriented middleware) and Web services protocols."microsoft.com prat (talk) 05:59, 27 September 2010 (UTC)
 * I am against merging Middleware with Message-oriented middleware and Enterprise service bus. I am ok with merging Message Broker into Message-oriented middleware. I am ok with having some (if not all) of Enterprise messaging system into Message-oriented middleware. These are completely different things. A middleware is just any infrastructure framework or system. So yes, an ESB is a middleware, just like an application server is while they are very different in what they do. A MOM can be accessed by an ESB, but en ESB can also access Web services or a DB, etc. Disjoint again. A message broker is actually a MOM so I think it is safe to merge them together. However, it is also an enterprise design pattern, so I think we can remove some work you cannot really make it disappear like this. Finally Enterprise messaging system is (as described in the article itself) a set of practices, not any implementation really, but there is an enormous overlap with Message-oriented middleware. I suppose some (if not all) of this can be merged? JnRouvignac (talk) 17:04, 15 November 2010 (UTC)
 * I agree 100% with JnRouvignac. When there are two topics, and they are both important and require considerable discussion, and one is much more general than the other, it makes sense to have two Wikipedia articles. Should we merge "War" and "World War 2"? Paul Foxworthy (talk) 05:49, 8 February 2012 (UTC)

Impenetrable jargon, or in other words, "Huh????"
Try to distance yourself, for just a moment, of your knowledge of the subject, and read this lede from the POV of an intelligent person with general technical knowledge but no specific background relevant to this topic: "Middleware is computer software that connects software components or some people and their applications. The software consists of a set of services that allows multiple processes running on one or more machines to interact. This technology evolved to provide for interoperability in support of the move to coherent distributed architectures, which are most often used to support and simplify complex distributed applications. It includes web servers, application servers, and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service-oriented architecture."


 * "Connects software components and their applications" - ???
 * "interoperability [in itself a difficult word to grasp] in support of the move to coherent distributed architectures " -- ??????
 * "used to support and simplify complex distributed applications" - ????????

I came to this article while trying to find out a little about Android (operating system) to understand more about how my husband's new Android-based phone is different from my new iPhone; the early paragraphs of that article referred to "middleware," which was a term I'd never heard. To dig deep into a concept like middleware, I accept, I would need to get used to complicated tech-talk. However, I still maintain that the first paragraph or so of this sort of article still should offer something that the casual reader/user might at least have a chance of comprehending at least partially. Can we not try again, here? Lawikitejana (talk) 12:58, 14 June 2011 (UTC)

In my 15 years I've used the term 'middleware' to describe the software layer underneath the application which provides services specific to the type of application. For instance take a cell phone software stack - the middleware would provide everything from task creation to graphics support, input management to phone features, etc., encapsulated with a consistent API. It's like a collection of libraries that share a common style and are designed to work together. Usually it sits on top of a hardware/os abstraction layer. — Preceding unsigned comment added by 76.252.238.121 (talk) 03:37, 8 December 2011 (UTC)

External links modified
Hello fellow Wikipedians,

I have just added archive links to 1 one external link on Middleware (distributed applications). Please take a moment to review my edit. If necessary, add after the link to keep me from modifying it. Alternatively, you can add to keep me off the page altogether. I made the following changes:
 * Added archive http://web.archive.org/web/20160102064357/http://www.devicelink.com/ivdt/archive/08/07/007.html to http://www.devicelink.com/ivdt/archive/08/07/007.html

When you have finished reviewing my changes, please set the checked parameter below to true to let others know.

Cheers.—cyberbot II  Talk to my owner :Online 18:26, 27 February 2016 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 2 external links on Middleware (distributed applications). Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20050507151935/http://middleware.objectweb.org/ to http://middleware.objectweb.org/
 * Added archive https://web.archive.org/web/20120402121113/http://www.cougaarsoftware.com/files/CSI_ActiveEdge.pdf to http://www.cougaarsoftware.com/files/CSI_ActiveEdge.pdf

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 03:00, 27 July 2017 (UTC)

External links modified (January 2018)
Hello fellow Wikipedians,

I have just modified one external link on Middleware (distributed applications). Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20110426045143/http://www.dcs.kcl.ac.uk/staff/tysong/files/PhD.pdf to http://www.dcs.kcl.ac.uk/staff/tysong/files/PhD.pdf
 * Added tag to http://www.omii.ac.uk/

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 17:17, 29 January 2018 (UTC)

"modern information technology"?
Seems the word "modern" is almost always inappropriate in today's fast moving Information Technology world.

With today's Platform as a Service offerings and JSON, calling XML, SOAP "modern" is so 1990s -jim 08:49, 4 July 2019 (UTC) — Preceding unsigned comment added by Jwilleke (talk • contribs)