The Microsoft Active Platform

Nancy Winnick Cluts
Microsoft Corporation

January 1997

Abstract

"The Microsoft Active Platform is an open, standards-based software architecture for delivering rich content and line-of-business applications over the Internet and intranets. It combines the power of PC and network computing to link people with information, anywhere, any time."

That's the quote I got when I asked our marketing team for a definition of Microsoft® Active Platform. (If you've searched the Internet for information on Active Platform, I'm sure you've found other definitions—some of them rather ambiguous.) This article is my attempt to explain, in plain developer-speak, what the Active Platform is and why it is important to developers. In-depth articles covering the components of the Active Platform (Active Client, Active Server, and ActiveX™) will follow this overview.

What the Heck Is the Microsoft Active Platform?

One of the most exhausting things about being in the computer industry is keeping up with the pace of change. Every day seems to present a new technology, a new buzzword, or a new must-have component. Lately, the phrase that we've been hearing a lot in the hallways here at Microsoft is Active Platform. Being a curious person, I did some research to find out exactly what the Active Platform was, and what it meant to a developer like me (and developers unlike me, for that matter).

Since a picture is worth 1K words, here's a block diagram outlining the structure of the Active Platform.

Figure 1. The structure of the Active Platform

This picture shows various tools, services, and technologies: HTML, scripting (JScript™, Visual Basic® Scripting Edition [VBScript], or other scripting languages), and components (Java™ or ActiveX). When you combine these technologies, you can put the result on the client machine and have an Active Client, or you can put the result on the server machine and have an Active Server. Active Platform is an umbrella term that encompasses all of these Internet- and intranet-related technologies. It is based on the formula: HTML + scripting + components.

For example, let's say that you have an ActiveX component that updates information in a Microsoft Access database. You could combine this component with some VBScript that creates a front-end so that the information can be viewed or changed. You could then add some HTML to make this functionality available on the Web (with Internet Explorer). If these Web pages are used on your company's intranet, you now have an easy way to update and share information throughout the company. If you need to restrict access to the information, you can do that, too—either with existing add-on components or by using system services on operating systems that support security (for example, on Windows NT®).

Who Cares?

