What’s Microsoft Up To On The Internet

Creating Platforms for Innovative Internet Software

by Scott Henson, Sara Williams, and Tammy Steele

The buzzwords! The hype! The soaring stock prices! By now we all know the promise of, and the promises made about, digital convergence on the Information Superhighway. This cyberland is already well known as "the Internet" to the millions of people who traverse its electron-paved pathways.

All the noise aside, the Internet does represent the greatest opportunity for software innovation since the introduction of the personal computer.

Taking Advantage of Win32 and OLE

Connectivity is the basis of this revolution. In fact, the last three releases of Microsoft Windows (Windows 95, Windows NT 3.5, and Windows NT 3.51) have focused on building the substrate of Internet connectivity. Windows Sockets, TCP/IP, DNS, DHCP, WINS, Telnet, SLIP, and FTP are a few of the fundamental components that have been added to the Windows operating system to help provide the on-ramp of connectivity and communication for the Internet.

This is a good start, but what is Microsoft’s strategy for the development community? Is it one that allows a compelling and simple transition from the desktop to a worldwide union of information and applications? The search for the answer to these questions has kept corporate office lights (including ours!) burning into the wee hours of the morning.

Microsoft is busy adding features to the Win32 API (the 32-bit Windows application programming interface, including its component architecture, OLE) to allow developers to "Internet-enable" their applications by leveraging the investments they have already made in Win32 and OLE.

