Section: Tech Shop -- Intranet/Internet Tutorials

For Web Interactivity, ActiveX Marks the Spot -- Love it or hate it, ActiveX is sure to have an impact on the future of distributed computing

By Richard Karpinski

Let's get one thing clear from the start:When it comes to ActiveX, Microsoft's platform for delivering active, executable content via the Internet and intranet, there tends to be no middle ground. Like Microsoft itself, ActiveX seems at times a lightning rod for controversy-and in some cases, confusion-that sends net-heads fleeing into rival camps.

In the anti-ActiveX camp, you hear Microsoft is using ActiveX to "take over" the Internet, making the net as Windows-centric as today's desktops. Furthermore, they say Microsoft's promise to make ActiveX an open, cross-platform, and cross-browser product is full of air. And to top it all, ActiveX also is being branded a Trojan horse that can sneak harmful code onto your system and wipe out your hard drive in the blink of an eye. A recent column on HotWired's Packet site sums up the fear and loathing succinctly:"Microsoft's ActiveX technology is the single greatest technological threat to the future of the World Wide Web," wrote columnist Simson Garfinkel.

The pro-ActiveX camp tries to cool the heat surrounding ActiveX, stating it's the most advanced component software platform around, based on five-plus years of work at Microsoft. They say thousands of developers already have created countless ActiveX programs, called controls, that can jump-start active Internet content, and that the ActiveX platform uses state-of-the-art digital authentication to add a level of security missing from the shareware and freeware software now ubiquitous on the Web.

Even for those without a political stake in the ground, it's not always clear exactly where ActiveX fits in the Internet landscape:Does it compete with, or complement, Sun Microsystems Inc.'s Java? When and how will Netscape ever embrace ActiveX? And even as Microsoft makes good on promises to turn ActiveX over to third-party groups and vendors, will non-Windows implementations really make a difference?

