Microsoft .Net Explained

Microsoft®

      .NET Explained

     
 
Paradigm Shift to Distributed Computing Over the Internet

By Daniel Rubiolo, J.D. MEIER, Edward JEZIERSKI, Alex MACKMAN 

Abstract

This article describes how new technologies, new tools, and new approaches to application development are allowing a shift to an Internet-based distributed computing model. It also discusses the market conditions and technology advancements that have provided the foundations for .NET. 

 

 

            This is a preliminary document and may be changed substantially prior to final commercial release of the software described herein. 

            The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication.  Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.

            This White Paper is for informational purposes only.  MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE INFORMATION IN THIS DOCUMENT.

            Complying with all applicable copyright laws is the responsibility of the user.  Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

            Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document.  Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

            © 2001 Microsoft Corporation.  All rights reserved.

            Microsoft, ClearType, MSN, MS-DOS , the .NET logo, MSDN, Visual Basic, Visual C++, Visual Studio, Windows and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

            The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

            0501

 

        Contents

 

 

          Introduction

This article describes how the rapid evolution and wide spread pervasiveness of the Internet coupled with the increased processing power of new consumer devices enables a new breed of distributed application development . The article also discusses the background behind .NET and the market conditions and technology advancements that have provided its foundations.

For more in-depth explanations, refer to the other articles in this Microsoft .NET Explained series:

  • What is Microsoft .NET? Examines what the Microsoft® .NET vision means to business and IT professionals and to the future of software applications. It describes the .NET vision and explains the competitive advantages it will bring to businesses.
  • Why Microsoft .NET? Describes the technologies that constitute the .NET platform and the advantages they bring to developers.

 

Technology Trends

The increase in processing power as well as the increase and availability of bandwidth over the last decade have provided for advances in the way computing can occur – to distribute the processing power to the edge of the network, to a range of new, smart devices. Using the Internet to distribute processing power to where it makes the most sense, provides for more intelligent applications and interactions – as well as offering new architectural opportunities that move away from the traditional client/server model.

The traditional browser model, upon which application development has focused over the last five years or so, is showing its age. New development tools and standards together with new models for building the next generation of Internet-based applications allow the software industry to move beyond this approach, creating a platform built with integration by design. 

Before looking ahead, we will look back at how traditional models have evolved through various eras of computer technology.

Centralization

In the 1960s, before the dawn of personal computing, the mainframe ruled the computing world. Remote terminals providing the user interface were very limited in functionality and were concerned solely with display protocols such as 3270, governing how characters should be output onto the screen. All of the innovation was on the mainframe, and some of these innovations, most notably transaction processing, and the development of high-level programming languages have benefited the industry tremendously as it has moved forward.

Decentralization

The advent of Personal Computers with their capacity to run applications locally reversed the model. Most of the innovation moved from the central mainframe down to the client PC. The PC, largely because of the MS-DOS® and Windows® operating systems, became a focal point for the software industry enabling  rich, client-side applications to be  developed. During this era, servers acted as little more than gatekeepers managing and serving files to the client applications that requested them.

Turning Full Circle

With the advent of the Internet, the World Wide Web and the Web browser, the situation has reversed once again and the pendulum has swung back towards a more centralized view.

Your browser may not support display of this image.

Fig. 1: First Generation Internet model: Web Sites pushes HTML to Browsers.

The Internet revolutionized the way that users interacted with applications and significantly extended the reach of the personal computer. Ten years ago, the number of applications that you had at your disposal was typically limited to a dozen. Now you can sit down at your browser, type in a URL, and gain access to applications and information anywhere in the world.

The problem however with this first generation Internet model, is that it doesn't let you adapt the information you receive at the client or perform any significant or intelligent local processing. You are limited to providing simple keyboard input and are very limited in the choice of client device that you can connect with. This is essentially due to the limitations of the HTML (Hyper Text Markup Language) presentation protocol.

Today's Internet is very much a browse only world, where the browser provides a porthole view on the oceans of information that is available. You are extremely limited in your ability to manipulate, annotate or add value to the information you retrieve.

Today's model of human-computer interaction is also distinctly limited and involves two isolated worlds. There is one world in which you browse for information and another world where you process the information you receive. As an example, take a look at the task bar at the bottom of your screen. You probably have a couple of browser windows open at any given time, and a couple of other applications where you actually perform your work. This is an example of one world for browsing, and another world for processing information.

