Microsoft's new ActiveX architecture

When verbal descriptions fail, a picture often succeeds. I had a tennis student whose game suffered from a fundamental mechanical flaw. My telling him to bend his knees or "sit in the chair" had no effect. Then he saw himself on videotape. He remarked with surprise, "I'm not bending my knees!" Similarly, not until the Microsoft Professional Developer Conference in March did I get the picture that Microsoft's direction of Internet-enabling everything is as serious as its efforts to emphasize Object Linking and Embedding (OLE) and components.

The conference highlighted Microsoft's next generation of developer tools and products from companies, such as Oracle, NeXT, and SBT Accounting Systems, that build on Microsoft's infrastructure. Before the conference, several people had commented, "I'm doing databases and enterprise client/server development, so a conference about Internet development holds no interest." Big mistake. Can you say intranet? The topics were of interest to anyone building applications for the Internet or intranets (internal networks built with Internet technology).

Microsoft unveiled an architecture that blurs the distinction between Internet applications and those that don't access the Net. This architecture supports active documents and a unified model for accessing World Wide Web pages and file system components. Active documents include dynamic content from databases, audio, conferencing, video, and other sources. This new architecture, ActiveX, provides location transparency because the source for active document content can be a hard drive, a LAN, the Internet, or any combination of these.

ActiveX builds on Microsoft's work for OLE, OLE controls (OCXs), and support for distributed objects. ActiveX applications will use local and remote objects and be consistent in operation and presentation. Users won't have to care about details of content delivery. A user's desktop environment will typically have a Web-browser look and feel even when the user is not connected to the Internet. ActiveX will be multiplatform, so authors will be able to easily create active documents for multiple operating environments.

Microsoft is enhancing Internet Explorer so that it integrates an operating system shell and Net browsing in one unified software architecture for all Windows operating systems. For many developers, writing applications will be a process of creating components and writing scripts that run with Internet Explorer on the Macintosh, Windows 95, and Windows NT. Microsoft is also developing a version of Internet Explorer for Windows 3.1. It includes support for Visual Basic Script (VBScript) and the ability to run client- or server-side scripts. Explorer can also install scripting engines for JavaScript or other languages.

You will be able to use ActiveX components and browsers such as Netscape Navigator on the Macintosh. Announcements included an ActiveX partnership of dozens of companies, and an ActiveX software developer's kit (SDK). Sessions showed applications using ActiveX technology for conferencing and movies.

Internet or Intranet?
Microsoft wants consistent tools and techniques for both the Internet and intranets. Document authors and software developers will have common tools, servers, and clients for both Web and internal users. For example, developers writing client/server data-
base applications for workgroups, departments, or the enterprise will use the same GUI and toolkit, including browsers and hyperlinking, as developers writing for the Internet and Web. Microsoft is delivering client- and server-side tools that include Hypertext Markup Language (HTML) viewers, an extensible Internet Server based on Windows NT, Java, support for multiple scripting engines and Internet protocols, and authoring tools for creating active documents.

The folk from Redmond are delivering Internet capabilities at several levels. For example, applications that operate outside the browser need to use Internet protocols: Microsoft introduced a new dynamic link library (DLL), WinInet. It is callable from applications that must support protocols such as the File Transfer Protocol (ftp) and Hypertext Transfer Protocol (http). The new Internet Control Pack is for developers who prefer an OCX to calling the WinInet DLL. The OLE group in Redmond is testing distributed component object model (DCOM) objects that operate over http, the protocol for delivering Web pages. DCOM, or Net-work OLE, will ship with Windows NT 4.0. Microsoft is updating developer tools (e.g., Microsoft Foundation Classes) to work with new Internet APIs and components and is enhancing server products with new features (e.g., SQL Server's ability to use a trigger to create an HTML file).

In conference sessions, I had trouble telling whether more attendees were developing for intranets or the Internet. An example of the intranet model was a financial system for Microsoft executives and support staff. This system follows the Web-page paradigm. Each executive has a home page that can launch email, use installable components such as Excel spreadsheets, re-
call the page history, and jump to other Universal Resource Locators (URLs) to find Web pages. The extent of Microsoft's embrace of the Internet shows in its introduction of a new OLE moniker, the URL moniker, and its plan to use URLs in its future Domain Name Service (DNS) software.

Helper Applications
The Internet Information Server (IIS) is an extensible NT product with a Web Connector and a Database Connector. IIS uses Open Database Connectivity (ODBC) to access SQL databases and integrates easily with BackOffice, providing an Internet Server Application Programming Interface (ISAPI). ISAPI lets developers write extensions that run as NT services. ISAPI and NSAPI, its counterpart for Netscape's Web server, are alternatives to the Common Gateway Interface (CGI). All three are solutions to writing server-side helper applications for tasks such as accessing databases. ISAPI applications and filters are shared DLLs, so they perform better than CGI, which uses a process for each request. This architecture is one reason for the dramatic IIS performance results that Microsoft reported.

The Internet Database Connector (IDC) is an ISAPI DLL that uses 32-bit DLLs (the ODBC driver manager and loadable ODBC drivers) to access SQL data sources. ODBC is a standard for seamless multidatabase access. Heed an important caveat when you hook ODBC drivers to the Database Connector: Because the IIS architecture is high performance and multithreaded, ODBC drivers for use with the IDC must be threadsafe. Microsoft is working on an update to its ODBC Desktop Driver Kit so that its drivers for Access, Paradox, FoxPro, and other desktop databases will be threadsafe.