Like many architects, I have been following the evolution of SOA for awhile now. One thing that has been sticking in my mind is what does SOA really mean for web development teams? The emerging answer is mashups.
There are a lot of very cool mashup apps, and the ground is still fertile. If you haven’t already, check out these sites:
GoogleMaps (or rather it’s API) is obviously the first major mashup player… there are links to more mashups and mashable APIs at Mashup Feed and some at Programmable Web.
Stephen O’Grady and James Governor have been talking up mashups for awhile now on their respective blogs, and they helped with invites to a very cool mashup event. I think the outcomes of this event will be interesting to digest, and will hopefully fertilize mashup ground even more (you have to have high hopes for an event that has Lessig on the waiting list.)
As enterprises convert more of their backend and middleware to services, and expose those services through REST and SOAP, this creates a great opportunity for a new direction on the front end. Web development teams used to building silo sites now have a fine collection of mashup material, and can extend service re-use into the presentation tier.
I think a lot of web developers are not sure what to make of SOA hype – trying to determine if they should just replace their rusting EJB middle tier with web services and consider themselves SOA-certified (the answer is no). Rather, web developers should start thinking about their own service-oriented presentation-tier needs and ensure those services are available (as in exposed) in both a server- and client-consumable fashion.
Web developers from the traditional server-oriented J2EE and .NET environments should also start boning up on rich internet application (RIA) technologies and architectures. Out of the gates it’s probably not the best idea to go wholesale into RIA with applications, but rather to augment existing sites and applications with asynchronous pagelets that mash in backend services – perhaps tagging would be a good place to start. But it might not be too long before developers inside enterprises can start to act like true mashers, using Agile methods to more quickly deliver working software that leverages services.
BPEL and service orchestration are the mash up tools for the integration tier, but Ajax and other RIA technologies are the mash up tools for the presentation tier. I think there will be a lot of additional demand on enterprise developers to become more client-savvy than they have had to be for the last several years.
I am interested to hear from any enterprise developers who have already started mashing…