Talk:Middleware
From Wikipedia, the free encyclopedia
[edit] 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)
[edit] 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".
[edit] 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
[edit] 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)
[edit] 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)
[edit] 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#Middleware RobLinwood 00:34, 15 April 2006 (UTC)
[edit] List of "Middleware products and vendors"
I would propose deleting this list on the grounds that:
- Middleware is such an extremely broad term that a list of vendors of middleware isn't very useful.
- It is against wikipedia policy, namely that Wikipedia is not a repository of links.
- It is magnet for spam that will require regular cleaning.
—Veyklevar 08:08, 15 April 2006 (UTC)
- 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)
[edit] 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!)
[edit] 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
[edit] 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.
[edit] 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#Software framework taxonomy Ian Bailey 05:12, 11 April 2007 (UTC)
[edit] 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)?
[edit] 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)
[edit] 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)
[edit] Why Oracle was added to the Organizations sector?
Oracle is not that much a player in the Middleware sector. Right about their talks to acquire BEA to enhance their Middleware offering, somebody adds them as a key player in the Middleware 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)
[edit] 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"