As you can imagine, this combination of technologies affects many types of developers. (I use the term developer here in the very broadest sense—I'm not talking only about C jockeys like me.)

Pieces of the Puzzle

I've shown you a diagram of the Active Platform using little boxes; now it's time to elaborate on the pieces of the puzzle.

HTML

The Active Platform fully supports HTML 3.2 and other standards, as the World Wide Web Consortium (W3C) and other standards bodies approve them. This means that the Active Platform will support cutting-edge HTML that has been accepted by the standards-making masses. You won't be left out in the cold when a new extension to HTML supporting some whiz-bang functionality comes along. For example, a proposal that is currently before the W3C defines the standards for creating site maps on the Web. When this proposal is approved, you can be sure that the Active Platform will support it.

Scripting

HTML is a great language as far as mark-up languages go, but let's face it: If you need something special on your Web site, and you are already a Visual Basic expert, you will want to use scripting to build richer, more interactive applications. The Active Platform fully supports most scripting languages, including VBScript and JScript. The example below shows an HTML page that has an embedded spinning world applet and a spin button control. The example uses scripting to activate the controls.

<html>
...
<body>
...
<!-- Embed the spinning world applet-->
<applet
   code=TestApplet.class ID=world
   width=100
   height=100 >
</applet>
<!-- Embed a spin button control -->
<OBJECT
   classid="clsid:79176FB0-B7F2-11CE-97EF-00AA006D2776"
   id=spinbtn >
</OBJECT>
<!-- Create some HTML form buttons -->
<INPUT TYPE=button VALUE="Forward" NAME="BtnForward">
<INPUT TYPE=button VALUE="Reverse" NAME="BtnReverse">
<!-- Create the handlers for our controls -->
<SCRIPT language = "VBScript">
<!--
Sub BtnForward_OnClick
   document.world.direction = 1
End Sub
Sub BtnReverse_OnClick
   document.world.direction = -1
End Sub
Sub spinBtn_SpinDown
   document.world.speed = document.world.speed+10
End Sub
Sub spinBtn_SpinUp
   document.world.speed = document.world.speed-10
End Sub
-->
</SCRIPT>

Components

Components are small, well-defined pieces of the puzzle that perform a specific task. Components can be plugged into existing solutions to provide a function, such as log-on authentication. What's nice about the Active Platform is that developers can use their own tools and programming languages to create these components. The developer isn't boxed into a specific language that she may not already know.

For example, since I am a C/C++ developer, I would use Visual C++® and Microsoft Foundation Classes (MFC) to create an ActiveX control. (For more information on these technologies, see the articles "Creating ActiveX Components in C++" and "The ABCs of MFC ActiveX Controls".) I could then run this control either in Internet Explorer or inside an existing application that supports ActiveX controls. On the other hand, a Java developer would use Java to create an applet to plug into an existing browser or application. The person who bought the component wouldn't necessarily care which language it was built in, because both Java and C components work under the Active Platform. Using the tools available within the Active Platform, you can build HTML pages; ActiveX controls for the client or server using Visual Basic, C++, or Java; scripts for your client or server using JScript or VBScript; and even Java applets. One of the really neat new tools, Visual InterDev™, even generates HTML to display at run time.

The developer isn't limited by operating system either. The Active Client is Microsoft's cross-platform "thin" client. All of the features supported by the Active Client, including HTML, Microsoft's Java implementation, language-independent scripting, and ActiveX objects on the Internet are supported on the Macintosh, Windows® 3.1, Windows 95, Windows NT, and UNIX.

Active Server, Active Client, and ActiveX

I briefly mentioned the Active Server, Active Client, and ActiveX earlier. I'm going to give you a little more information here, but you'll find in-depth information in future articles covering those topics.

Active Server

Active Server provides the infrastructure for the Active Platform. It includes the services you need to make component- and Web-based applications run easily over the network. These services are integrated with the Active Client.

Active Server supports "multitier" applications. For example, you can implement business rules and application logic separately in a middle layer, as components or active pages in a Web server. This layer can access data in database servers on many platforms, including UNIX or even your mainframe. Since Active Server is based on open standards and protocols, it offers a powerful way to integrate the Web and legacy applications. Core components of the Active Server include the following:

Windows NT Server 4.0: The operating system foundation for Active Server, which includes systems management tools for managing Active Platform environments.

Rich Web services: Microsoft Internet Information Server (IIS) is built into Windows NT Server 4.0 and provides a powerful platform for dynamic, data-driven Web sites and business applications. Key features of IIS 3.0 and Windows NT Server include:

Component and transaction services: Microsoft Transaction Server lets you build reliable and scalable multitier business applications and deliver business transactions over the Web.

Directory and security services: Active Server uses the standards-based directory and security services in Windows NT Server to provide secure access to information and a common view of the network for applications on multiple client platforms.

Data management services: Active Server defines an open architecture for storing, managing, and accessing data anywhere on the network. Microsoft SQL Server provides a common database environment for both Web and business data; and OLE DB and ODBC provide access to data in Oracle, DB2, even the desktop.

Network services: Distributed COM (DCOM), a core service within ActiveX, is an open standard protocol that allows components to interoperate over any network. DCOM works in conjunction with TCP/IP, HTTP, CIFS, and other standard protocols in the Active Platform to provide interoperability in multi-vendor environments.

Active Server also easily integrates with Microsoft BackOffice™ for groupware and electronic mail, host integration, and many other services.

Active Client

The Active Client is Microsoft's operating system-independent client. This means that it will run not only on Windows 95 and Windows NT, but also on the Macintosh, UNIX, and Windows 3.1. The Active Client supports a strict, standards-based implementation of HTML, Microsoft's Java Virtual Machine (VM), language-independent scripting using VBScript or Microsoft's JavaScript-compatible scripting (JScript), and access to local and networked objects via ActiveX. The Active Client is part of Internet Explorer 3.0 and 4.0, but it can also be integrated within any client application (that's the beauty of componentization). In the future, Microsoft plans to provide key new innovations such as dynamic HTML in the Active Client.

ActiveX Core Technologies

ActiveX is a set of technologies that allow COM objects, such as ActiveX controls, to communicate in a local or networked environment. By using ActiveX, components can interact with one another regardless of whether the object is local or remote. If you are already comfortable creating COM objects, you can create an ActiveX control. Using ActiveX, you can take advantage of ActiveX Scripting and Automation, which provide a common model for how scripts and objects can communicate, independent of scripting language or object language (VBScript, JScript, C++, Visual Basic, Java, and so on).

Summary

The Active Platform was designed to give developers an easy way to create Web-aware applications that leverage the developers' current tools and applications. The component architecture of the Active Platform allows higher re-use of components, language transparency, and the ability to tailor the platform to your specific needs. This solution is beneficial not only for the Internet, but also for intranets. It is based on open standards and will run cross-platform. Microsoft is investing in technology that is based from the ground up on platform-independent, open Internet standards, including HTML, HTTP, COM, NNTP, FTP, SMTP, and LDAP. The benefit of using open standards is that the user is not locked into using products from a single vendor—open standards promise the interoperability of technology from different vendors running on different platforms. While the Active Platform is based on the notion of HTML + scripting + components, there are no limitations on which language you can use to write your scripts or components. Neither are you limited in your choice of container—that is, you can use any Web browser you wish (of course, we'd like you to wish for Internet Explorer). To offer the best freedom of choice, the Active Platform provides a single object model, COM, as a common architecture for building applications spanning client and server machines, independent of scripting languages, class libraries, or operating systems.

What more could you want?