How does Microsoft fit into the new world of dynamically responsive systems? To understand how Microsoft plays a part in this realm of Service Oriented Architectures (SOA), it is necessary to look at the implications of Microsoft’s .NETstrategy. It is clear that they have taken the notion of a loosely coupled, service oriented architecture to heart through the development of their .net framework. Over the past five years much of Microsoft’s approach to distributed computing has changed. At the same time, there is plenty that is still the same. In this column, I offer my opinion on what Microsoft is doing right for customers, and where there are still issues that need to be addressed.
Leveraging Standards: The most impressive part of Microsoft’s evolving strategy is its adoption of SOA standards, including XML, SOAP interfaces, Web Services Description Language (WSDL), and Universal Description, Discovery, and Integration (UDDI). Basing its next generation infrastructure on these codified standards will both help customers implement a heterogeneous environment and aid ISV’s that want to support both Microsoft and its competitors. Equally important is that Microsoft has taken the time to architect a system that is designed for dynamic response. For example, Microsoft’s database engine (SQLServer) includes a mapping tool that enables data to be routed without massive programming. In addition, Microsoft has moved XML right into SQLServer. This is supported through the maturing BizTalk, which offers both connectivity and business process integration across Microsoft systems as well as third party systems.
Built From The Ground Up: What is most important for CIO’s to understand about .NET and Microsoft’s SOA strategy is that it is not a simple set of interfaces. Rather, it is a rewrite of the entire foundation of Microsoft’s technology platform. Microsoft has undertaken the task of virtually starting from scratch and creating a well-architected but self-contained world. Even this self-contained world enables participation by the outside world.
Focus on Web Services: One of the most important features of the approach to dynamic response is Microsoft’s focus on web services and component architectures. .NET can present a consistent programming paradigm to software developers. Ironically, Microsoft learned the fundamentals of this approach from Hewlett Packard’s pioneering world with e-services in the mid-1990s. With .NET it has enabled developers to encapsulate code combined with the pieces that are needed to understand what it does so that it can run, unaided, as long as the interfaces have been adhered to. Therefore, programmers will be able to devise new business services that can be linked together to create applications. The same type of component services can be designed using Java-based development environments. The difference is that Microsoft has designed its own implementation that has key differences from Java.
It’s About the PC: One of the key differences between Microsoft’s and its competitors’ approaches to Dynamic Response is the emphasis on the desktop. While other enterprise infrastructure players are focused on server-to-server interaction as well as server-to-PC interaction, Microsoft’s primary objective is to help customers leverage their value from their systems of record (on mainframes, Unix servers, and the like) and push that value to the desktop. Microsoft has spent considerable resources architecting new runtime services in support of this goal. Once data or logic is moved to the desktop, it is put into various Microsoft PC applications such as Word or Excel. This is accomplished though the use of XML as a common SOA foundation. Therefore, through .NET, Microsoft talks to the mainframe through service interfaces. In essence, a request for information is made to the host computer and a result (not the actual data) is moved to the desktop. Microsoft has spent considerable time and effort writing web services interfaces to data stores on enterprise applications such as SAP’s systems. In essence, Microsoft has developed a web service that understands it is talking to an SAP API when it is taking data from that system and then using a standard web services call to talk to the PC environment.
While Microsoft would like customers to move to a fully integrated .NET framework-driven environment, the company is pragmatic in understanding that most customers will not be willing to rip out their old applications. Therefore, they are focusing initial efforts on offering mechanisms that will take data and services and, through connectivity services (BizTalk), move them to the PC. Microsoft is a patient company and is willing to wait until customers are convinced that the experience of having data at their fingertips and their desktops will be so compelling that they will eventually unplug their mainframe and Unix systems.
Conclusion: It would be nice to be able to say that there is one right way to go to insure a corporation will have a well-designed and scalable Service Oriented Architecture that will stand the test of time. In reality, CIO’s will have to live in a world where they will have to leverage .NET, Java, and a host of older and emerging options. Yes, the world will continue to be a messier place than many would hope. Microsoft has done an admirable job creating a unified platform for SOA-based standards and its own implementation of a world where its operating system is at the center of distributed computing. However, the world of enterprise computing is a complicated place. Java environments, which are supported by IBM, HP, BEA, SAP, and a host of other platforms and ISVs, will continue to be strong players in the market. Most market leaders, including those leading the Java opposition, will coexist with .NET because of market demand. In the long run, customers will be well served by a competitive environment where all protagonists are focused on Service Oriented Architectures.