The Power Of Enterprise Mashups

I believe that mashups are the most powerful and underrated piece of the Web 2.0 puzzle. Mashups are lightweight applications, made mostly with JavaScript, that combine data from multiple sources to create innovative applications.

Blogs and wikis get coverage because they turn everybody into a web contributor. RSS feeds get coverage because they turn everyone into a massive consumer of web content. But mashups? Not as much coverage.

Why not? Don't people understand that mashups allow everyone to become enterprise level web programmers?!?

Allow me to elaborate...

Mashups are easy to make, but they are not trivial. You need to be pretty savvy with JavaScript to create them. They use some fairly advanced asynchronous features, XML parsing, and perhaps XSL transformation.

The most commonly mentioned mashups are the ones that use the Google Maps API. This is a JavaScript API, as well as a collection of published data, that allows people to add map functionality to almost any web application with just JavaScript.

For example, housingmaps.com is a mashup between craigslist.org and Google Maps. It allow people to browse a map to find rooms to rent, instead of reading a mundane list of addresses. Another example is chicagocrime.org, which is a mashup between weekly Chicago crime statistics and Google Maps. It gives people the ability to browse the Chicago metro looking for high density crime areas.

The two sites work well together if you're looking to rent a room near Wrigley field...

Well, what is the big deal? Isn't this just the same thing as portals? On the surface, that seems to be true. You have a web application that takes data from two sources, then displays it to the user in new and novel ways. For example, start by searching a customer relationship management database for a specific user's information. With that information, you then search a content management system for documents relevant to that user, or an enterprise resource planning (ERP) system for information on that user's specific business needs. Do all this with J2EE standards for data retrieval, and render it with JSPs. Isn't this the same thing?

Yes... sort of...

The problem with portals, and application servers in general, was that they led us to believe that they would solve all the problems of enterprise scalability automatically. In reality, they were oversold. You still needed to know quite a bit about performance, scalability, security, backups, and maintenance to create enterprise level software with them. Application servers gave you tools to simplify the process. This was nice, but only shifted the burden of knowledge, and made software much more complex, not to mention highly dependent on a complex framework.

Instead of only needing to know how to write enterprise level software, you had to know all that plus an alphabet soup of standards, toolkits, and frameworks. Here's a short list of acronyms that a good J2EE developer should know:


OOA/D, GoF, J2EEDP, UML, NIO, SWT, JSP, JDBC, ORM, JAAS, JCE, JSSE, JGSS, GSSAPI, JSTL, XML, XSLT, JSF, MVC, RMI/IIOP, JAXP, JDOM, DOM4J, JAX-RCP, SAAJ, JAXB, JAXM, JAXR, JWSDP, AXIS, JNDI, JMS, JTA/JTS, JMX, EJB, BMP, CMP, MDB, AOP, LOG4J, JNI, JCA, JCP, JUnit, JSR69, JSR73, JSR168, and JSR170


hoookay...

This double requirement has made more than one developer jump ship from Java, and embrace something simpler. That makes the problem slightly worse, because now people who don't know enterprise software are developing important applications that may have limited scalability.

Enter the mashup!

The advantage of mashups is that most of the application is hosted elsewhere. Does housingmaps.com have to publish huge amounts of mapping data, or process data when a new house is for sale? No! This mashup relies on other people to do all the heavy listing. Craigslist and Google know far more about enterprise software then housingmaps ever could (no offense).

Most of what housingmaps does is in my browser. I'm the one loading static text files from housingmaps, which they formatted based on data from Craigslist. My browser does all the work downloading images and JavaScript files from Google Maps. I'm the one rendering the XML into HTML with DOM scripting and XSL. Housingmaps barely lifts a finger... and yet, here we have an incredibly useful interface into existing enterprise applications. Tons of value add, not much effort, low barrier to entry.

The idea is that a mashup, when correctly written, offloads all the problems of security and performance to the software better able to handle it: your application server, and your single-sign-on infrastructure. With published XML files, RSS Feeds, and an XSS-proof SOAP interface, your application servers can focus on the enterprise. And then you can finally offload some of the creation of highly dynamic business software to less seasoned developers!

Ideally, your IT department would have every resource they needed to write every application you want. In reality, this isn't the case. They are so busy making sure the code is enterprise worthy, and keeping things running, that solving business needs takes a back seat. Funny... I thought that was the entire point of business software... silly me.

Damien Katz has some harsh but fitting words for such haughty IT folks:

...most of the real work in your office is getting done by people sending around Excel spreadsheets as they wait for your grand enterprise visions to be built.

Well said... But if your existing enterprise systems are properly mashup enabled, people closer to your business users can create enterprise applications with merely JavaScript.

JavaScript skills are not as rare as they once were... and by not giving your power-user employees the tools they need to create mashups, you are missing out on a great tool for innovation. Who knows what will happen when you mash two random sets of data together? Maybe it looks pretty, but has little value. Maybe it will tell you things you never thought of.

Google Maps mashed with the location of customers? Very useful for a home repair or cleaning company, but not so useful for the phone company. AT&T may be more interested in a mashup between Google Maps and the location of broken phone lines, or slow internet routers.

Best of all, these mashups do not have to be passive; they can enter new data into your systems as well as display existing data. This is harder to get right, but with the proper application of AJAX, SOAP, and web forms, you can do almost anything. No longer are you forced to wait six months for the Java guru in IT to make you a portal: you could do it yourself.

Naturally, there are a lot of 'gotchas' to doing this right. The big problems are always the same: security, performance, maintenance, and scalability.

In later articles, I will discuss what you need to do to your enterprise systems to make them mashup enabled. With the right tools, it is surprisingly easy.

comments

Another angle...

I agree with most of what you are saying here; Mashups within Enterprise environments really haven't taken off. I think there are a lot of reasons for this, one being that most mashups rely on web services in which there is no service level agreements.

Imagine if you created had created a mashup for your 'enterprise' organization using Google/Yahoo/Microsoft Maps that experiences some downtime. If you've got hundreds or thousands of internal/external customers relying on your application, it needs to up, it needs to be available. You can't call these organizations and request ETA. If HousingMaps.com goes down, no big deal; they don't owe anyone anything.

Additionally, I think there's a huge disconnect between 'enterprise' folks and people who are more on the cutting edge regarding mashups, AJAX, etc. I work with very experienced JAVA, C# developers on a daily basis that just don't "get it" when it comes to mashups, AJAX, or anything fun like that. On the flip-side there are literally thousands of programmer "hobbyists" that are on the cutting edge creating very useful mashups applications but don't really get "enterprise" stuff like security, scalability SLA's and all that Enterprise-y jargon.

Anyway, to my point; I do think that you're giving mashups quite enough credit. Do I think that Oracle is going to be releasing a set of "mashup" tools anytime soon? No. Do I think that 'enterprise' environments will eventually embrace mashups? Not necessarily. Do I think that mashups will continue to grow in applications on levels outside the enterprise? Absolutely.

For more mashup fun visit:
http://mashable.com/
http://www.programmableweb.com/

This is great! Nice blog.

This is great! Nice blog.

housingbymap.com

Another site to note is

http://www.housingbymap.com

It spans over 4000+ cities in US, and very intuitive to find sales, rentals, and rommmates...

Map ads are free as well...

Best,

-A

Entirely wonderful thank you

Entirely wonderful thank you - just what I needed!

Really Nice, thanks.

Really Nice, thanks.

Mash ups are the way

With Joomla 1.5 now using MVC mash ups will become much easier with this open source solution

Recent comments