Wednesday, May 20, 2009

I read an interesting article today on the Wall Street Journal web site. It discussed the merits (or lack of merits) of popularity rankings, specifically as they relate to online news articles. One statement from the article seemed to me to describe the changes taking place right now concerning lifestreaming and/or social streaming. The complete statement (referring to a quote from Matthew Salgarik, a co-author of a study on popularity in the music world) reads, "Deducing merit from popularity can lead to self-reinforcing snowballs of popularity...These snowballs can grow much larger than their competitors, leading to winner-take-all markets." This statement is not all that surprising, however, it does point out very effectively how a wave of popularity can carry a given product or service, no matter how valuable or important, to the top of its class.

The transformation that is taking place across the Internet from a page model to a real-time stream model will surely be affected by this popularity phenomenon. Enterprises must be ready to embrace this new model and plan their web presence accordingly or be swept aside by the ever-changing waves of popularity.

Tuesday, May 12, 2009

Mashups: Strategies for the Modern Enterprise


I am proud to announce the launch of my new book, "Mashups: Strategies for the Modern Enterprise." It is shipping in print and digital form at: http://my.safaribooksonline.com/9780321591869. It will be available on amazon.com on May 15, 2009. The book was a very interesting project that opened my eyes to the vast number of possibilities and challenges presented by a mashup architecture in an enterprise environment. I look forward to conversations about the book and mashup development in all forms.

Monday, December 03, 2007

Event-Driven (R)evolution

If history proves to offer a glimpse of the future, perhaps we might find that event-driven programming is soon to revolutionize web-based computing. Consider history.

In the not so distant past, a command-line-interface using procedural programming was the environment for most user-oriented software. Note the following illustration:






This implied that user interactions were limited and predictable. As it became apparent that this implication was far from being correct and device drivers adopted common standards, event-based programming became possible. This led to the revolution of GUI-based desktops and event dispatching of GUI-based events. All of the sudden, real-time events were being exposed to the user and the user could now interact with the system as the events happened. This sounds innocent enough at first, but this was revolutionary to those who were there and remember when the Mac presented you with an instant dialog showing the contents of a disk as it was inserted rather than requiring you to insert a disk, mount a volume, then query for content.

Ahhh, the good life of GUI and event-based computing. No longer did a developer have to try to predict every step a user would take. Now, all a developer had to do was write a monstrous event loop, including a huge switch statement, and monopolize system resources as each event was handled, as illustrated below:






Sometimes developers were nice enough to share time with other processes, but not always. Then Microsoft Windows and other GUI environments came along and took the event loop out of the hands of the developer and required the developer to only respond to the events of interest, noted below:




What a revolution!

Web-based applications appear to be following a similar path. From simple request/reponse interactions to the quagmire of state-machines, back-button-nightmares, and browser inconsistencies, Web applications are finally turning the corner to the point of becoming responsive systems that present events to users as the events happen.

Ajax frameworks with push-based technologies such as HTTP-streaming and Comet might just be the (r)evolution that makes Web history.

Tuesday, May 30, 2006

Middleware and Offensive Lineman

Jerry Kramer is claimed to have said, "that if he ever had to go on the lam from the law, he'd become an offensive lineman." Such is the unfortunate plight for the poor souls who wallow in mud and anonymity each game as they slug it out to open holes for high-profile running backs and to protect fragile, all-important quarterbacks.

Middleware has seemingly turned into the offensive lineman of enterprise development. Nobody wants to acknowledge its importance, yet without it, front-end clients and back-end data are left alone to slug it out in the mud unprotected. Whenever I am asked to evaluate an enterprise system for refactoring, the number one request always seems to be to design a middle-tier that can provide access to the fragile, all-important data across multiple protocols from any high-profile application-tier framework.

PHP and Ruby on Rails have recently taken center stage to dance in the endzone in front of the cheapseats with everybody calling them the primary candidates for the all-star team. However, I wonder - will there be a clamor soon to retrofit a middleware offensive line into the mix to push these celebrities forward to the playoffs?