Skip navigation

Oracle, BEA and middleware’s future

Most business people don’t even know what middleware is, let alone how often they use it every day.

If you’re trying to pull information out of a database, for example, you need a software program that allows you to access the database. If you work in a company with multiple databases, though, you would need a different software program to access each database unless you had some middleware – technology that sits in the middle of applications and “glues” them together.

That’s why middleware is such a hot market, and why database firm Oracle’s acquisition of middleware specialist BEA Systems last week for $8.5-billion (U.S.) was such a hot topic among IT professionals. BEA was considered the last of the big firms that focused exclusively on middleware, and there’s a lot of speculation over what the deal means for customers.

Here are a few experts’ predictions to keep in mind if your IT department is working on anything involving middleware.

Biggest potential impact: Dan Foody, a vice-president of Progress Software, echoes the thoughts of many observers that Oracle and BEA face significant product overlap, which may mean users will face a tough upgrade decision before long. “Like it or not, it would be bad business for Oracle to have two application servers,” he writes, referring to a category of middleware product. “Oracle is going to have to pick one to go forward. Because of this, customers that made a different choice will end up with legacy SOA infrastructure products that they will have to deal with.”

Key industries affected: James Governor, an industry analyst writing at RedMonk.com, says the BEA middleware products Oracle has bought will likely appeal to telecommunications firms, which Oracle has struggled to win over in the past. “Oracle also gains a far stronger presence in financial services, a market that proved surprisingly hard to crack,” he writes. “Many banks still use [databases from] Sybase and Informix. [BEA’s middleware product] WebLogic is often found alongside these databases.” Other competitors include IBM and SAP, Mr. Governor notes.

What it will cost: While some BEA users have already expressed fears over price hikes, Eric Newcomer writes on blogs.iona.com that whoever’s left in the market should be focused on saving customers’ money. “It should be clear by now that customers have enough of the old expensive middleware,” he writes. “What they need now are lightweight, less expensive products that will help them extend applications into the modern world at an appropriate price point. It should not cost as much to improve an application as it did to create it in the first place.”

The timeline: “I predict that it will take years for Oracle to have a middleware stack that incorporates BEA’s value,” writes enterprise and infrastructure consultant Judith Hurwitz at jshurwitz.wordpress.com, suggesting that most companies have some time on their hands before they feel the full effects of the merger. “At least where Oracle is concerned, we won’t be bored.”

Comments are closed

Thanks for your interest in commenting on this article, however we are no longer accepting submissions. If you would like, you may send a letter to the editor.

Report an abusive comment to our editorial staff

close

Alert us about this comment

Please let us know if this reader’s comment breaks the editor's rules and is obscene, abusive, threatening, unlawful, harassing, defamatory, profane or racially offensive by selecting the appropriate option to describe the problem.

Do not use this to complain about comments that don’t break the rules, for example those comments that you disagree with or contain spelling errors or multiple postings.

Back to Recommended Links

Recommended Links

Shane Schick's Recommended Links blog

Blogroll

javax.servlet.ServletException: Processing template "tgamv3/v5/story/WBStory.html" with config "null"
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:231)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)

Nested exception: GIS.Common.GICheckedException: Other exception in file: '/opt/GIS/HTML_Templates/tgamv3/v5/story/WBStory.html'  while processing select element with added parms:{}
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1511)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:945)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Servlets.HTMLTemplate.generate(HTMLTemplate.java:316)
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:222)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)

Nested exception: GIS.Common.GICheckedException: Other exception  while processing transformation element with added parms:{cacheTime=5000, type=xsl, url=/usr/local/web_htdocs/tgamv3/v5/includes/content/blogs/blogroll-gam.opml}
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1625)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Jel.JELSelectProducer.emitChoiceNode(JELSelectProducer.java:48)
	at GIS.Jel.JELSelectOneProducer.generate(JELSelectOneProducer.java:92)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1502)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:945)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Servlets.HTMLTemplate.generate(HTMLTemplate.java:316)
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:222)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)

Nested exception: java.lang.ClassCastException: org.apache.xerces.dom.ElementNSImpl cannot be cast to com.caucho.xml.QElement
	at com.caucho.xsl.Generator.getXslLocal(Generator.java:2141)
	at com.caucho.xsl.Generator.generate(Generator.java:294)
	at com.caucho.xsl.AbstractStylesheetFactory.generate(AbstractStylesheetFactory.java:819)
	at com.caucho.xsl.AbstractStylesheetFactory.newTemplates(AbstractStylesheetFactory.java:437)
	at com.caucho.xsl.AbstractStylesheetFactory.newTransformer(AbstractStylesheetFactory.java:312)
	at GIS.Universal.XMLTransformer.transform(XMLTransformer.java:262)
	at GIS.Universal.XMLTransformer.transform(XMLTransformer.java:166)
	at GIS.HTMLComments.HTMLProducers.XSLProducer.generate(XSLProducer.java:85)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1615)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Jel.JELSelectProducer.emitChoiceNode(JELSelectProducer.java:48)
	at GIS.Jel.JELSelectOneProducer.generate(JELSelectOneProducer.java:92)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1502)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:945)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Servlets.HTMLTemplate.generate(HTMLTemplate.java:316)
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:222)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)

Nested exception: java.lang.ClassCastException: org.apache.xerces.dom.ElementNSImpl cannot be cast to com.caucho.xml.QElement
	at com.caucho.xsl.Generator.getXslLocal(Generator.java:2141)
	at com.caucho.xsl.Generator.generate(Generator.java:294)
	at com.caucho.xsl.AbstractStylesheetFactory.generate(AbstractStylesheetFactory.java:819)
	at com.caucho.xsl.AbstractStylesheetFactory.newTemplates(AbstractStylesheetFactory.java:437)
	at com.caucho.xsl.AbstractStylesheetFactory.newTransformer(AbstractStylesheetFactory.java:312)
	at GIS.Universal.XMLTransformer.transform(XMLTransformer.java:262)
	at GIS.Universal.XMLTransformer.transform(XMLTransformer.java:166)
	at GIS.HTMLComments.HTMLProducers.XSLProducer.generate(XSLProducer.java:85)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1615)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Jel.JELSelectProducer.emitChoiceNode(JELSelectProducer.java:48)
	at GIS.Jel.JELSelectOneProducer.generate(JELSelectOneProducer.java:92)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:1502)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:945)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:782)
	at GIS.Common.HTMLTemplateParser.parse(HTMLTemplateParser.java:751)
	at GIS.Common.HTMLTemplateParser.generate(HTMLTemplateParser.java:476)
	at GIS.Servlets.HTMLTemplate.generate(HTMLTemplate.java:316)
	at GIS.Servlets.HTMLTemplate.processRequest(HTMLTemplate.java:222)
	at GIS.Servlets.HTMLTemplate.doGet(HTMLTemplate.java:137)
	at GIS.Servlets.StoryHTMLTemplate.doGet(StoryHTMLTemplate.java:96)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:126)
	at GIS.Common.Servlet.service(Servlet.java:106)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
	at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:95)
	at com.caucho.server.http.Invocation.service(Invocation.java:291)
	at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:132)
	at com.caucho.server.http.RunnerRequest.handleRequest(RunnerRequest.java:341)
	at com.caucho.server.http.RunnerRequest.handleConnection(RunnerRequest.java:271)
	at com.caucho.server.TcpConnection.run(TcpConnection.java:136)
	at java.lang.Thread.run(Thread.java:662)