The conference in Las Vegas this past week was not like the ones Thomas J. Watson used to hold in Endicott where all the blue suit white shirt male attendees would sing songs about IBM’s future. The master of ceremonies for the opening morning was Drew Carey and the "dinner music" was by The B-52’s — the new wave rock band not the Boeing B-52 Stratofortress. I don’t think anyone wore a blue suit or a white shirt.
What attracted the 6,300 people to fly to Las Vegas and fill every hall, ballroom, salon, patio, and restaurant at the MGM Grand? IBM calls it "Smart SOA". I call it The Application Web.
Only the most brilliant technical people could come up with SOA as a name for something. Let’s see, is it safe operating area, School of the Americas, Skies of Arcadia (a Nintendo game), Society of Actuaries, state of the art, or the Sarbanes-Oxley Act? Nope. The SOA that brought all these people together stands for "service oriented architecture". It is really important. The wikipedia has a comprehensive definition of SOA but basically it represents a new way for companies — and hospitals, schools, and governments — to enable their customers — and suppliers, business partners, and employees — to get things done on the web. Actually it is isn’t new — the idea has been around for decades — but now it is really happening. It is so much a part of the vernacular at IBM that they just matter of factly talk about “so a”.
In a nutshell, SOA will allow web sites to do much more than “click here to buy”. In fact web sites built with SOA will result in us standing in fewer lines in the physical world and have to endure fewer telephone call centers that want to control us. Fulfillment models at our favorite retailer’s web site will result in the staple goods we need just showing up outside the garage door when we need them. If businesses have the right attitude, SOA will enable them to get closer to the ultimate Internet — to build a people-oriented and user-friendly experience that is tightly integrated with all the appropriate business processes of the company.
Over the last fifty years there has been an explosion of computer applications, but many of them were built in silos and were highly inflexible. In some cases companies thought decentralization was the answer so they allowed divisions and departments to do their own thing. The result was that many have a hodgepodge of incompatible systems that nobody is happy with. The web took things a big leap forward. At last there was a common way (the browser) for accessing and displaying information, even though the applications that run on the server — that do the pricing, inventory lookups, shipping estimates, invoicing, etc. — are still proprietary and usually tied to one particular IT vendor or system. The applications have also been very monolithic; i.e. in order to fulfill the expectations of customers on the web the application has to do the whole job. Soup to nuts; present the right price, confirm if the item is in stock, calculate shipping, and confirm the status of the order. Increasingly, customers want to get access directly into the supply chain and see exactly where their order stands. In short, applications have gotten larger and more complicated — harder, not easier.
SOA — arguably the biggest change in information technology in decades — is poised to change the way applications are created and how they interoperate. Instead of building a monolithic application that takes a customer order, does credit checks, checks inventory, looks through the supply chain, arranges for payment, charges the customer, clears credit card transactions, etc., with SOA these various functions are built as separate "pieces". Think Legos. The individual programs are called "services" and they are called upon as needed. A sales tax calculation "service", for example, could be used by many different divisions of a company thereby eliminating redundancy. IBM has been practicing what it preaches in this regard. It has reduced the number of programs it uses to run the company from 16,000 to just a few thousand — and declining.
It turns out that there is another company called Rates and Costs Inc. (RCI), which specializes in the calculation of optimum routes and the associated costs for shipment to places anywhere in the world. RCI offers the calculation as a service on the web and it is the exact function ASI needs to incorporate into their web application. Since RCI follows the SOA standards, ASI is able to see the specifications for RCI’s service – what inputs are required and what output does it produce. RCI could have created their calculation service using any IT platform they choose — the standards assure that things can work together.
The programmer at ASI likes RCI’s program because it performs exactly the right function that ASI needs and the software has already been written and tested! ASI follows the SOA standards to incorporate RCI’s service into their web application. Whenever a user goes to ASI’s web page and needs shipment route and cost information, a link is made behind the scenes to RCI’s web server to get the information. ASI’s customers don’t know, nor will they care, that part of the job is being done by RCI’s server; not ASI’s server. ASI makes an arrangement to pay RCI each time one of ASI’s customers uses the RCI web service.
Creating programs by linking to other programs without regard to what programming language was used to create the others’ programs represents a whole new paradigm. It is one of the information technology industry’s holy grails. Standards organizations, such as Oasis, have been attempting for years to create a “neutral” programming environment. The UNIX vendors – HP, DEC, Sun, IBM, Data General, and others – formed various organizations, councils and consortia over the years attempting to bring things together. Progress was made but none of these initiatives achieved real openness and true compatibility across the information technology industry — until SOA. It is not really new but it is time. Open Internet standards and SOA tools are making it happen.
SOA will make it possible for the web to evolve from a web of content to a web of content and applications. SOA will enable server-to-server interaction in addition to browser to server interactions. Servers will negotiate with other servers and even complete transactions by themselves with no direct human intervention. These interactions will replace the paper forms and faxes that flow back and forth from company to company today.
E-business evolved to on demand and on demand has evolved to business and IT "alignment". At this stage many enterprises have bought in to the concept but are struggling with how to get there. This is why many web sites don’t fully meet our needs — they are dependent on many independent applications that the enterprise has had for decades and so far have been unable to integrate them. SOA is the new model — it offers the first comprehensive, standards based way to get the job done. Adoption of SOA will enable the interoperability within the many functions and departments of enterprises and between enterprises that has been a decades long dream. History has shown that adoption of standards leads to an explosion of usage and that will surely be the case with SOA. The SOA standards will enable entire industries to be brought together. Virtual corporations comprised of a federation of smaller ones will enable “hyper competition” on a global scale.
How does "Web 2.0" fit into all this? Like a ball and glove. Quite the hot topic in tech circles and among venture capitalists, Web 2.0 is basically a style, a model, an approach, and a philosophy wrapped together. It includes a "lightweight" programming model that is more like web page development than traditional programming. A key element of 2.0 is the blog feed — a way to allow people to look at a web page but also subscribe to it. Another element is AJAX, a technique built on a collection of Internet standards that produces a rich user experience — kayak.com is a good example — with pages that don’t "reload", they just change while you are looking at them. Another characteristic of Web 2.0 is that it is a perpetual beta — users are treated as co-developers. At the conference, IBM announced WebSphere sMash which may turn out to be a really key tool for the evolution toward Web 3.0. Jerry Cuomo, IBM Fellow and CTO for IBM WebSphere, described a broad vision for how "smashups" will extend the web in a major way. The idea is to make it simple to combine content from multiple web sites. For example a travel agency may want to combine the best deals from airlines and hotels along with comments and discussion from tourists all in one "seamless" site. The smashup tool is based on a community project called "Project Zero" that has been underway for a number of months and is now ready to go mainstream.
All things considered, IBM really has it’s act together with regard to SOA. Every software and services executive at the company is well versed on it and has it baked into their business and development plans. The promise is great and with tens of thousands of software engineers and top management support I think it is fair to expect IBM to continue to deliver on their vision. They have already made dozens of acquisitions to fill in the white spaces and customers are signing up and getting results. There were hundreds of customers and business partners there in Las Vegas to tell their success stories. Nothing is more creditable than having someone else tell your story for you.