The browser itself is little more than a graphical version of the 3270 terminal, and like the terminal offers little in the way of intelligent client-side processing. The processing power is located on the server, and it generates an HTML-based static picture of its output and returns that to the client. Every time you want to do something, you are forced to send a new request back to the server, asking it to perform some additional processing. In a world of powerful and cheap client-side devices, the client's capabilities are being wasted.

Limited Interaction

Today's centralized browser-based model is interactive, but only in a limited way. The user has to initiate the interaction, for example by entering a URL or clicking a link. It is very hard for the Internet to do things automatically on the user's behalf.

Another principal limitation with today's centralized model is that the servers can't communicate with one another. It is very easy for you to access any Web site, but when you want arbitrary Web sites to interact with one another other, to provide an aggregated or composite service, this requires a huge amount of expensive custom development. Today, there are tens of millions of Web sites in existence, but they are all islands. Making these sites interact and work with one another is very difficult to achieve using today's technologies.

Peer to Peer

For certain scenarios, the peer-to-peer model, where clients communicate directly with other clients, bypassing a server, offers great potential and delivers useful solutions today. While centralized servers are required to perform certain tasks in certain problem domains, they are not always required. Instant messaging, such as that provided by MSN® is one of the best and most successful examples of a solution built using the peer-to-peer model.

While many new and successful applications, providing extensive collaboration environments are being developed using this model, it is not suitable for all scenarios. For example, when two people want to work asynchronously with one another, a server is required. Similarly, a server is required when an application requires that a client be authenticated for security reasons. Sometimes your client device will be very limited, and it won't have enough power to perform the processing you require. This is another example of a scenario requiring a server to perform heavy duty processing and content conversion to adapt the content to a format suitable for the device.

While the peer-to-peer model is important, it only provides a partial solution.

A Web Services Model

Today, people are starting to work with new classes of devices, for example wireless devices, and devices connected to broadband television networks. This is resulting in tremendous challenges for server-side development. Parallel sets of infrastructure are often developed to solve this problem, where one Web site is built specifically for delivering information to the PC, another one is built for delivering content to wireless devices, and a third one delivers content to a TV set-top box. This kind of redundancy is clearly inefficient and costly, and alternative approaches are required.

The dilemma faced by application developers today is that they need to provide solutions satisfying a diverse range of client devices, with varying screen resolutions and form factors. Furthermore, the information presented to these devices needs to be personalized, and often combined from multiple data sources hosted by a variety of different servers. Clearly, a terminal oriented-model for the client or a pure file-sharing model for the server is inadequate. The solution requires that rich information be expressed and exchanged in both directions.

The XML Web services model provides such an approach. XML Web services are software components, or islands of functionality programmatically accessible over the Internet using open Internet protocols including HTTP (Hyper Text Transfer Protocol) for transport, and XML (eXtensible Markup Language) for rich and flexible data representation. As the interaction between an XML Web service and its client is governed entirely by open Internet standards, any device or platform that supports these standards can host or consume Web services. The XML Web services programming model is entirely platform independent, and is ideally suited to the heterogeneous nature of the Internet.

Your browser may not support display of this image.

Fig. 2: The Web Services (Software-to-Software) Model of Microsoft .NET

Using XML Web services, the possibilities are limitless. Servers that need to interact with other servers can do so, servers can interact with clients, and clients can interact with each other. For example, if you walk into a meeting room and have a client device in your hand, and there are other people in the room with similar client devices you ought to be able to retrieve, provide, and exchange information with them. In this respect, the solution requires client-to-client, client-to-server, and server-to-server elements, but built around one standard, and using the features and intelligence that is built into these devices

Potential for Innovation

In a participatory environment, you are no longer looking at information through a porthole. When you visit a Web site and retrieve stock or portfolio information, you require more than simple static text in your browser. You want the information delivered directly to an application such as Microsoft Excel so you can start to manipulate it, add value to it, and perform intelligent processing on the information.

This approach requires smart clients, for example clients that can work offline, perform local processing, and are not dependent on the server for every operation. In addition to the interactive access that is commonplace today, you will increasingly see applications on the Internet communicating with one another without human intervention. Unleashing programmatic access such as this is incredibly powerful and has the potential to transform the services provided by the Internet today.

Once programmatic access is a reality, instead of having tens of millions of islands on the Internet, these islands can be connected together very easily and they become a set of interlocking building blocks.

Nurturing Creativity

The XML-based Web services model is not tied to particular hardware architectures, thanks to the open and the platform independent standards that XML Web services are built upon. XML Web services will provide the infrastructure for the next generation of Internet applications that will transform your Internet experiences. While embracing the peer-to-peer model on the one hand, servers also have a significant role to play. You will be able to access personalized and up to date information, and will be presented with a single unified view of this information, despite the fact that the information may have been obtained from many individual Web sites and applications.

