2012 Agile Predictions From an Enterprise Architecture Insider: HTML 5 Matures, REST Finds Its Place, More
Two weeks into 2012 and I'm already getting a sense of what the new year holds in store for enterprise software developers. I don't have a crystal ball, of course, but I've been talking with industry watchers who do -- at least I think that's how they do it. Or is it careful observation of industry trends and rigorous data analysis? How about Tarot cards?
I've been checking in with Jason Bloomberg to get the skinny on SOA and enterprise architecture almost since he and Ron Schmelzer founded ZapThink back in 2000, and more recently on architectural approaches to cloud computing. ZapThink became a division of Dovèl Technologies late last summer, and Bloomberg became the division's president. Schmelzer, who often described himself to me as a serial entrepreneur, is busy with his new company, Bizelo.
Bloomberg identified three key the Agile architecture trends that he believes are likely to affect developers:
HTML 5 Reaches a Tipping Point
"HTML 5 is maturing as the next generation of Web markup to the point where we see it as a replacement for Adobe Flash," Bloomberg said. "But also as a common mobile development platform. If you're building an app for an iPhone, you use Objective C; if you're building one for Android, you use Java. But with HTML 5, you can do almost everything you can do with the native application environment, but in a cross-platform way. It gives you much more flexibility and opens up a whole new realm of possibility for mobile and enterprise development."
He also points to HTML 5's WebSocket technology, which provides a way to establish a full duplex tunnel through HTTP for high volume bi-directional communication. "The classic example is real-time stock quotes," Bloomberg said, "but it's really anything that requires a multi-media conversation between clients and servers. It opens up all kinds of possibilities in terms of richer application capabilities in user interfaces, as well as interacting with server side capabilities."
The Next Generation of REST
"Most people don't really get what REST (Representational State Transfer) is all about," Bloomberg said, "even people who call themselves RESTifarians. There's this misconception that REST is about building APIs. What REST is really about is building distributed hypermedia applications. In particular, if you look at the four REST constraints, the most important is that hypermedia have to be the engine of application state. Why this is important is that it frees the middle tier from having to maintain application state, because it pushes application state to the client. The persistence tier still maintains what the REST world calls resource state. But if you can push application state to the client, you can now have a stateless middle tier. This is especially important if you are using the cloud, where you need a stateless middle tier to make that elastic. You can provision additional servers without having to worry about the state of some ongoing application."
"Once people start figuring out what this is all about," he added, "it turns how we do BPM (Business Process Management) on its head. We don't use some central process engine anymore; we rely on the client to maintain application state, and this is the only way we can move BPM into the cloud and take advantage of the elasticity benefits. From the developer perspective, they're already playing with REST, but there's this next step of hypermedia-based workflow based on REST. It just changes the way we do work flow.
Cloud Configuration Management
"There's no way we can do Agile development for the cloud unless we do automated configuration management," Bloomberg said. "We have to raise the bar on that. It's not good enough simply to have, say, a server image that we're going to deploy here and there and think of that as automation. We basically have to come up with a model-driven approach for provisioning everything, so that if we need to do a cache or do some additional virtual machine instances, it can all be done in an automated way."
"What that means is moving that configuration management back to the developers," he added. "It's part of the DevOps story. Developers essentially have to code how operations do their job, because operations should be fully automated. We don't want manual operations, because they can't keep up.
Bloomberg points to his favorite example: Amazon.com.
"The development lifecycle at Amazon.com is more than one deployment per minute, every minute, 24 hours a day," he said. "That's were development is going. How can they do that? It's because it's a fully automated cloud-based environment. It's not like they've gotten everything right yet, but that's the direction. If you look the enterprise, where they have six to nine month development cycles, that's the dark ages! Amazon and Google are generations ahead. That's where the technology is going, and enterprises, to be competitive, will have to get with the program. And part of your role as an enterprise developer is thinking about how you can take advantage of the cloud."
If you're not getting ZapFlash, Bloomberg's semi-regular newsletter, you can grab the RSS feed here.
More predictions for 2012 from savvy industry watchers in upcoming posts.
Posted by John K. Waters on January 9, 2012 at 10:53 AM