About Us

Home > Tech - Briefing > Full Story

'Web Services make the Internet an interactive, programmable platform'

.NET is Microsoft's vision for delivering software as a service, and Web Services form an important part of that promise. In an e-mail interview, Gopal Kakivaya, software architect at Microsoft Corporation, and one of the lead authors of Simple Access Object Protocol (SOAP) and conceptualist of XML Web Services talks about the impact these technologies would have on the developer community By Bhavish Sood

C# (Pronounced See Sharp) is largely being touted as the first component-oriented language in the C/C++ family. Please share some more information on this since languages like Smalltalk achieved this years ago

C# derives its syntax from C/C++ while providing the benefits of modern component languages such as simplicity, type safety and garbage collection. Thus, it is immediately familiar to C/C++ developers. It supports a fairly rich type system termed "Common Language Specification (CLS)" ensuring interoperability with components written using other CLS compliant languages such as Visual Basic.NET.

Microsoft .NET vs. J2EE: How do they stack up in technical terms?

Before I answer this question, I would like to clarify that one cannot really compare .NET and J2EE. .NET is Microsoft's vision for delivering software as a service, and Web Services form one part of that promise. The .NET offering comprises three other components, which include the servers, the tools and the end user experiences. J2EE on the other hand, is purely a specification for building applications. By itself it does not really deliver on the real benefits that Web Services can bring; nor does it have anything about user experience. The difference in the vision and the offerings that deliver on this vision is the biggest difference in technical terms as well. Probably Sun ONE comes closer but beyond announcements Sun has not made available any more details about it. So there is not much to compare at this stage with elements of .NET.

Since you are now talking about CLR (Common Language Runtime) why is C# important? Is it a corporate strategy against Java?

C# is a simple, modern, object-oriented, and type safe programming language derived from C/C++. It aims to combine the high productivity of Visual Basic with the raw power of C++. Its syntax will be very familiar to C/C++ programmers reducing the learning curve needed for them to develop applications using the .NET Framework. Common Language Runtime provides runtime support such as garbage collection and type safety for CLS (Common Language Specification) compliant languages. It also provides rich class libraries callable from any CLS compliant languages such as C#. Programmers still need a programming language that targets CLS for developing applications and as such CLS and C# complement each other. C# is part of a family of products, called Visual Studio.NET, that also includes Visual Basic.NET and Visual C++.NET.

C# is a language that is created from the ground up for the .NET platform, so there are some distinct advantages. It is a Component Based Language that supports events and properties as part of its language syntax and it supports the creation of Web Services natively.

Since .NET is also being touted as an open standard and platform independent, what do you think about the possibility of porting the .NET Framework to the non-Windows platform? Is it technically possible now?

Microsoft has submitted CLS to ECMA (European Computers Manufacturer's Association) for standardization and a number of efforts have been announced for porting .NET to non-Windows platforms such as Linux, Free BSD, Unix etc.

Why do you think developers should change to the Web Services model?

The beauty of Web Services is that any application using any language from any platform can use a service. By allowing developers to "quilt together" several services into one solution, Web Services allow the creation of future ready applications at record speeds. Today, one of the biggest problems facing developers is the availability of a plethora of scripts and components, making their integration into a cohesive, maintainable solution, a complex process. Web Services allows developers to pick and choose technology with the confidence that it will all integrate smoothly, increasing developer productivity and increasing time to market for the solutions. Also, Web Services make the Internet so far static and rigid an interactive, programmable platform providing developers with a powerful tool for software creation. And lastly, as the Internet becomes the backbone of all business interaction, Web Services provide developers with unmatched revenue opportunities.

Developers looking at the .NET Framework for their application development efforts have asked whether or not the common language runtime (CLR) is a virtual machine (VM). Also how does the CLI compare to the CLS and the CTS?

"Common Language Runtime" implements "Common Language Specification (CLS)" and provides runtime support in the form of type safety, access to platform APIs, and garbage collection to applications targeting it. It, in conjunction with the .NET Framework, serves as the platform targeted by any CLS compliant language, thereby enabling seamless interoperability between components developed by various CLS compliant languages. This should be contrasted with conventional VM that typically supports a single language. CTS is a specification for all object oriented languages on .NET while CLS is a specification for all non-object oriented languages so that they share the same data types and the languages can interop between each other in the form of cross language debugging etc.

CLI (Common Language Infrastructure) is the specs submitted to the ECMA body and implementations of CLI can be on any OS possible.

Any advantages C# would have over Visual Basic (VB) in terms of the framework?

Both C# and Visual Basic.NET target CLS and as such choice of the language depends largely on the familiarity with the language syntax. The C/C++ programmer will most probably choose C# for developing .NET applications while the existing VB programmer will find Visual Basic.NET most attractive as they are already familiar with VB syntax.

You have been involved with authoring both COM and now SOAP. Any experiences you would like to share with the developer community?

SOAP combines the component development approach with the open protocol approach of the Web. It allows separation of the presentation (UI) information from the data in contrast with the current Web, where both are mixed up in HTML pages. Thus, it enables development of many building-block Web Services that can be put together in different ways by applications. The skill set developers have developed for COM is very relevant in the Web Services space because every COM object can be a SOAP end-point. .NET makes developing components easy by eliminating COM artifacts like reference counting and registration. As such I encourage developers to experiment with the .NET platform and understand how it improves the development experience.

Why is there a pressing need for SOAP since RPC (Remote Procedure Calls) always existed in the distributed computing framework?

RPC systems require thick software stacks on the end-points as the protocols are quite complex with hairy state machines. Experience has shown that such complex protocols do not interoperate unless the same code is executing on both the end-points. The situation is further complicated by the vendor extensions. SOAP, in contrast, is built on Web technologies such as XML and HTTP. Almost all platforms have XML and HTTP software stacks and SOAP basically shows how they can be put together to develop a messaging system that can also do RPC.

Bhavish Sood can be reached at: bavishsood@netscape.net

<<  >>

- <Back to Top>-  

Copyright 2001: Indian Express Group (Mumbai, India). All rights reserved throughout the world. This entire site is compiled in Mumbai by The Business Publications Division of the Indian Express Group of Newspapers. Site managed by BPD