The Impact of Web Services on IT Architecture
Just when I finished writing my book IT Architectures and Middleware: Strategies for Building Large, Integrated Systems (Addison Wesley, 2000), Microsoft announced .NET. I managed to get in one sentence about the new technology. Since then, .NET and its competitors have become a major talking point in the IT industry, all under the collective term of Web services. If I were writing the book today, Web services would require a somewhat more extensive discussion. This article discusses how Web services change my view on IT architecture.
A Historical Perspective on IT
To explain the importance (or not) of Web services, I will take a historical perspective. Broadly, there have been three stages in the history of commercial IT.
The first stage was the batch stage, whose purpose was to automate repetitive clerical processing. Some major organizations still have core IT systems that are stuck in the batch era.
The second stage was online transaction processing (OLTP). The primary technology that made OLTP possible was networking. But it rapidly became clear that, to do OLTP well, you needed a database and a transaction monitor. While the batch stage was about automating the back office, OLTP was about automating the front office. Branch tellers, phone operators, production workers, and managers could all access the online data.
The third stage is where we are today. Many would call it the e-stage, the Web stage, or the Internet stage; from the architecture point of view, however, it is more useful to characterize it as the integration stage. The key technologies that have made it possible are components and middleware. The driving force for the integration stage is opening up the IT applications to the scrutiny of the outside world. The Internet is just one channel. Others include mobile phones, PDAs, self-service machines, in-house workstation applications, and voice interfaces.
One of the goals of IT architecture, in the integration stage, is to create applications that can be easily extended to handle new interface devices. However, opening the IT applications is more than just putting a new interface to an old system. Practices that were acceptable in-house are no longer acceptable on the Web or a mobile device. The external user expects a single unified experience; he does not expect or understand many application silos. The external user expects data to be consistent across all the applications. The external user also expects fast access and no downtime, 24 hours a day.
The IT industry is not finding the integration stage easy, for three main reasons. The first is a huge legacy of existing applications run businesses and are not easily changed. The second is that internal IT organization and methodologies are designed around the notion of funding, developing, testing, and deploying standalone applications, not integrated systems. Third, to serve integration well, there needs to be better cooperation between the IT organization and the business side. The business itself is often not "joined up"; too many organizations are still made up of self-managing fiefdoms.