This is true, irrespective of the client device you are using to access information. The user interface is completely independent from the processing that is occurring on the Web server. For example if you want to write a Web application that deals with twenty different types of screen phones each with different resolutions, keyboard layouts and so on, the server application generates XML, and the mapping to the individual screen phone can then be performed by very simple XML transformation logic that executes either on the server, or on the client depending on how feature rich and powerful it is.

One of the most exciting aspects of the move to a software-to-software, XML Web services model is that it allows information to be instantly customized and tailored to suit the particular client device you are currently using. For example, if you use a new client device for the first time, as soon as you are authenticated, the device will locate the appropriate set of XML Web services that you have chosen to manage your information, and retrieve the appropriate information. You will not have to manually replicate data between applications.

This model also supports intelligent information agents; XML Web services that contain rules defining the types of information you would like to be notified with. They can also poll for changing information that you are interested in, for example new products or price changes, and bring those to your attention. This approach puts you in control of the information you share, and how your time gets used.

Server Technology

Advances in server technology are essential to move into the next generation of the Internet and computing. The Internet today is full of servers that are too slow, and fail because they have no element of redundancy. Windows 2000 was Microsoft's first operating system that included software-scaling technology, which allows multiple physical servers to be grouped together, presenting the notion of a single logical server. Software scaling is a fundamental advance, essential for both scalability and reliability.

Through the .NET platform, businesses and others will be able to turn key processes into XML Web services.  From the schedule for a doctor's office to the catalog for a book seller or a mechanism to determine the proper exchange rate for world currencies – XML Web services created and hosted by one company or individual can be used by millions of others in any number of combinations to produce a variety of highly personal, intelligent computing experiences. 

This distributed model of computing will put increasing demands on server infrastructures, requiring an agile, highly reliable platform.

Windows 2000 Server and the .NET Enterprise Servers with their built-in security, their support for XML and their ability to quickly scale-out to meet increased demands provide the best solution to host and deploy XML Web services and the .NET platform.

Client Software Technology

Advances in client software are equally as important as server advancements. Each device using client software will optimize the way information is presented and gathered – from converting text to speech to recognizing handwriting and voice commands.  These advancements in client software, coupled with the constant improvements in power and mobility in smart devices offer to change the ways in which users interact with technology.

Windows XP, the next generation Windows operating system for the PC – the ultimate smart device – is scheduled for release in the fall of 2001. Windows XP represents advances for home and business computing. Windows XP will set the standard for dependability and performance and will unlock the power of the PC for all users.  It will deliver an intelligent, connected and dependable engine to power experiences on the .NET platform.  For home users, Windows XP will enable everyone to have the power of digital photos, video, music and a connected home.  Business users will enjoy communications, mobility and Internet support experiences.

"Talisker," the code name of the successor to Windows CE 3.0, will be built to deliver a robust real-time embedded operating system for small footprint devices. Talisker will enable developers to quickly bring to market smart connected devices that take advantage of the latest wireless and multimedia technology. It will act as an operating platform for many smart devices extending the reach of the .NET platform. 

Windows XP Embedded is the componentized version of the Windows desktop Operating System enabling embedded developers and device makers to take advantage of the many new features in Windows XP and quickly bring to market rich x86 based smart devices. Windows XP Embedded will deliver a highly componentized platform for a broad range of smart client devices such as set top boxes, retail kiosks, thin clients and much more.

In addition to the client software, Microsoft is developing a platform for XML Web services.  The .NET Framework and the device focused .NET Compact Framework provide a managed, secure execution environment for XML Web services and applications.  The .NET Framework is based on open Internet standards that enable developers to create applications that are loosely coupled and message driven.

Support for XML is provided from the ground up in the .NET Framework. The Common Language Runtime is the engine in the .NET Framework that provides this environment and is designed to support developers using many different languages to create applications. It has a unified type system and enables cross-language inheritance and debugging. By using the .NET Framework developers have the quickest and most productive way of building applications that are truly 3rd generation XML Web services and applications.

With advancements and improvements in client software – the ability to use XML, the Common Language Runtime, and others – consumer devices can become "smart".  Smart devices that are smart about you (and can use your .NET identity and identity-based services), smart about the network (including the ability to work both online and offline), smart about information (and optimizes how that information is displayed and acted on), smart about other devices (including other devices you use to access your information, and devices used by other users that you want to contact or exchange data with), and smart about services (including knowing what services are available to a user and how to access them). 

