Cairo--Are We There Yet?
Whether you consider Microsoft's elusive Cairo a product or a collection of ideas, Microsoft's vision has yet to gel. Find out which key components are available today and which features are just around the corner.
March 31, 1997
The reality of what is and what will come
What is the product that is Cairo? Or is it a collection of technologies orideas that Microsoft was working on? In 1992, Cairo was definitely a product.Then, as the release date disappeared into the distance, Cairo became acollection of ideas that the Windows NT team was working on. Then Cairo was backto being a product with a new name--Windows NT 5.0 (for information about NT5.0, see Mark Minasi, "The Evolution of NT 5.0," February 1997). Now,the answer to Cairo's fate varies with each person you ask.
Cairo has been all these things, and its release date has always beenvague. Without a doubt, the reason for the confusion lies at Microsoft's feet,but you can easily understand why Microsoft didn't tell the world what it was upto.
Whether you classify Cairo as a product or a cluster of ideas, it stillisn't here. Viewed from the bouncy predictions that Jim Allchin made in July1992, this reality is a considerable disappointment. However, when you look athow the market has changed and how the PC computing world has grown since 1992,the reality isn't such a disappointment.
The truth is that large components of Cairo are available now, but severalother pieces haven't appeared in a coherent form (see Table 1 for a historicalsummary of several Cairo technologies). The biggest disappointment is thatMicrosoft hasn't delivered on the underlying vision and promise of Cairo, but1997 should see it gel into a cohesive form.
TABLE 1: Cairo Features--Now and When?
What Microsoft Promised | When It's Happening |
---|---|
Active Desktop | Exchange Server used VB4 16-bit executablesBasic dialogs in Office 97, shipping nowActive Desktop to ship in IE4 during 1997 |
Distributed OLE | Basic DOLE in NT4, now shipping for Win95 |
Object File System | Still not in betaExchange Server used modified JET instead |
Extended MAPI features | Shipped in Exchange Server 4.0 |
X500 Directory | Shipped in basic form in Exchange Server 4.0Full OS version to be in NT 5.0 |
Object developmentenvironment | OCX environment in VC++Visual Basic 5.0 CCE brings ActiveXdevelopment to end users |
Content indexing engine andMicrosoft Index Server | Released in 1996 |
About 18 months ago, I presented my vision of Cairo in a series of articles(for details, see the list of related Windows NT Magazine articles).The series focused on several key areas such as distributed objects,active storage, a new user interface (UI), and a directory service (DS). Thesekey areas are relevant today and still apply to my updated vision of Cairo.
Barriers to Cairo's Emergence
Since I wrote the articles on Cairo, the computing world has experienced bigchanges. Namely, the Internet arrived with a vengeance, and with it came thewhole mind-set of the intranet. Companies are rethinking their IT strategies,and some are brave enough to go back to first principles (i.e., instead ofthinking of Office and Windows platforms, they're thinking content, HTML, and anew era of server site technologies). Meanwhile, Microsoft has achieved thealmost impossible by completely restructuring from top to bottom.
Many commentators claim that the Internet's arrival means Microsoft hassidelined or devalued Cairo. This claim demonstrates a fundamentalmisunderstanding of the nature of the problems that Microsoft faced and amisreading of how Cairo was and is going to help solve those problems.
To understand Microsoft's approach to Cairo, you have to travel to 1990 orthereabouts. Microsoft was doing major internal research and development thatlargely involved NT. At the same time, the company was starting to develop Cairocomponents such as Object Linking and Embedding (OLE) objects, distributedobjects, document storage engines, indexing and retrieval solutions, DSs, andnew UI designs.
But Microsoft faced a fundamental problem: how to convince users to stopthinking about applications and start thinking about documents? For starters,Microsoft introduced OLE, which lets you work on one type of program file fromwithin another program. So, for example, OLE lets you work on an Excel worksheetfrom within Word. This new approach required a lot of coding design to establisha complete object API set that defines a way for applications to talk to eachother. OLE allows window negotiation (so the contained application can work inthe container application) and lots of small but vital details such as automaticmenu bar negotiation.
In addition to OLE, Microsoft introduced Visual Basic custom controls (VBX)and the OLE custom control (OCX) component model. The company also presented theOLE automation system that lets one application control another, developmenttools such as Visual Basic (VB) 4 to make custom control creation easy, andearly beta versions of distributed OLE (DOLE). All these products screamed "objects,"but the world didn't notice. Everyone still thought applications and serverswere for file and print sharing.
The reason Microsoft had trouble grabbing our attention is simple: Nomatter what the company tried, it hadn't found a compelling reason to make ussit up and take note. The sweet spot that makes users and IT managers ooooh andahhh was missing. Microsoft hadn't focused on the content. Instead, it pushedthe sale of applications to make the content better and overlooked the fact thatwe fundamentally cared only about content.
Only with the advent of the World Wide Web did the world begin tounderstand that content matters above all else and that you need a range oftools to look at your content. HTML is universal (at least in theory), soinstead of thinking Word document, users began thinking about HTML content thatwas quite separate from a viewer frame.
This new approach frees us from the cage of the traditional application.Better still, the Web provides a fast-moving marketplace. Now users can have newbrowsers every few months instead of the two-year time scales for the bigapplication developments. Suddenly the Web and Web browsers are hot, andcompanies are thinking content, not container.
As the Web gained momentum, we began seeing a much more subtle change. Allat once, objects and downloadable pieces and server-side automation became theflavor of the day, and the requisite mind-set began focusing on making adeliverable object framework work.
Microsoft encountered other, less subtle barriers that prevented thecompany from making Cairo a reality. For starters, NT 3.1 was too big and tooslow, and adding Cairo's features would have produced an unusable system even onthe highest-powered platforms. Although NT is a high-end system, Microsoft wantsthe operating system to reach down onto the desktops of mere mortals and not besidelined as an esoteric nicety.
The economics of hardware in 1994, the anticipated delivery date for Cairo,were also quite different from those of today. Back then, we were running fast486 processors with early Pentiums coming available, and we believed that 32MBof RAM was a lot because it cost so much.
Microsoft's top priority was to get NT 3.1 up to speed. As NT 3.1 was thebase platform for Cairo, Microsoft needed to make the operating system fasterand smaller, so the company released NT 3.5. The subsequent NT 3.51 releaseprobably represented the high-water mark in terms of NT Server stability (manyof us are still not convinced that NT Server 4.0 has the towering stability thatNT 3.51 exhibited).
So if Cairo hasn't appeared, what's happened to it? Let's look at Cairo'sunderlying technology for the desktop, distributed objects, and storagetechnology and see where it maps to the reality of today and tomorrow.
The Desktop
Microsoft has always said that the Win95 UI came from the Cairo team, so itinevitably became part of NT 4.0. If you look at Jim Allchin's slides from the1992 NT Developers Conference, you recognize a lot of Cairo UI components suchas right-click pop-up menus, browsing windows, and hierarchical trees thattranslated directly into the Win95 shell.
Cairo also promised an object-based desktop that you would be able torebuild at will. I overestimated Microsoft's desire to let us users decide howwe want our workspace to work. Just look at the limited amount of customizationyou can achieve within the Win95 shell and you soon realize it's little betterthan the previous Win3.x desktop. For example, Microsoft gave us icons on thedesktop and a rebuildable Start button, but they forgot to include OLE objectsin the tray and truly customizable frames on the desktop. Microsoft has saddledus with a filing system approach to My Computer etc., and hasn't provided commondialog boxes that users can repaint and rebuild.
Microsoft planned to use the OCX object model to let the shell host rawobject servers (so you could mount running applets within the taskbar, forexample). Unfortunately, this step hasn't happened. Worse still, you can't applyOLE automation to the desktop (you can apply API calls to the shell to make itperform specific tasks, but building these calls in VB as part of a corporatedesktop solution is difficult).
Microsoft made big promises when it added the Win95 shell to NT, but ithasn't delivered. NT 4.0 is in sync with Win95, but I think the baby's beenthrown out with the bath water. The shell that Microsoft added to NT 4.0 isclunky and not very clever. For example, under NT 3.51, you can click on anyapplication window and know that it will get immediate attention--responsivenessis not an issue. With NT 4.0, the desktop shell is a much larger active process.If the shell becomes busy, NT 4.0 can tie up your system for several seconds.
Microsoft's port of the Win95 code onto the NT platform also makes a poorshowing. For example, try dragging two unrelated NT 4.0 directories to theRecycle Bin at the same time or copying some files in one place and deletingthem elsewhere. The shell won't let you delete files while you create new oneson the desktop. Microsoft has sacrificed NT 3.51's instant responsiveness on NT4.0's low-rent solution. NT 4.0 is not multithreaded enough and can't spawnmultiple shell tasks simultaneously.
As a piece of code, NT 4.0 needs work, especially when you consider thenext step in its evolution. Microsoft's Active Desktop (AD), the new name forthe Internet Explorer (IE) 4, is a desktop shell and will run as a new layer onthe desktop. It will feed Web information straight to your desktop. AD is late.Only last summer, Brad Silverberg, senior vice president of Microsoft'sapplications and Internet client group, told me that AD would be out during thefourth quarter of 1996. Just before Christmas, Microsoft promised AD would be inbeta by the end of the year. Both deadlines have been blown away.
Consider the ramifications of Microsoft's promise for a user-definabledesktop. To implement this new UI, you need a form painter and a desktop thatcan host OLE objects (NT 4.0 provides neither). In one leap, the AD gives aclear solution to the problem. Because AD will be based on HTML that youdownload from the Web, maintaining the desktop will be simple. You will be ableto place ActiveX controls in the HTML stream and build very complex andinteractive desktops that provide real information feeds to the user. The ADwill also feed data back on networked servers.
The use of HTML-based forms and ActiveX controls for the AD is amasterstroke. At once, this combination integrates both public (Internet) andprivate (intranet) feeds into one seamless environment. So taking intranet feedsfrom corporate data servers and integrating them with public news feeds, forexample, provides the possibility of the definitively rich UI experience.
To provide a dialog-oriented version of the AD, Microsoft is releasing analternative forms engine, Forms 2, with Office 97. I believe this engine iscloser to the original Cairo forms engine for several reasons. First, it ishighly OLE automatable. Second, a senior Microsoft employee told me two yearsago that the Cairo forms engine would be pan-application and the operatingsystem would use it. Microsoft had decided at that time to ship the Cairo formsengine with a future release of Office, and not as an operating system feature.
The Forms 2 engine is extremely powerful. It can host any ActiveX control,and the instantiation time is fast once the core engine is loaded and running.Brad Silverberg also told me that the Forms 2 engine's form definition languageis actually an elementary HTML format, and that future versions of the formsengine will use raw native HTML format instead. This change will bring the formsengine in line with the IE 4/AD forms definitions.
The NT 4.0 desktop, although a component of Cairo, is not the configurabledesktop that Microsoft promised--it's merely a stepping-stone. Microsoft couldhave added the forms engine to the operating system to fulfill its promise;instead, the company has side-tracked the forms engine into Office 97. Going forthe full-blown IE 4/AD solution is, without question, full and complete deliveryof Microsoft's promise. You can expect to see this solution during the firsthalf of 1997.
Distributed Objects
Cairo's implementation of objects is a mix of delivered code and undeliveredpromise. OLE is here, it's now, and it's stable. Microsoft can choose amongseveral object implementation models for Cairo--the original OLE model, theapartment threading model from NT 3.51, and the free thread model from NT 4.0.Each model gives the object server more control over how it serves multipleclients concurrently.
OLE development has become progressively easier over time. Coding OLEobjects used to require C++, but now you can use VB4 for building OLE automationservers and clients with easy-to-use scripting that hides the complexity of theOLE registration registry.
ActiveX developers have taken a similar approach. ActiveX development usedto require Visual C++ (VC++), but now developers can use VB5 Custom ControlEdition (VB5CCE) to create full-fledged standalone ActiveX controls. Thisbreakthrough is key to the success of the next wave of OLE development at thecore of Cairo. Don't underestimate VB5CCE's importance as a tool for creatingactive tools within Cairo's AD framework.
Getting Objects to Talk to Each Other Across Networks
DOLE, also known as Remote OLE, lets OLE clients and servers communicateacross standard network protocols and has been available since the VB4Enterprise Edition shipped about two years
ago. Microsoft built the DOLE core engine into NT 4.0.
DOLE lets a client know which machine is the OLE server in a point-to-pointconnection using routing information hardwired into the client's Registry.Unfortunately, managing and maintaining these links with any precision isdifficult. However, two different methods can give administrators more controlover these connections.
The first approach involves a centralized OLE server lookup table. Imaginehaving some black-box OLE automation servers installed on several servers onyour network. Each client is wired to a particular server. If that server goesdown, the server's clients have no way of locating other object servers, even ifthe servers are serving the same objects.
Consider the manual load balancing required to make this switchover work.If you want to load balance the object servers, each server needs to broadcastits processor utilization into a centralized lookup table. When the clientrequests a particular object, the OLE system on the client checks with thecentralized information store to find out which OLE server can provide theobject the client needs and which server has the lightest load. The OLE systemcan then automatically wire the connection from the client to that server.
Microsoft hasn't delivered on the promise ofCairo, but 1997 should see it gel into a cohesive form. |
The amount of developmental effort required to make this configuration workwill probably not be big because all the pieces are in place except for thecentralized lookup table. This table is an ideal function for the forthcomingCairo DS.
The second approach is to use Web pages that call out active OLE serverswith new Active Server Page (ASP) technology on Internet Information Server(IIS) 3 and IIS 4 (code named K2) servers (for information about IIS 4, see T.J.Harty, "IIS K2 Alpha," February 1997). You can now build Web-basedclient/server solutions that have ActiveX objects running on the serverside. The server-side engine can call HTML-based Web pages or ASPs that containserver-side scripting. The engine can also call a variety of server-sidetechnologies such as a database engine (direct database connectivity using ASPsis easy to set up using Microsoft's powerful Visual InterDev toolset--forinformation about Visual InterDev, see T.J. Harty, "Microsoft VisualInterDev 1.0, Beta," March 1997). All the future administration consolescreens for NT Server will go over to ASPs.
With well-designed client-side HTML pages, server-side objects, andseamless database connectivity, you can rewrite a traditional application into aserver-based ASP using ActiveX controls as necessary on both the client andserver to provide the complex wrapped functionality. I'm considering rewritingsome of our VB-based client/server database applications to ASP-based HTMLintranet applications. This ability has to be a delivery of the mind-set andthought processes behind Cairo.
Storage Technology
Cairo has always promised several new developments in storage technologies.The first is a full-blown content indexing engine to let users locate filesanywhere on their networks. Microsoft incorporated the Cairo indexer engine asan ISAPI application that's available now as the indexer engine for IIS 2 andabove. This high-performance engine allows full searching of the custom documenttags I described in my article, "Exploring Cairo: Object File System,"November 1995.
To make a searchable tree, you need a way to span multiple machines. NT'sDistributed File System (DFS) has been in beta for a while (for informationabout DFS, see Sean Deuby and Tim Daniels, "DFS: A Logical View of PhysicalResources," December 1996), but the real product will be Fault TolerantDFS. Fault Tolerant DFS lets you create one large tree that spans clients andservers in your network. Obviously, such a tree is ideal for the indexer engine,and I expect we'll see more and more users leveraging this system in the future.
The final breakthrough in Cairo storage technology is the granddaddy of OLEstorage, Structured Storage (SS) and the Object Filing System. Unfortunately,development on this front has gone quiet. However, Microsoft has notablyimproved SS in Office 97. For example, Word now allows multiple documentversioning within one file, and many applications now allow concurrent read andwrite. I've heard that Microsoft's OFS, the set of server-side extensions toNTFS that lets it work with structured storage in a client/server fashion, isstill under development but will see the light of day this year.
Directory Services
In addition to distributing objects and applications, you need a way tolocate everything. Although Novell released its NetWare directory services (NDS)as part of NetWare 4.0, it failed to bring DS to the mainstream (for informationabout NT and NDS, see Craig Zacker, "Windows NT and NDS," March 1997).Like Novell, Microsoft also had the people, talent, and money to bring aworld-class DS system to NT. However, Microsoft didn't have the incentive tomove away from the traditional NT domain security model until the company coulddecide how such a new DS should work.
Microsoft began developing a new DS paradigm on an X500 DS system forCairo. The company put this technology to use in Exchange Server. But as theInternet grew in prominence, the need to support TCP/IP and Internet Domain NameSystem (DNS) became critical. So the Cairo DS changed shape into the LightweightDirectory Access Protocol (LDAP)-based solution. So, at least from the DS pointof view, the Internet and Cairo worked hand in hand: The Internet helped pushthe mind-set change necessary for us to benefit from the Cairo mentality.
DS is X500 and DNS based, replaces the NT Domain Security model, and willoffer far more information and storage capabilities than NT's DS. Cairo's DSwill be scalable to very large systems and offer very fine granularity. Justimagine a DS aimed to take on the Novell NDS and win, and you get the rightidea. The new DS surfaces a huge number of properties about users, machines,processes, and so forth that you can browse from anywhere using ASP-based Webservers. The IIS 3 platform is key to the configuration and management of thenew NT 5.0 directory, which you manage with ASP pages hosted in IIS 3 or IIS 4and that the client views with a Web browser.
Under the new DS, a user has properties such as telephone number, location,and department. Now you can build rich information stores that aren't RDBMSbased, but that you can browse using whatever tool you like, such as a Webclient or database viewer.
Exchange Server wrapped the Cairo Mail promise into a product complete witha grotesque forms engine and an absurd storage solution. This product has manyCairo DS and NT 5.0 DS features. It is X500 based, with a rich DS that Microsoftoriginally designed for NT; it understands Internet mail; it has a rich objectstore; it supports OLE objects; and in many ways, it is a conceptualization ofCairo's original aims. But compare the scope of Exchange Server with the scopeof the current Cairo plans, and the new 1997 solution is obviously going to makethe 1994/95 Exchange Server look weak at the knees.
I won't dwell on NT DS here, for a couple of reasons. First, the code wehave today is still an alpha build running on NT 4.0 alongside the existing NTDS system. Second, many of you will already have the NT 5.0 DS and ASPs becauseMicrosoft distributed them as part of the December Microsoft Developer Network(MSDN) release, at least for Universal subscribers. Finally, the best place tostart thinking about the NT 5.0 DS is not with the code, but with the OLE DSwhite papers on Microsoft's Web page athttp://www.microsoft.com/msdn/sdk/techinfo/adwp.doc. You see, all the interfacesinto the new DS will exist as OLE automation interfaces. This integration willmake leveraging the new DS from within any application you like or from within aserver-hosted ASP client/server solution easy. You can expect to see the finalNT 5.0 DS ship with the NT 5.0 product, possibly in 1997, depending on how thetesting goes.
Are We There Yet?
In some respects, we have lots of Cairo here today. Some parts are in beta,and others are in alpha release or still haven't seen the outside world.
Although we might have not yet reached the mythical Cairo and have beensidetracked with layovers in London, New York, and Paris, the destination cityis now clearly within site. The journey has been very long indeed.
The best part of the trip is that the vision of Cairo is still intact. Someof the methodology has changed--we could not have envisioned the use of HTML asa page description language, for example, but you can't deny that we needed sucha language, and HTML will do nicely. Nor could we have envisioned the rise inTCP/IP, but we needed a globe-spanning networking protocol for Cairo, and TCP/IPand DNS are up to the task.
When you spin in the sidetrack distractions of getting NT into shape andbringing together all the OLE technology and development tools required tosupport the Cairo vision, you soon see that Cairo was never going to be a mereproduct. It is actually the culmination of a lot of work, all pushing in roughlythe same direction, lasting for many years. And Cairo isn't really a destinationby itself. Once we get into serious OLE/ActiveX control development andcan seamlessly distribute these controls between servers and clients, we willhave achieved the final goal of moving from a file and print-share network modelto an information-share model. We will have also expanded the scope of this newinformation model to encompass the whole world.
Yes, Cairo's late. Two years ago I thought Microsoft had lost its way andhad given up any hope of turning its vision into a reality. The Internet gaveCairo a kick start, but also made the marketplace lurch out of its slumber. Willit work? It has to.
RELATED ARTICLES IN WINDOWS NT MAGAZINE
Jon Honeyball,
- "Exploring Cairo: Object File System," November 1995
- "Exploring Cairo: Forms Database Engine," January 1996
- "Exploring Cairo: Remote OLE," April 1996
About the Author
You May Also Like