fbpx
 +1 386-243-9402 MON – FRI : 09:00 AM – 05:00 PM

WebThis week I attended an IBM software technology briefing about SOA. Only 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. Maybe it is about an architectural firm that has great customer service? Or maybe it is about the architecture of a building that has a good service entrance? Neither. The SOA of the briefing stands for "service oriented architecture". It is really important. The wikipedia has a comprehensive definition of SOA but basically it is about a new way to get things done with software. 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 call it “so a”. After an IBM briefing about "virtualization" a year ago, I tried to explain the word in simple terms (see Virtually Real or Really Virtual). I’ll try that approach here with SOA.
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 integrated experience for all parties involved – employees on the intranet, suppliers, customers, partners, analysts and prospective constituents. There is more to this story.
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 is 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 there 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 monolithic applications 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 a mere 4,000.
The SOA services do not all have to be developed or acquired internally. Thanks to the Internet, services can be "rented" from others. For example, suppose that a company called American Specialties Inc. (ASI) specializes in selling American goods for delivery mostly outside of America. They want to create an application to sell their products on the web. The trickiest part of the application is determining the best way to ship the product to ensure it gets there when the customer wants it and at the lowest cost. ASI doesn’t’t have the skills to write this particular part of the application and they haven’t bee able to find a vendor with a software package that can do it and which is compatible with the rest of ASI’s software.
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. 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 webpage 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 treated as co-developers. The philosophy is "release early and release often". One final element that I consider part of 2.0 is the PHP scripting language. Some professionals have considered it "rinky-dink" but IBM is taking it quite seriously. Jerry Cuomo, IBM Fellow and CTO for IBM WebSphere, said PHP has widespread skills, an active community, viral marketing, and growing deployments.
All things considered, IBM really has it’s act together with regard to SOA. Every software and services exec 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 management support I think it is fair to expect IBM to deliver. They have already made dozens of acquisitions to fill in the white spaces in their vision. Major customers are signing up and getting results. Much more at ibm.com, including tips and techniques, customer testimonials, and business partners.