Client software powering smart devices will allow end users to quickly and efficiently retrieve customized data from diverse data sources and perform intelligent and automated searches against both local and remote data sources. This will take the place of time consuming browsing.

Smart devices

There are many categories of client hardware. The PC is still the most significant today. The growth of PC sales in the last year is actually greater than the combined volume of all the other client types put together. However, other client types will undoubtedly increase in popularity, and as a result, Microsoft is probably investing more in different kinds of software adapted to different client hardware than any other company.

Your browser may not support display of this image.

Fig. 3: Several devices to take advantage of.

The PC

The PC itself is still evolving rapidly. The consistent yearly increases in processing power over the last decade has enabled the PC to evolve into the hub of family computing.  Increasingly, numerous other devices – from stereos, to cameras, to even the home refrigerator – are being networked to the home PC.   The use of XML Web services will allow closer integration between these devices, allowing for information to be quickly and easily shared among them.

The PDA

The Personal Digital Assistant (PDA), such as the Windows-powered Pocket PC is also advancing rapidly. The demand for such devices has been phenomenal. Companies including Compaq and HP have had to significantly increase their manufacturing rate, and they still haven't been able to keep up with the demand.

Your browser may not support display of this image.

Fig. 4: Pocket PC

PDAs today include color screens, streaming media support and other rich features, and have more power than the PC did ten years ago. A limiting factor is the screen size although connectivity speeds are increasing.  Because XML presents data in uncoupled from display characteristics, the options for creating applications and services that can address a wide number of devices, including the smaller screens of the PDA, are possible.

Smart Phones

The Smart phone further extends the value of a mobile phone. It provides a mix of online and offline applications to keep you connected to important and time-critical information. Microsoft plans to combine the best of the PDA and the best of the phone to create a platform to keep people intelligently connected — whether by voice, e-mail or other means. "Stinger", the Microsoft® Smart phone platform, will offer users current personal information and e-mail as well as robust Web-browsing capabilities. The platform will include a Web browser that supports HTML, WAP (WML) and XML formats.

Your browser may not support display of this image.

Fig. 5: Stinger phone

Xbox

Scheduled for release in fall 2001, Xbox is Microsoft's future-generation video game console.  Xbox takes advantage of the .NET platform enabling users to regularly update their games as well as interact with others across the country and world via a broadband connection.   For more information see http://www.xbox.com/

The Tablet PC

Prototypes of these devices have been shown already at various events. Microsoft has been working closely with processor manufacturers, disk manufacturers, and pen recognition technology specialists on the development of the Tablet PC.

The Tablet PC supports direct manipulation, which allows you to point to items on the tablet's surface in order to move, select and choose them. Direct manipulation will not only be limited to the tablet form factor, but will also be supported by larger CD devices that you will have on your desk and wallboards on your office walls. Direct manipulation, along with speech recognition are going to be key, new elements of the Windows platform available to the next generation of applications.

Your browser may not support display of this image.

Fig. 6: Tablet PC

This list has illustrated some of the exciting new client devices that are available now and in the short term future. Among the ever-increasing array of client hardware devices, the PC will remain  a key player. All of these devices will have complimentary roles, and with built-in support for XML thru its client software, they will be able to interact and work together in a variety of ways.

Microsoft .NET Vision

.NET is Microsoft's platform for XML Web services, the next generation of software that connects our world of information, devices and people in a unified, personalized way. 

The .NET platform enables the creation and use of XML-based applications, processes, and Web sites as services that share and combine information and functionality with each other by design, on any platform or smart device, to provide tailored solutions for organizations and individual people. 

Your browser may not support display of this image.

Fig. 7: XML enables communications between servers, and the development of Foundation Services.

This platform is fundamentally based on XML together with its related family of standards. The ability of XML to convey self-describing data in a platform neutral manner, promises to deliver a solution to this essential software requirement, and offers a degree of flexibility and consistency that has never yet been achieved.

Central to the .NET platform are XML Web services. These are essentially Internet-based components providing reusable and programmable pieces of functionality. Microsoft .NET will provide developers with a series of core XML Web services or .NET building block services, that can be combined with other XML Web services and custom application code to provide key functionality such as user authentication, notifications, and calendar functions -  key plumbing that developers will not have to recreate.

