Tuesday, December 26, 2006

Top Three Trends for 2007

This time of year pundits like me love to make prognostications predicting the forthcoming trends for the upcoming year. Below are my top three picks:

#1. AJAX
AJAX is that part of Web 2.0 that will absolutely, positively have a significant impact on computing in 2007.

Even Microsoft has jumped onto the AJAX bandwagon. For instance, check out how they have drastically redesigned their company's home page www.microsoft.com by using AJAX to load content dynamically when the user clicks on items in the floating menu to the right of the page. Dynamically loaded content gets displayed in a floating panel that appears over the top of the rest of the page, which gets dimmed and cannot be clicked while the panel is visible.

To the user the interface is the system!!!

AJAX provides the rich client behavior that was so predominant before Web browsers became popular. With AJAX, gone is the notion of constantly having to refresh an entire web page for each transaction. With dynamic reloading of portions of web pages, transmitting only a small amount of data to the client, the resulting user experience is faster, richer, and arguably better functionality.

Google has long been an ardent AJAX supporter. For example, see Google Maps which enables users to drag a map to move it in various directions, or Google Suggest which provides suggestions from the server as users type, showing in a drop-down a list of search terms that may be of interest.

Invest in AJAX in 2007. Rich clients are worth it. Display terminals like IBM 3270s displaced keypunch machines. Character-based terminals like DEC VT100s displaced 3270s. Character-based PCs with memory-mapped I/O like MS-DOS displaced VT100s. Graphical user interfaces (GUIs) like Windows displaced MS-DOS. GUI browsers like IE displaced PC-based GUI apps (because web servers were so awesome). The next major user interface revolution is happening now. It's called AJAX!

# 2: Service-Oriented Architecture
Microsoft, IBM, HP, Oracle, SAP, BEA, and just about every other software vendor are all now singing the same exact tune -- that SOA represents their next-generation IT development and deployment strategy. Of course, the $64,000 question still remains "What's a service?"

The software industry has been promising reusable components ever since the invention of subroutines. The problem invariably boils down to the age old dilemma of how does a developer "find" a software module to be reused. If the process of discovery takes as long as creating entirely new software, the developer always opts for the latter, especially if the reusable software is perceived as being unlikely to handle 100% of the requirements for the new task at hand.

Software reuse -- whether we're talking a service, a component, an object, a module, a subroutine, a macro, or whatever, -- is always, in fact, a two-part issue: 1) finding the software to be reused; and 2) being able to modify the software to handle non-generic special cases. The first challenge is one of figuring out how to organize, classify, and categorize the software to be reused so that it can be readily found. The second question involves supporting techniques for either adding new functionality to software to be reused, or overriding existing functionality.

Fundamentally, SOA's success will largely depend on evolutionary advancements that can extend software components beyond SOA's predecessor technology, object-oriented programming. The big breakthrough that SOA delivers is in the way that it uses the Internet's underlying Web infrastructure in place of OO's CORBA and DCOM object request brokers. XML is the key enabling technology that makes all this possible.

One of the keys to building successful SOA-based systems is to exploit the abstract semantic relationship that reflects the continuum between generic and specific. In other words, SOA needs to allow developers to create general-purpose building blocks that can easily be extended to handle special cases. This is accomplished by supporting mechanisms for developers to add new functionality or override existing functionality.

Another critical aspect of SOA pertains to business process modeling. Whereas services represent the core components of SOA, developers still need to be able to find those services in order to reuse them. It just so happens that the most reusable facets of any information system are its business events. A specific business event triggers a business process which itself is a set of distinct steps, some of which must be performed in sequence, others of which may be able to be performed in parallel. Furthermore, some process steps are conditionally performed based on the results of prior activities. One key to SOA's success depends on its ability to organize, classify, and categorize services based around business events (so that those services can be easily discovered).

#3. Cloud Computing
Servers reside in an Internet cloud somewhere and it doesn't matter how you access the cloud whether you have a PC or a Mac or a Blackberry or a cell telephone or whatever. Nowadays this notion of cloud computing is often being referred to as SaaS which stands for Software as a Service.

The pendulum in computing relentlessly swings back and forth between personal and shared machines. The very first computers, such as ENIAC, were single user systems. Those computation workhorses were soon followed by sharable mainframe computers like IBM's System/360. Next came minicomputers from companies like DEC which were, once again, primarily single-user systems. Soon, however, minicomputers became much more powerful enabling them to be shared by multiple different users simultaneously, where each user had his or her own virtual machine, and the shared resources were controlled by a sophisticated operating system such as UNIX or VAX/VMS (or various other derivatives of MIT's Project Multics). Minicomputers, though, soon were obsoleted by personal computers which gave each virtual machine user their own physical machine to control. But, PC users still wanted to share data and resources just as they had previously been able to do on their shared systems. That demand led to the advent of client/server computing. The ultimate winner in the client/server war was the World Wide Web which itself is evolving into cloud computing especially as behemoths such as Google and Microsoft build massive data centers with massive parallel processing capabilities constrained only by their ability to find enough electricity to power their truly amazing infrastructures (see The Information Factories).
That's my list of predictions for 2007. Check back next year to see if I got it right. If you're a gambler, then wager that those who will win big in the upcoming year are IT organizations that bet the ranch on AJAX, SOA, and SaaS.

Happy New Year from the ITscout!


Anonymous Robert Pearson said...

A belated "Merry Christmas" and a timely Happy New Year !!!

Thanks for all the leadership and "Food for Thought" in 2006.

I like your picks for 2007.
There are only a few of you prescient people out there.
I read your blog and Jeremiah Owyang's, as a next level up.
The image of HDS (Hitachi Data Systems) changed dramatically in the last year due to Jeremiah's influence.

Enterprise Architecture builds the engines that "enable" Web Strategy.
EA, along with a host of others, could use some good Community Management skills.

6:16 PM  

Post a Comment

<< Home