This article provides a high-level discussion of the strengths of today’s Internet. It also discusses some of the evolutionary paths that will make the Internet even more compelling and exciting, and explains Microsoft’s plan to take those paths. More importantly, it is a basic outline of the APIs and services Microsoft will deliver in the near term for Win32 and OLE developers. These APIs and services extend Win32 and OLE to enable developers to more easily take advantage of the Internet in their applications. For more detailed information on the individual parts of Microsoft’s Internet offerings, see all of the new Internet Development Toolbox Web site (http://www.microsoft.com/intdev), from which this article is drawn.

Standards are the Key to the Internet’s Success

The force behind the success and power of the Internet is, quite simply, standards. The standards that make the Internet so compelling and powerful include:

Common language and naming. All computers on the Internet speak the same language (TCP/IP), and resources are easily accessed through a common naming scheme using DNS and URLs.

Common format and protocols. A significant amount of the content is stored in a common format (HTML), and files are transferred using standard protocols (HTTP, FTP, SMTP).

Consistent and powerful user model. All browsers on the World Wide Web (WWW) use URLs, hyperlinks, and in-frame navigation, providing an efficient user paradigm for traversing the infinite "docu-verse."

Server-side processing extensions. Through standard methods such as CGI, WWW servers can be extended to communicate with back-end scripts, dynamically produce the content of a Web page, store information the user has provided, or purchase goods.

Microsoft’s View of Standards

So the natural question is: How is Microsoft going to participate in this world created and based on standards?

By listening to user demands and working with standards bodies, Microsoft is delivering an Internet solution that incorporates industry standards as well as the feature demands of end users. Microsoft will support all HTML extensions, file formats, and protocols that its customers require to create compelling software solutions. Microsoft will continue to research and monitor Internet technology, such as Java and HTML, including non-compliant but popular HTML extensions. As Microsoft moves forward in addressing the challenges of the Internet, it will continue to work with the standards bodies such as the World Wide Web Consortium (W3C) and the Internet Engineering Task Force (IETF) to ensure that it is openly publishing its proposed extensions, protocols, and file formats. Microsoft strives to help evolve the Internet continuously to meet customers’ requirements in a timely fashion.

Evolving the Internet

It’s common to hear people talk about the Internet and the World Wide Web as if they were synonymous, but it’s important to remember the difference: The Web is a great technology for sharing content and communicating. The Internet itself provides powerful and universal connectivity that underlies the Web. The relationship is symbiotic: The Internet provides the great connectivity that makes the Web possible, and the Web has provided the powerful user model and has garnered the attention that is making the Internet ubiquitous. It is important to think about the evolution of the Internet in both areas.

As the Internet grows and develops, there are several areas where independent software vendors (ISVs) will want to expand and extend the capabilities that are currently available.

Extending to protocols beyond HTTP and FTP. HTTP and FTP currently provide a great way to transfer information and files around the Internet. However, as new (and secure) protocols are developed and as distributed applications begin to exploit the connectivity of the Internet, you will want to be able to easily plug new protocols into the existing environment. URL monikers enable developers to do exactly that.

Extending beyond HTML. HTML paves the way on the Internet by providing a single standard format for documents, so that all browsers can read all documents. HTML also provides support for navigation, so that a user can easily move among HTML pages. That’s great, but wouldn’t it be nice if you could publish documents on the Web in any format, and still ensure that all browsers can read it, and that the user can still easily navigate? Voilą! OLE Document Objects let you publish in your favorite format, and make sure that the viewing code is available. Additionally, hyperlinks let you add navigation capabilities to any document or application.

Internet extensibility in software. Web documents today are largely static—they present information or provide a simple interface for retrieving information from the user. How can we make Web pages more dynamic—more like Web applications, if you will? OLE Controls and OLE Scripting provide the infrastructure that lets you add behavior and scripting to your Web page, in a language-neutral and tool-neutral way. OLE Controls and OLE Scripting leverage the investment in tools and knowledge that developers have already made in OLE.

Desktop integration. Today, Internet-access applications and traditional desktop applications are completely separate. Users employ each in different scenarios, and developers build each using very different tools. How can we make Web access and Internet use a seamless extension of the user’s desktop, and how can we leverage the investment developers have made in tools and education? How can we protect the large investment made on traditional desktops?

Server efficiency and extensibility. Currently, many Internet server solutions are proprietary or bound to a single hardware architecture. Often, they do not offer optimal performance. For example, every time a CGI script is executed, a new process must be created. You can imagine that several hundred users would quickly flood the process space of a system since this is an expensive operation. So Internet server software platforms need to be designed from the ground up, not only to be very high-performance and robust but also to scale to meet the load and use system resources efficiently. Microsoft’s Internet Information Server, together with the Internet Server API (ISAPI), provide such a solution.

Security. To be effective, security systems need to be usable as well as secure. A prohibitively hard-to-use scheme, with new passwords and server components and so on, will not be used as often as a scheme built into the design of the components. Also, how can we develop solutions to address talking to servers securely? How can we identify servers and clients so that information can be customized or validated? What about performing transactions without fear of fraud? How can we safely run downloaded code without fear of virus infections?

All of this evolution and opportunity is leveraged on Win32 and OLE. Microsoft is extending Win32 and OLE to allow software developers to add Internet features to their applications easily, without starting from scratch.

Enabling the Evolution

Microsoft’s architecture is open and extensible so that anyone can plug in a solution regardless of the tool, language, data format, or protocol used. All of this is built on a standard, secure, open pipe that provides universal and ubiquitous connectivity. The key to greater interoperability is to aggressively embrace Internet protocols (TCP, DNS, HTTP, HTML). This will allow connectivity with all networks, local resources, data types, and languages.

To enable the evolution of the Internet, Microsoft is committed to building a complementary evolution of clients, servers, and tools for Internet software development and content creation. Before diving into the nitty-gritty details, here’s a high-level look at the client, server, and tools that Microsoft is building.

The Client

Sweeper is Microsoft’s Internet client architecture. Sweeper is an API, built on Win32 and OLE, that enables application developers to Internet-enable their applications. Sweeper includes support for extensibility and scripting, asynchronous access, caching, and navigation. Sweeper will be a set of redistributable modules that can be used by any Windows-based application.

The Internet Explorer is Microsoft’s standards-based Internet browser application. Internet Explorer version 1.0 shipped with Windows 95, and version 2.0 shipped in late November. Based on Sweeper, Internet Explorer 3.0 will be extensible via HTML and OLE Controls, and will be split into a set of components and services that will become an integral part of the operating system, making the services available to all developers of Windows-based applications. Microsoft plans to ship a beta version of Internet Explorer 3.0 in March 1996, with a release of version 3.0 slated for the second quarter of 1996.

See "The Internet client" section below for more information about Sweeper and the Internet Explorer.

The Server

The primary features of Microsoft’s Internet Information Server are speed and extensibility. The goal is to be the fastest information server and allow the server to be extended via an open API set—the Internet Server API (ISAPI). ISAPI is focused on providing software developers with the necessary flexibility to create high-performance, efficient, and secure commercial add-ons for the server. Microsoft is also encouraging other server vendors to adopt ISAPI so that developers can write to a single set of interfaces. Additionally, the Internet Information Server will provide a secure and easy-to-manage environment for system administrators.

On top of that, Microsoft is building an infrastructure around the system client and server that will allow for signed code, secure transactions, billing, and user authentication.

See "The Internet Information Server" section below for more information about the Internet Information Server.

Tools

Microsoft has released one Internet content creation and document management product, Internet Assistant for Microsoft Word. A second, Internet Studio (previously code-named "Blackbird"), is slated to ship a beta version in 1996.

If you are new to HTML and designing pages for the World Wide Web, Internet Assistant for Microsoft Word is a great tool to start with. Internet Assistant 2.0 beta includes enhanced support for tables, font color and face, background sounds, inline video, and watermarks. Internet Assistant 2.0 will also enable you to preview your page in your favorite browser. Version 2.0 is scheduled to ship in early 1996.

Internet Studio is Microsoft’s full-featured authoring environment for creating, publishing, and managing interactive applications for the Web. Internet Studio lets you easily create multimedia Web sites that incorporate stylized hypertext documents, rich graphics, real-time sound, and animations. Internet Studio allows you to work with familiar production tools, and incorporate content from any OLE-enabled application, such as Internet Assistant for Microsoft Word, Microsoft Office, or hundreds of third-party applications. It is also fully extensible via OLE Controls and a published SDK.

Microsoft plans to deliver these technologies across platforms. An in-house development team is focused on delivering key technologies for the Macintosh (OLE has already been delivered, and Microsoft has publicly demonstrated a version of the Internet Explorer for the Macintosh). In addition, Microsoft continues to work closely with its key UNIX partners (Software AG, Bristol, and Mainsoft) to deliver the server and client technologies for the various UNIX platforms.

Since the Windows Internet client and the Internet Information Server are the cornerstones of the platforms Microsoft is building for the development community, let’s dive in a little deeper and examine each in more detail.

The Internet Client

As described above, the Internet client has two major components: Sweeper and the Internet Explorer.

Internet Explorer 2.0 is shipping today and has full support for industry standards, including HTML 3.0 features (tables, formatting, and so on), NNTP News, VRML (Virtual Reality Modeling Language), and SSL (Secure Sockets Layer). Internet Explorer 2.0 uses progressive rendering, intelligent caching, "cookies" (a mechanism for server-side connections to store and retrieve information on the client side), and HTTP Keep Alive to make the best use of available bandwidth.

Internet Explorer’s new media capabilities include inline video, background sounds, RealAudio, and VRML. Moving forward, the Internet Explorer will continue its strong commitment to HTML and VRML. Microsoft will also support new additions to HTML that publishers ask for and implement in their content (frames, for instance). Additionally, the various parts of Internet Explorer (the HTML parser and display engine) will be delivered as a set of components to be used in applications, and will be built on the Sweeper APIs (more on Sweeper below).

One of the most exciting components of Sweeper is OLE Controls. Web pages will be extensible via OLE Controls. During the first quarter of 1996, Microsoft plans to post a beta of the next version of Internet Explorer, built on Sweeper, and extensible via OLE Controls. This will allow content creators to leverage the work of hundreds of controls developers. In addition, this gives the component builders another avenue to distribute their controls.

So, finally, let’s talk more about Sweeper. Sweeper is a broad set of client system services and APIs that allow developers to Internet-enable their applications in leveraged and evolutionary ways. Sweeper’s core components include:

OLE Document Objects (DocObjects, for short). OLE Document Objects is a set of OLE interfaces that are built on top of the standard OLE in-place activation interfaces. A DocObjects server owns the entire client area of the DocObjects container in which it is running. For Internet applications, this means that OLE Document Objects enables Web browsers to be extensible, so that they can view any type of document (not just HTML) that is published on the Internet.

Suppose you want to publish a document in its native *.ABC format. When a DocObjects-enabled browser tries to view that document, it downloads (with the user’s permission, of course) the *.ABC DocObjects server and runs it. The *.ABC DocObjects server takes over the browser’s entire client area and displays the *.ABC file. To end users, this is completely seamless; they use the same tool to browse anything on the Internet, regardless of the format. If you publish documents on the Internet, this means that you are not restricted to publishing in HTML, you can use any format you choose, and you are still guaranteed that end users will be able to view your documents.

DocObjects also enables a browser to launch a specific application when it gets to a page; the browser acts as a navigation tool to find and launch an Internet application.

Hyperlinks. Hyperlinks provide general navigation APIs that can be used by any application. Coupled with OLE Document Objects, the hyperlinking and URL caching API allows all application developers to navigate back and forth between documents and to keep a history, just as Web browsers do today.

OLE Control and Control Container Guidelines. The guidelines define the exact interfaces and methods that are required of well-behaved OLE Controls and control container desktop applications. Sweeper proposes two new OLE Controls component categories—Internet and multimedia/run time only—specifically to address Internet-enabled and multimedia controls.

OLE Scripting. This is a syntax- and language-neutral architecture that allows scripting vendors to "plug in" and perform automation between components. OLE Scripting provides an infrastructure that will allow developers to plug any scripting engines into their applications. In addition, Microsoft will provide a scripting solution, called Visual Basic Script, that will use OLE Scripting and that will include a compiler and run time.

Internet Extensions for Win32. This API set abstracts Gopher, FTP, and HTTP protocols into easy-to-use, task-focused interfaces that simplify access to the Internet significantly.

URL monikers. URL monikers are an implementation of asynchronous monikers, which can perform binding asynchronously to OLE objects via URLs. URL monikers encapsulate protocols: An application simply binds to the URL moniker. The moniker works with the appropriate protocol to activate the OLE object and go to the specified Internet location.

Persistent Cache API. This API is used by clients that need persistent caching services. Persistent caching allows the caller to save data in the local file system for later use. This is useful when access to the data is over a low-bandwidth link or the access is not available at all.

Pluggable protocols and data formats. Given the dynamic nature of the Internet world, it is highly likely that new file formats and protocols will emerge. Sweeper uses "Quartz" (an architecture for the processing of streams of multimedia data) Filter Graphs to handle new media types and the IBind* interfaces for plugging in new protocols.

The Internet Information Server

The Microsoft Internet Information Server (previously code-named "Gibraltar") is the Web server for Windows NT. The Internet Information Server is an industrial-strength, programmable Web platform that is easy to manage and that integrates with your current environment.

By using the underlying features of Windows NT Server, the Internet Information Server offers a high-performance, secure, and extensible information publishing solution that can also serve as a platform for solutions and site developers. The primary features of the Internet Information Server include WWW, Gopher, and FTP services; Internet Service Manager; client browsers for Windows 3.11, Windows for Workgroups, Windows NT, and Windows 95; easy setup and manageability; and an extensible platform.

Many of the aspects of the extensibility designed for the Internet Information Server were part of Microsoft’s ongoing Open Process. Hundreds of ISVs and Internet Service Providers have guided Microsoft on the development of its server programmability. In fact, many of the capabilities included in the beta product shipped in November were the direct result of input offered by our development partners. The result is a uniquely rich set of capabilities and a community of developers who are already moving outstanding application solutions to the Internet Information Server.

The complete set of extensibility interfaces includes:

Common Gateway Interface (CGI). Internet Information Server supports the industry-standard CGI as well as Perl, the most common language for developing simple Web applications, such as data input forms and log analysis routines.

ISAPI Internet Server Applications (ISA). ISAs are dynamic-link libraries (DLLs) that are similar to CGI scripts. ISAs are loaded in the same address space of the HTTP server—unlike CGI, which creates a separate process for every request. This creates a back-end scripting solution that is higher performance than CGI and consumes far less RAM.

ISAPI HTTP server filters. An HTTP filter is a replaceable DLL that the server calls on every HTTP request. When the filter is loaded, it tells the server what sort of notifications it is interested in. After that, whenever the selected events occur, the filter is called and given the opportunity to process that event.

ISAPI Internet database connector. This allows Web browsers ODBC (open database connectivity) database access for HTTP requests. Developers can use this feature to create Web pages with information from the database; to insert, update, and delete information in the database based on user input; and to perform other SQL commands.

Summary

Well, that’s a bunch of new information. Let’s take a minute to step back and look at how all of the new technology in Sweeper, Internet Explorer, and the Internet Information Server helps evolve the Internet in the key areas described earlier.

Extending to protocols beyond HTTP and FTP. Taking advantage of new and secure protocols is crucial to the evolution of the Internet. The IBind* interfaces enable a developer to encapsulate a new protocol with a URL moniker. This is just one example of how OLE, and the abstraction it provides, enables you to integrate new protocols into the existing architecture seamlessly.

Extending beyond HTML. Sweeper’s OLE Document Objects lets you publish in your favorite format, and makes sure that the end user can view your documents. Additionally, hyperlinks let you add navigation capabilities to any document or application, so you combine the best of HTML—a file format that everyone can read and the ability to navigate between applications—with the freedom and flexibility of publishing documents on the Internet in any format.

Internet extensibility in software. OLE Controls and OLE Scripting provide the infrastructure needed to add language- and tool-independent scripting and extensibility to Web pages. Using OLE Controls for extensibility lets developers take advantage of existing OLE development tools and the investment they have already made in OLE. OLE Scripting allows you to drop any scripting engine into your application, enabling developers to add behavior to Web pages in whatever scripting language they prefer.

Desktop integration. The Internet extensions for Win32 (WinInet) provide a set of Win32 functions that abstract Internet protocols, making it easier for developers to add Internet access to their applications. WinInet abstracts the protocol-specific details and provides a simplified programming interface, making it easy, for example, to add a Go To Home Page button on a desktop application’s toolbar.

Server efficiency and extensibility. The Internet Information Server offers a high-performance, secure, and extensible information publishing solution. ISAPI includes high-performance scripting capabilities. CGI and Perl are also supported. Additionally, HTTP server filters provide filtering capabilities, and the Internet database connector provides database access.

Security. Microsoft is building an infrastructure around the system client and server that will allow for signed code, secure transactions, billing, and user authentication.

Most importantly, all of this technology is built on top of Win32 and OLE, enabling you to build on your existing investment to Internet-enable your applications.

Where to From Here?

A platform is only as interesting as the applications that are written for it. The quality of the applications for a platform is a direct result of the dissemination of technical information to the development community. As we mentioned at the beginning of this article, Microsoft has a lot of ground to cover, and the company plans to refine, update, and add more content regularly to its online Internet Development Toolbox, so check it out regularly.

Scott Henson, Sara Williams, and Tammy Steele of the Developer Relations Group are known as the "dynamic trio." Their mission is to fight crime and make the world safe for developers.

The force behind the success and power of the Internet is, quite simply, standards.

Microsoft will support all HTML extensions, file formats, and protocols that its customers require to create compelling software solutions.

To enable the evolution of the Internet, Microsoft is committed to building a complementary evolution of clients, servers, and tools for Internet software development and content creation.