So let's hunt out the middle ground and search for some truths because-love it or hate it-users, webmasters, and Web developers need to come to terms with ActiveX and understand its impact on the future of distributed computing. The Internet and corporate intranets are clearly and quickly moving away from their roots as delivery platforms for relatively static HTML content toward active (Microsoft's name), live (Netscape's buzzword), distributed applications. And ActiveX-currently in a period of rapid development and great flux-looks certain to play a major role.

activeX roots

ActiveX officially arrived on the scene in December 1995, announced for the first time from the stage at Microsoft's now-famous "embrace-and-extend" Internet "D-Day" in Seattle. But the technology has deep roots.

In the purest sense, ActiveX is a set of technologies enabling interactive content over networks, including the Web. Active Web sites can include a variety of multimedia effects, enhanced page layouts, and executable applications, all of which are downloaded and run in real-time over the Internet. ActiveX coexists with and complements the core technologies of today's Web, including HTML, plug-ins, Java, and more. Perhaps most important, ActiveX is a fairly mature technology:According to Microsoft, more than 1,000 ActiveX controls already have been written for applications such as audio, video, and live chat.

ActiveX is based on two core Microsoft development technologies: OLE (Object Linking and Embedding) and COM (Component Object Model). While even Microsoft in some of its documentation calls ActiveX just a new name for OLE controls, there is a difference. OLE controls are focused on integrating desktop applications, and while they technically can be used as ActiveX controls on a Web site, they're typically too large to be downloaded over the Internet. To help speed the delivery of controls, Microsoft streamlined and simplified the definition of ActiveX to optimize delivery of controls over networks, especially over the relatively low bandwidths of today's Internet.

In its latest incarnation-and with all the latest jargon to go along with it-ActiveX consists of five elements spanning both the client and server:

ActiveX controls
Executable "applet-sized" objects that can be embedded in a Web page. Microsoft says there are more than 1,000 ActiveX controls on the market (many of which are former OLE controls). ActiveX controls can be built using a wide variety of tools and languages, including C/C++, Visual Basic, Delphi, and even Java. We'll discuss ActiveX development tools in more detail later.
ActiveX documents
The capability to view non-HTML documents, such as Word or Excel files, via a Web browser.
Active Scripting
Scripting languages-including VBScript, based on Visual Basic, and JScript, Microsoft's own implementation of JavaScript-that can bind together or integrate ActiveX controls or Java applets, both on the browser and server.
Java Virtual Machine
Microsoft has built its own software-based virtual machine that it says runs Java code better than VMs from Sun or Netscape. The Microsoft Java VM also enables the integration of ActiveX controls and Java applets.
ActiveX Server Framework
The server-side architecture that provides Web server-based functions such as security and database access.

Thus, while what most comes to mind when speaking of ActiveX is client-side ActiveX controls, the ActiveX platform is actually much broader than that. And while it extends beyond the scope of this article, it should be noted that ActiveX is just one part of the larger Active Platform, the still-evolving end-goal of Microsoft's Internet vision. With the Active Platform, Microsoft swallows up such "open" Internet technologies as TCP/IP, HTML, and Java, and marries them to its legacy desktop technologies to create a new network-centric development environment that does Windows extremely well, but promises not to ignore other operating systems and hardware, too.

The Active Platform-which encompasses Microsoft's Active Desktop, Active Server, and ActiveX technologies-already has begun to appear in pieces, and will come together on the desktop with the upcoming OS-integrated releases of Internet Explorer 4.0 and 5.0, both expected in some form this year.

To fuel the Active Platform's cross-platform goals, Microsoft recently began the process of moving control of core ActiveX technologies to a third party, The Open Group. In addition, Microsoft is working with Metrowerks Inc. and Macromedia Inc. to support ActiveX on the Macintosh platform (an early version of the ActiveX SDK for the Mac is available now). Microsoft also is working with Bristol Technology Inc. and Mainsoft Corp. to support it on Unix platforms. It remains to be seen, however, how successful and popular these non-Windows implementations of ActiveX will be.

Indeed, it will likely be the platform issue that dogs Microsoft and ActiveX the most. While Microsoft owns the PC user desktop with its Windows operating system, the dynamics of content and applications development are somewhat different on the Internet, where new technologies simply are not adopted if they're not broadly supported on the client side.

active web surfing

The best way to experience ActiveX on the Web today is with Microsoft's Internet Explorer 3.0 browser (Windows NT and 95 versions only for ActiveX support), available for free download from the Microsoft Web site (www.microsoft.com/ie). And while Netscape recently promised to support ActiveX in future products, Netscape users can experience ActiveX today using NCompass Labs Inc.'s ScriptActive plug-in. This slick plug-in adds native support for ActiveX controls and ActiveX documents to the Netscape browser. It's available for a free 30-day evaluation or $21 for a licensed single-user version from www.ncompasslabs.com.

What does ActiveX do for Web surfers? The most important thing is that it makes active content a much more seamless part of the Web than existing technologies, notably Netscape plug-ins. While plug-ins disrupt the Web experience by forcing users to download the .exe file, run the install program, and at times restart their computers, ActiveX controls (once they're accepted by users for download) are automatically installed in the background and are ready to be used immediately. Unlike Java applets, however, ActiveX controls are "persistent." The one disruption in this process is the Authenticode code-signing security process, which we'll discuss in more detail later. Once they're downloaded, the controls remain on users' hard drives and are always available to be used.

In rough terms, Web surfers will encounter two main types of ActiveX controls. The first type, which can best be described as a plug-in replacement, serves as an integrated media or content play-back engine. Users download the control and then are able to experience media types not natively supported within the browser, including audio, video, and chat. Most of the major Netscape plug-in vendors have by now released ActiveX control support with their products as well, including Adobe Systems Inc.'s Acrobat, Progressive Networks' RealAudio, and VDONet Corp.'s VDOLive.

The second major type of ActiveX control found on the Web affects the layout of Web pages. Active buttons, scrolling billboards, enhanced layout, drop menus, and much more are possible with ActiveX and help produce much-improved Web user interfaces. As a Web surfer, the installation of such controls is fairly seamless because they're small and quick to download. Internet Explorer 3.0 also comes with a small set of pre-installed controls-including Chart, Label, Preloader, and Timer-that Web authors can take advantage of right away.

The big issue for ActiveX from a user's perspective is security. It's here that ActiveX and Java differences are most pronounced. Java applets run within the Java Virtual Machine, a so-called "sandbox" that keeps the downloaded Java byte code from reaching other parts of your system. ActiveX doesn't use such an approach. ActiveX controls can access your hard drive and various system services, thus making it possible for a developer to release a control that by design could damage your system (see "ActiveX Danger?," facing page). Less ominously, but no less harmful, a developer could develop a buggy control that could inadvertently do some harm.

Advocates of ActiveX argue that only by letting downloaded software objects have access outside the sandbox, or by letting it interact with objects on other distributed servers, do you get really interesting Internet content-another thing Java in its early days doesn't allow. For instance, a game score or spreadsheet calculation can be written directly to applications on your hard drive. The trade-off is power vs. security. Indeed, most Java developers, as much as they give lip service to the importance of the sandbox, also say they feel constrained by the airtight Java security model.

Microsoft's answer to the inherent security problems with ActiveX has been to introduce a rather rigorous program of signed digital authentication of ActiveX controls, called Authenticode. While digital authentication provides probably a greater level of security than today's shrink-wrapped software, there's no way it can ensure that downloaded code is not buggy or in other ways harmful. Microsoft recommends that users download code from vendors they trust, and says makers of bad code will get singled out and blackballed. So in the end it's caveat emptor-buyer beware and good luck chasing down that control developer if a problem ever occurs.

Given its relatively small (but growing) market share and security concerns, ActiveX as an end-user technology has had a somewhat bumpy run in its early days on the Web. But the future looks brighter. Indeed, because Internet Explorer 3.0 has proved itself a viable alternative feature-for-feature to Netscape's Navigator, IE's ActiveX support, especially support for self-installing media controls, may make Internet Explorer the browser to beat on 32-bit Windows platforms-particularly for users who feel comfortable with digitally signed code.

webmasters and activeX

For webmasters who've already dabbled with Java applets, the basic concepts behind adding ActiveX to a Web page are very similar. But there are some new tricks to learn-and some new tools that will help you-before you can become fully adept with ActiveX.

The first thing webmasters need to do is find the controls they want to use. Like Java, ActiveX is not for the faint of heart. Don't plan on writing ActiveX controls if you're not a programmer, or at the very least conversant in higher-level programming environments like Visual Basic. But the real power of object technology like Java and ActiveX is that you don't need to write an applet or control to use it. You can reuse ones written by others-sometimes for free, other times for a fee.

Where do you find ActiveX controls? As we noted above, Internet Explorer 3.0 downloads with a number of controls already installed, so the savvy webmaster can start with those. But that's just the start. Microsoft estimates there are more than 1,000 ActiveX controls available today, and the numbers are growing. Check out the Web sites listed in the Reference Desk (at right) for listings of free and for-pay controls you can add to your Web site.

Once you have the binaries for the ActiveX control you want to use, you can add the control to a Web page using the HTMLtag, which also includes a set of parameters that affect the appearance and behavior of the control. While you can use any text or HTML editor to add ActiveX controls to a Web page, Microsoft has released the free ActiveX Control Pad. The Control Pad's point-and-click interface helps webmasters through some of the more esoteric HTML coding necessary to properly place a control on a page. It also can be used to add ActiveX scripting to Web pages, and, via the included HTML Layout Control, offers ActiveX authors more precise 2-D layout control of Web pages. For more information, the Microsoft Site Builder Workshop Web site includes a white paper and tutorial on the ActiveX Control Pad and Layout Control (www.microsoft.com/workshop)

The Control Pad consists of several elements, including a basic text editor for editing HTML source code, an object editor for placing ActiveX controls on a page and visually setting properties of the controls, and a Script Wizard for guiding non-programmers through the process of adding VBScript or JavaScript code to a page.

At the most utilitarian level, the ActiveX Control Pad hides from users some of the more unseemly elements of ActiveX. For instance, the tool makes it easier to customize a control by changing its parameters; the Script Wizard, meanwhile, attempts to automate the creation of scripts used to control the behavior of ActiveX controls. The wizard can be set to either "designer" or "developer" mode, depending on the experience level of the user.

The ActiveX Control Pad is an extremely interesting tool-among the first on the market that begins to show an inkling for where the Web may truly be headed. So far on the Web, authoring has consisted mainly of keeping up with a rapidly growing group of HTML improvements and extensions. The focus was on appearance, and stretching the limits of a markup language probably well beyond its original intentions.

With ActiveX-and also with Java and scripting languages like JavaScript and VBScript-page designers potentially have much more power in their hands. Anything that can be imagined can be created with these Web-ready programming languages. The key will be marrying the relative simplicity of HTML with the power-yet complexity-of Web programming languages in a single tool or authoring environment. Consider the ActiveX Control Pad a very early stab at just such a tool.

At its Site Builder Workshop site, Microsoft provides several examples of Active content created using the ActiveX Control Pad and HTML Layout Control.

developers and the intranet

The intranet in many ways may be the perfect setting for ActiveX. Intranets hide the platform's weaknesses, including the lack of a ubiquitous client base on the public Web and concerns about runaway code from untrusted developers, and plays to its strengths-bandwidth becomes less of an issue and most IT departments probably have some OLE controls lying around already built, as well as VB and C++ programmers ready to roll building new ones.

There are a variety of ways to write ActiveX controls, ranging from bare-bones C++ programming for long-time Windows developers to a new Visual Basic Control Creation Edition that lets relative newcomers visually build small, Web-optimized ActiveX controls. Tools for building ActiveX controls include Visual Basic, Visual C++, Borland Delphi, Borland C++, and a variety of emerging Java development environments. Java-built controls in the ActiveX environment have the added advantage of, in effect, being ActiveX controls themselves, able to fully integrate into the ActiveX platform.

Finally, just as important as ActiveX controls for corporate users may be ActiveX documents. Many corporations have standardized on Microsoft Office, and the ability to view Excel, Word, or PowerPoint documents within the Internet Explorer browser could greatly ease departmental content creation and viewing. Who needs to convert documents to HTML when everyone on site can view documents in their native form right within their Web browsers?

an active future?

ActiveX is in a period of great flux. It's developing quickly and spreading its reach just as aggressively. Some guideposts to monitor when tracking its development:

  • Does The Open Group's stewardship of ActiveX come to fruition, or does it bog down in petty squabbling, infighting, and politics? And how much of ActiveX will Microsoft set free? Already competitors are complaining that Microsoft is holding on to key desktop application programming interfaces, such as Win32.
  • Even if ActiveX does go cross-platform, does anyone in the Mac or Unix communities care? Or do competitive object environments like OpenDoc, Java Beans, and the CORBA-based Inter-ORB Protocol come on strong? And what will Netscape's implementation of ActiveX look like?
  • Whose implementation of Java wins? If Microsoft does a killer job with the Windows implementation of Java-which, as part of its Java licensing agreement, it's in charge of-then almost by default ActiveX becomes a very important integration technology.
  • Will users and developers feel comfortable with digital authentication as a process and "accountability" as a security policy? Or will more challenges come along and shake up user comfort with downloadable code playing outside the sandbox?

As Bill Gates said a year ago, Microsoft is undoubtedly "hardcore" about the Internet. And ActiveX and the emerging Active Platform are at the core of its Internet strategy. It'll be interesting to see how far the company can embrace core Internet technologies like HTML and Java while at the same time extending Microsoft platforms like ActiveX out to the Web.

Richard Karpinski (rkarpins@cmp.com) is an editor at large at NetGuide Magazine.

ActiveX Controls vs. Java Applets

Feature ACTIVEX

Security

Code has access to system resources. Microsoft says Authenticode will make developers accountable for its code.

Protability

Problematic:Available only on Win95 and NT today. Microsoft is working on Unix and Mac ports, but controls will have to be rewritten.

Speed

Old code tends to be big and slow. Newly built controls can be optimized for the net. Persistence means control only needs to be downloaded once.

Tools

ActiveX is a mature technology, but development tools are somewhat complex. New Visual Basic Control Creation Edition will help.

Availability

Former OLE controls have been converted to ActiveX, and a developer base is ready to make more. But most are for Win32 platforms.

Feature JAVA

Security

Early versions of Java are secure but limited in functionality. More system access is coming in Navigator 4.0.

Portability

Applets designed to run on any computer with Java Virtual Machine. Windows 3.1, 95, NT, Unix, and Mac all have VMs. Problem could be machine-specific VMs.

Speed

Interpreted languages like Java run slowly. Just-in-time compilers help for certain platforms, and new technologies store applets on users' hard drives for faster performance.

Tools

Java development environments have arrived. Truly visual programming environments and designer-based tools next to come.

Availability

Many Java applets have appeared in the past year. More sophisticated applets and applications expected this year.

Note

ActiveX and Java in their broadest definitions are hard to compare. ActiveX is a broad set of technologies enabling distributed applications; Java most simply is a programming language. Yet both can be used to distribute small bits of executable code over the Internet.

Reference Desk

Copyright R 1997 CMP Media You can reach this article directly.

zur ckzurück © 1996-2024 Lutz Donnerhacke @ IKS GmbH Jena Thursday | 25.Apr.2024