The canonical example of  building block service is Microsoft Passport. Passport is one of today's most widely accessed Web site in the world, but very few people have ever typed the address http://www.passport.com directly into a browser. Users are presented with options to sign up for Passport from a variety of  Web sites.  Additionally, once users of the service wish to use the service on numerous partner sites, the integration between the Passport service and the Web site is such that the users rarely realize they have left the host Web site. This illustrates a key point. Passport provides a service, which can be incorporated within other Web applications on other Web sites. It allows Web sites to out-source the authentication process, freeing developers to work on business functions.

Increasingly more and more data will be pushed to client devices using XML. The data received by the clients is no longer a static picture of what happens on the server, but the clients will receive the raw data with which they can perform local rich client processing, to manipulate the data and add value to it.

This approach also supports the peer-to-peer model where clients can talk directly to other clients. The XML Web services approach results in a distributed processing model that doesn't try to push every operation through a server, resulting in less potential bottlenecks.

Another advantage of a service-based model is that it allows clients to always use the latest version of a piece of software. This is in contrast to today's model, where to apply an update, you must go out and buy a new CD.  As software becomes as service, the application can be hosted in the Internet cloud and accessed when needed.  This allows for constant updates and improvements in the software and a closer relationship between the end user and the software provider.

XML Web services and improvements in client software will also lead to better support options for end users.  If necessary you will be able to connect directly through remote computing , a feature in upcoming release of Windows XP to receive direct support.

Development Tools

To make application development with XML Web services simpler and to ensure that XML-based Web services become prevalent, new development tools that work at a higher level than today's tools are being developed. As an analogy, when the graphical user interface was introduced, it took a long time before significant numbers of applications were developed. This was because initially, the necessary development tools were not available, and you were forced to work at a low level, dealing with message loops and so forth.

Visual Studio.NET and the .NET Framework provide the core set of development tools for the .NET platform, allowing developers to quickly and easily develop XML Web services and the next generation of Internet applications. It provides an evolutionary path to .NET and component development for C and C++ developers, and to the object oriented world in .NET for developers using Visual Basic®.

Microsoft has created a new programming language designed for an XML Web Services world, called C# (pronounced "C-sharp"). C# has been submitted for standardization to ECMA, a vendor-neutral international standards organization committed to driving industry-wide adoption of information and communications technologies. This standardization will make it possible for any company which wishes to implement C# programming tools on any platform to do so.

Microsoft has also submitted a subset of the .NET Framework, called the Common Language Infrastructure (CLI), to ECMA. This will make it possible for other vendors to implement the CLI on a variety of platforms, so that software written using the basic architectural model presented by the .NET Framework be created using a variety of tools on a variety of platforms.

Conclusion

The evolution of the Internet, consumer devices, communications, and server technology is providing for the development of new integrated user experiences through the use of the next generation of software. This software will provide the platform to develop the next generation of Internet-based applications. These applications will seamlessly interact with one another through XML Web Services, and will provide users with precisely the personalized information they require, at any time, from any place, using any client device.

.NET is Microsoft's platform for XML Web services, the next generation of software that connects our world of information, devices and people in a unified, personalized way. 

The .NET platform enables the creation and use of XML-based applications, processes, and Web sites as services that share and combine information and functionality with each other by design, on any platform or smart device, to provide tailored solutions for organizations and individual people. 

The .NET platform includes a comprehensive family of products, built on industry and Internet standards, that provide for each aspect of developing (tools), managing (servers), using (building block services and smart clients) and experiencing (rich user experiences) XML Web services. .NET will become part of the Microsoft applications, tools, and servers you already use today – as well as new products that extend XML Web service capabilities to all of your business needs.

Appendix: Links to Resources

The following list is not a complete, exhaustive list of articles, but it provides you pointers to the most clarifying .NET articles.

Vision

http://www.microsoft.com/business/vision/netwhitepaper.asp

http://www.microsoft.com/presspass/features/2000/sept00/09-26enterprise.asp

http://www.microsoft.com/business/vision/default.asp

http://www.microsoft.com/PressPass/features/2000/sept00/09-06uddi.asp

http://www.key3media.com/comdex/fall2000/daily/webcasts/index.html

Executive's Views

http://www.microsoft.com/business/vision/gates.asp

http://www.microsoft.com/business/vision/ballmer.asp

http://www.microsoft.com/business/vision/muglia.asp

General Sites to Visit

http://www.microsoft.com/net

http://msdn.microsoft.com/net

http://www.GotDotNet.com

http://www.asp.net

http://commnet.pdc.mscorpevents.com

http://www.microsoft.com/servers/net/default.htm

http://www.ibuyspy.com

No comments: