Mobile Computing Overview What does Windows 95 do for Mobile Computing?

Archived content. No warranty is made as to technical accuracy. Content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

Presented By: Bill Koszewski

Bill Koszewski is the product manager in charge of Mobile Computing for Microsoft Windows 95. Bill is responsible for investigating and communicating the ways in which Windows 95 increases the productivity of users of portable PCs, and reduces the support costs for mobile computing users.

Bill joined Microsoft in 1991. Prior to working on Windows 95, Bill was a product manager for Microsoft Project. His background is in Computer Science and Business Economics.

Microsoft® Windows® 95 is the first version of the Windows operating system to include designed-in support for users of portable PCs. Windows 95 is designed to address an apparent dichotomy in the mobile computing world: although the tasks that mobile computer users want to perform (word processing, spreadsheets, corporate applications, etc.) are the same as the tasks performed by desktop computer users, the mobile computing environment is very different. Windows 95 attempts to minimize the intrusive differences in environment to make the users of mobile computing technology more productive, and to reduce the costs associated with supporting mobile users.

On This Page

Reducing the support costs for mobile users
Increasing User Productivity
Windows 95 Mobile Design Goals
Using Docks and Port Replicators
Using Deferred Printing
Maximizing Disk Space and Battery Life
File Synchronization
PCMCIA Support
Remote Network Access
Conclusion

Reducing the support costs for mobile users

One of the major barriers to the widespread implementation of mobile computing is the cost of support. Mobile computer users are faced with a variety of challenges – different hardware, changing configurations, remote access requirements – that make their environment significantly more complex and significantly more expensive to support than a corresponding, stable, desktop computing environment. In addition to these inherent support costs, several technologies in the mobile area have never been well-supported by current operating systems, necessitating cumbersome work-arounds that were expensive to set up and expensive to maintain. Windows 95 addresses these issues by adding support for major mobile computing support challenges.

Remote Network Access

Windows 95's networking architecture was redesigned with mobile computing in mind. The remote network access features in Windows 95 (collectively referred to as "Dial-Up Networking") enable users and applications to exist on a remote network node as easily and as reliably as they exist on a hard-wired network node today. The goal of Windows 95 remote access is to be robust, transparent, and unobtrusive. Even though a user may be accessing the corporate network by means of a telephone and modem rather than a wire, the only differences they or their applications should ever see is a decrease in link performance (which can be managed), and an extra step or two when the network connection is first established (in order to support the dialing process and associated security). Beyond this, the procedures for using network applications and accessing network resources are exactly the same.

PCMCIA

The Personal Computer Memory Card International Association (PCMCIA, or "PC Card") form factor has been one of the most compelling recent developments in portable computing. The benefits of having network adapters, modems, disk drives, and other peripherals which fit in a shirt pocket, and of being able to switch peripherals at will, are obvious. The trouble is, the software which delivered on the promise of PCMCIA was lacking. Users and support professionals needed to understand the intricacies of Card and Socket Services (and the different flavors of these), card configuration, and so on. Once the PCMCIA devices were installed, the software did not support the promised "hot swapping" of peripherals. Windows 95 offers new, re-engineered PCMCIA support and a dynamic driver architecture which finally makes the promise of PCMCIA a reality.

Docking hardware

Many corporations are beginning to consider portable computers as desktop replacements. Instead of equipping mobile employees with a desktop system and a laptop for use when traveling, wouldn't it be nice (and cost effective!) to purchase only one machine. PC Systems vendors have attempted to accommodate this trend with ever-more-powerful portable PCs, as well as docking stations to put them in when in the office. A typical docking station or port replicator enables the user to connect their portable PC to an external monitor, mouse, keyboard, and network simply by inserting it into a dock or attaching a single port replicator device. The problem has been making the software support this operation. To get the most out of their docking hardware, users needed to understand how to change their video configuration, and perhaps how to use a multiple-configuration CONFIG.SYS boot file. Of course, someone also had to create and maintain the multiple configurations and the software used to switch between them. Windows 95 builds in support for multiple configurations, and has the smarts to switch between them on the fly as users come in and out of the office.

Increasing User Productivity

Once a user has been set up with a portable PC system, the salient issue becomes productivity. Are portable PCs delivering business benefits to users, or are they wasting time fooling around with their hardware or managing the transition between road and office? Windows 95 includes features designed to address these issues.

File Synchronization

Most portable PC users take electronic documents with them on their portable PCs. Often, these documents are copies of data that exist on the corporate network or on individual users' desktop PCs. Assuming a productive end-user edits these documents while away from their desk, they now have two versions of the same document: their edited copy, and the original copy on the network or desktop PC. On returning to the office, a diligent user should check the date and time stamps of their document against the date and time stamps of the originals, to make sure that only the most current version is kept (imagine what would happen if the customer list edited by in-house staff was suddenly overwritten with an older version from a traveling salesperson's PC). Manually checking file dates and times is a time-consuming, error-prone process. Windows 95 adds the Briefcase, which gives end users an intuitive way to manage the process of keeping data up-to-date between network servers, desktop PCs, portable PCs, and home machines.

Deferred Printing

What happens when you want to create a print job while you're on the road? Today, you most likely get an error message informing you that "the printer is off-line." The only recourse is to create a special directory to hold files to be printed later, or else to populate your laptop with sticky notes reminding you which documents to print. Windows 95 adds Deferred Printing functionality: print as you normally do; if no printer is available, Windows 95 stores your print jobs on disk until the printer becomes available again.

Maximizes disk space and battery life

Limited disk space and too-short battery life are the bane of the mobile user's existence. While the major innovations in these areas need to come from hardware manufacturers and engineers, Windows 95 does what it can to help users get the most out of their existing hardware. Windows 95 includes integrated disk compression based on the proven MS-DOS® 6.22 DriveSpace™ technology. DriveSpace adds 50-100% additional disk space to a typical machine. Windows 95 also includes new APIs for power management, which enable applications to be sensitive to the power status of the machine. For example, a power-aware application could defer disk-intensive activities when on battery power, or could automatically save data files when the battery approaches a critical power state. The goal of Windows 95's battery and disk support is to minimize the impact of these physical constraints on the productivity of the mobile user, and to enable applications to help do the same.

Windows 95 Mobile Design Goals

The features described above can be broken down into three major areas of functionality where Windows 95 was designed in relation to mobile computing: getting the most out of your hardware, keeping in touch, and staying organized.

Get the Most out of your Hardware

For most purchasers, portable computers are a big investment. Many of Windows 95's mobile computer features were designed around the goal of maximizing the benefits from today's newest technology, as well as helping to extend the useful life of previous purchases of portable computing hardware.

  • PCMCIA, Docking Support.

  • Disk Compression, Power Management.

Stay in Touch

Many mobile computer users can be thought of as being "away from the desk," and thus away from the network, email, telephone, fax, and other communications and information resources found on a physical desktop. Windows 95 has attempted to provide many of these features on the "virtual" desktop of the portable PC.

  • Remote Network Access

    Microsoft's Dial-Up Networking technology enables users and applications to access network resources in a consistent manner no matter how a connection to the network exists. Users connect to network resources the same way, and applications use the same APIs to effect a network connection.

  • Exchange Mail and Fax

    Although it is not discussed in this paper, Microsoft Exchange provides extensive remote connectivity features. The Exchange Inbox has features like Direct Header Download, which are specifically designed to improve the efficiency of interacting with a remote mail system over a slow network link. MAPI Service Providers enable Microsoft Exchange users to retrieve electronic mail from multiple different providers using the same consistent interface. Microsoft Fax support enables mobile users to send and receive facsimile documents using their portable PC and a fax modem.

Stay Organized

The nature of the mobile work environment introduces significant, time-consuming organizational challenges – many of which can be addressed through software. Windows 95 has been designed to minimize the drudgery required to work effectively in a mobile environment.

  • File Synchronization

  • Deferred Printing

Using Docks and Port Replicators

The Problem

It's hard to adapt a machine to multiple configurations using existing technology. There is no way for the software to dynamically sense what configuration it's in: docked, undocked, or otherwise. Switching between configurations requires that the machine first be pre-configured with different boot parameters for each hardware setup, and that the user choose the appropriate setup during the boot process. Changing configurations requires a complete system shutdown and restart.

Windows 95 Solution

Windows 95 includes built-in support for

  • Docking Hardware (including port replicators).

  • Multiple Configurations (in which different setups are required for the same hardware configuration).

  • Dynamically changing configurations (in which the machine is docked or undocked or hardware added or removed while the system is running).

What Happens when you Dock or Undock?

Windows 95 goes through an elaborate internal process whenever a docking or undocking event occurs. This process gives applications and hardware the opportunity to "do the right thing" during the configuration change process. A properly-equipped and -programmed system will provide a seamless interface to the user, avoid the possibility of data loss, and avoid any potential damage to hardware.

Configuration change events are handled via the normal Windows message-passing architecture. Applications and device drivers receive a variety of WM_DEVICECHANGE system messages at various stages during the dock/unlock process, and have the opportunity to give feedback to the system regarding their role in the process.

Cc768155.vg0bp(en-us,TechNet.10).gif

Configuration Change message flow.

When the user selects "Eject PC" from the Start menu, or manipulates their undocking hardware, the system responds by sending a WM_DEVICECHANGE message with a wparam of DBT_DEVICEQUERYREMOVE to every application on the system for each device that is going away. This gives each application the opportunity to either approve or disapprove the undock operation (via a dialogue with the user if required).

If any application or device responds negatively to the DBT_DEVICEQUERYREMOVE message, the system cancels the undock operation, and notifies the applications with a DBT_DEVICEQUERYREMOVEFAILED message. This signals the fact that no change in configuration will occur.

If no applications or devices respond negatively, the system sends a DBT_DEVICEREMOVEPENDING message for each device that will be removed. The effect of this message is to definitively confirm that the system is about to deactivate the device and that it will be removed from the system. The system then prompts the user to undock the machine or calls the BIOS to activate any automated undocking hardware.

Once the undock operation is complete, the system sends DBT_DEVICEREMOVECOMPLETE messages for each device that was removed as a result of the undocking operation. If any new devices have been activated (such as a trackball built into a portable PC), the system sends DBT_DEVICEARRIVAL messages to inform applications and drivers that a new device exists.

It's important to note the dynamic nature of the Windows 95 operating system. As devices are removed or disabled, the corresponding device driver software is unloaded from memory. Likewise, as new devices are inserted or enabled, the corresponding drivers are loaded into memory. Rather than requiring that a static set of drivers be loaded at boot time (as with all other operating systems), Windows 95 is able to load and unload drivers as required, while the system is running. This capability gives Windows 95 the ability to adapt to new and changing hardware configurations without shutting down.

Using Automatic Configuration

In many cases, Windows 95 detects different hardware environments and builds configurations automatically. Automatic configuration detection is supported for all Plug-and-Play compatible machines, plus many of the recent PC/docking station combinations from the leading manufacturers (if the machine's BIOS can report information on docked or undocked state, in general, Windows 95 can support automatic configuration).

On systems where Automatic Configuration is supported, no user intervention is required to build configurations. Each time the system boots, Windows 95 will check the Registry to determine if a configuration exists for the particular boot environment. If no configuration exists, Windows 95 will perform a hardware detection pass and build the appropriate configuration on the fly.

To Implement automatic configuration:

  1. Install Windows 95 in one configuration.

  2. Shut Down.

  3. Reboot in new configuration.

It is important to note that switching between different configurations requires a re-boot except on hot-dock systems. On nonhot docking and nonPlug-and - Play systems, a system shutdown is required to avoid hardware damage and to enable Windows 95 to detect the configuration change. On Plug-and-Play systems that support hot docking, Windows 95 detects the configuration change via a message from the BIOS as part of the hot dock or undock operation.

Creating Multiple Configurations Manually

It is possible to manually create multiple hardware configurations using Windows 95, just as multiple configurations could be manually created in MS-DOS 6.2. However, with Windows 95, the configuration process is much simpler, and Windows 95 takes care of managing all the associated configuration information.

You must create manual configurations when:

  • The system must respond to changes in hardware that aren't detectable through software. For example, if you had a notebook computer that you connected to a high-resolution monitor in the office, Windows 95 would not be able to detect the monitor automatically. However, you could set up two configurations (a low-res video configuration for the notebook's display panel and a high-res configuration for the external monitor), and switch between them using Windows 95.

  • Multiple configurations desired for the same hardware setup. This situation might arise when you use a portable computer in different environments. You might have different configurations that match the network settings and peripheral characteristics of each environment, even though the basic hardware (network card, display adapter, etc.) of the underlying computer never change.

To Implement Manual Configurations

  1. Right-click on the My Computer icon.

  2. Select "Properties."

  3. Click on the "Hardware Profiles" tab.

  4. Choose "Create New" and enter a name for your new hardware configuration.

Once multiple configurations exist in the registry, you will be prompted to select the desired hardware profile each time the machine is booted (since there is no way for the system to sense the changes in hardware programmatically). The first time you boot into a new configuration, you should use the New Hardware Wizard in the Control Panel to configure any new devices, or else manually configure your hardware by using the Device Manager or various control panels.

Using Deferred Printing

Deferred Printing is an example of how Windows 95 responds intelligently to a change in location (as determined by either a detectable hardware change or a manual configuration selection). With Deferred Printing, Windows 95 manages print jobs when no printer is available, storing the jobs on disk and spooling them to the print once it comes on-line. Print jobs can be stored through reboot cycles, and can be deleted through the Printers settings..

To Implement Deferred Printing

If Windows 95 has set up multiple configurations on your machine through the Automatic Configuration process, deferred printing will be implemented automatically as well. Printers which are not accessible in a given configuration will be automatically set up for deferred operation when that configuration is active. When you activate a configuration where the printer is available, the printer is reset to on-line operation and any deferred jobs are spooled.

If you wish to set up deferred printing manually for a particular printer and configuration, follow these steps:

  1. Install the desired printer using the "Add Printer" Wizard. Note that you must be in a configuration where this printer is active to install it properly.

  2. Switch to the configuration where the printer's operation is to be deferred.

  3. Choose "Settings" from the "Start" button.

  4. Choose Printers.

  5. Select the printer that you want to defer jobs for.

  6. Choose "Work Offline" from the "File" menu. The printer you selected should now be grayed out, indicating that jobs for that printer will be deferred.

Maximizing Disk Space and Battery Life

Windows 95 includes features that help users maximize the available storage space on their disk drives, and get the longest lifetime possible out of their systems' batteries. Windows 95 incorporates DriveSpace disk compression technology to address disk capacity issues, while battery power is managed in conjunction with Advanced Power Management (APM) 1.1 hardware and power-smart software.

Maximizing Disk Space

Windows 95 incorporates DriveSpace Disk Compression, the same technology used in MS-DOS 6.22. Windows 95 disk compression is backwards-compatible with compressed volumes created by DoubleSpace™ (DOS 6.0) and Stacker compression software. In Windows 95, all disk compression is handled by 32-bit protected mode code integrated into the file system. In addition to the inherent performance advantages, such tight integration with the underlying device driver code means that all compression operations are for the most part transparent to the user. Windows 95 is also much more sophisticated about the relationship between system files and compressed volumes. For example, system paging (swap) files can now reside on compressed drives.

To Implement DriveSpace Disk Compression

Backup! Before implementing disk compression, it always makes sense to back up valuable data on your disk drive. You should also delete any unneeded or temporary files to avoid wasting time compressing them.

  1. From the Start button, choose "Programs," then "System Tools," and run the DriveSpace application.

  2. Select the disk you wish to compress in the DriveSpace window.

  3. From the "Drive" menu, choose Compress.

Windows 95 will perform a compression-in-place operation on the selected drive. Initial compression of a drive is a lengthy procedure; once it is completed, your disk will appear exactly the same (no drive letter changes, etc.), but show dramatically increased free space.

How DriveSpace Works

The DriveSpace program integrates itself into the disk driver architecture of Windows 95. By doing so, it is able to re-map drive letters and re-route requests from a physical disk drive to a logical Compressed Volume File. When DriveSpace is activated, it does the following things to the underlying system configuration:

  • Drive letter "C:" (or whatever the original drive letter of the physical disk was) is reassigned from the physical disk to the DriveSpace compression engine.

  • DriveSpace associates drive letter "C:" to a specific Compressed Volume File (.CVF) on a physical disk drive. All system requests for data on physical drive C: are translated to requests to extract data from the CVF on a physical host drive and decompress it.

  • The underlying physical disk drive, or "host drive" is assigned a new letter (usually beginning with drive "H:"), which is then hidden.

It is possible to have a CVF take up only a portion of the free space on a physical disk, or to have multiple CVFs on one physical disk drive.

Maximizing Battery Life

Windows 95 helps users get the most life out of their portable PC batteries by implementing support for Advanced Power Management. Specifically, Windows 95 supports the APM 1.1 specification. Windows 95's power management support manifests itself in two ways. First, on a power-managed machine, a "Battery Monitor" utility appears on the system taskbar. The battery monitor provides a visual indication of the level of power left in the battery, and warns the user when power diminishes to critical levels.

vg1bp

Battery Meter taskbar icons: Charge Undetermined; 100% charge; 50% charge; 10% charge or less; Battery Empty.

Windows 95 also exposes power management information to applications through power status APIs and messages. Under Windows 95, applications can be aware of the system's power status, and take proactive steps to conserve battery power and prevent data loss.

How to write a "Power Smart" application

Much of the work needed to maximize battery life must be done at the application level. Windows 95 provides two API-level facilities which enable applications to be proactive in helping to conserve system power.

The GetSystemPowerStatus function

This API enables applications to determine the power status of the system they are running on, and to track the percentage of charge left in the battery. A call to GetSystemPowerStatus will tell the application:

  • Whether the system is equipped with a battery.

  • Whether the system is running on battery power or line power.

  • The percentage charge left in the battery.

This information enables applications to make smart decisions about how they use power. For example, an application might detect that it is running on a battery-powered system, and thus decide to turn off background auto-saves or file compression (both of which are disk-intensive). An application might also periodically check the power status, and prompt the user to save their work if the available power falls below 10%. GetSystemPowerStatus can be called from any programming environment that supports calls into the system dynamic link libraries (DLL) (including C/C++, Visual Basic®, and all Microsoft Office applications).

WM_POWERBROADCAST messages

The WM_POWERBROADCAST messages enable applications to notice when the system power status changes. Windows 95 generates WM_POWERBROADCAST messages when the system goes from line power to battery power (or vice versa), or when the battery level drops below 10%. Applications modify their behavior accordingly by watching for WM_POWERBROADCAST messages. For example, upon receiving notification that battery charge is dropping to a critical level, an application could prompt the user to save their work. Note that with the WM_POWERBROADCAST message, the application does not need to do anything except process the message when it arrives. When using GetSystemPowerStatus, applications must poll the system to detect changes in power state. You must be working in a programming environment such as Microsoft Visual C++™ that allows access to the Windows message queue to use the WM_POWERBROADCAST messages.

File Synchronization

The Problem

When using a portable PC in conjunction with a desktop PC or network, it is often difficult to keep local (on the portable) copies of files "in synch" with master files on the network or desktop PC, especially when these local files are edited while "out of touch" with the host system. Several scenarios illustrate this problem:

  • Imagine an executive who stores a variety of letters and documents on his or her desktop PC. The executive is equipped with a portable PC for use when traveling. While preparing for a trip, the executive copies a few documents from the desktop PC to the portable. On return from the trip, the executive copies any changed documents back to the desktop PC.

  • Imagine a salesperson who needs access to updated price lists to conduct business. Were the salesperson constantly in the office, s/he could simply access the master price list from a network server. S/he would always have access to the most up-to-date information. But, the salesperson often leaves the office, and so takes a copy of the master price list. To ensure accurate information, the salesperson must periodically remember to download a new price list or compare the date on their current price list with the date on the master network copy.

  • Imagine an attorney who is working on a contract along with several colleagues. The master version of the contract is again stored on a network server or desktop machine. The attorney leaves the office to meet with a client, and brings an electronic copy of the contract along on a portable PC, and makes some revisions while in the client's office. Meanwhile, other attorneys at the firm have simultaneously made changes to other areas of the contract. On returning to the office, the attorneys must manually reconcile all the changes to the contract to preserve the latest version of everyone's work.

A common theme in all of these scenarios is the "housekeeping" time and effort they imply. To work effectively on the road, we have executives copying files back and forth, rather than managing; salespeople minding price lists, rather than selling; and attorneys editing documents, rather than practicing law. In all these examples, the nature of the mobile computing environment is impacting the productivity of these users.

The Windows 95 Solution

To address the "housekeeping" issues associated with mobile computing, Windows 95 implements a new feature called the Briefcase. The Briefcase is a tool for reconciling multiple copies of the same file which reside in different locations. Designed to match the metaphor of a physical briefcase, the functionality appears to the user like a file folder with extra information regarding the synchronization status of files. When a file is inserted into the Briefcase, Windows 95 tracks the original location of that file and it's status. With this information, the Briefcase is able to compare local (in the Briefcase) copies of files with the originals on a remote PC or network, and automatically perform file synchronization operations.

Many synchronization operations are quite simple: only one copy of the document has changed. In the examples above, the executive would have edited the letters on his or her traveling PC, or the salesperson's master price list might have been updated on the file server. In these circumstances, the Briefcase automatically performs the needed file copy operations to bring everything up to date. In the last case, where both the local and remote copies of a file have changed, the Briefcase attempts to call the application that created the file and invoke that application's reconciliation facilities. Windows 95's OLE 2.0 implementation includes a new interface that applications can use to export their reconciliation functionality; the Briefcase uses these new interfaces to invoke reconciliation operations. If reconciliation is needed and the underlying application has not exported reconciliation functionality, the Briefcase warns of the conflict, and enables the user to select one version of the file or another, or leave the files unchanged.

Using the Briefcase

The Briefcase functionality is installed as part of a Portable installation, and a Briefcase icon is created on the desktop by default. To create additional briefcases (Windows 95 supports multiple briefcases on a system), right-click on the desktop, then choose "New" and "Briefcase". If the Briefcase was not installed as part of a portable installation and the "New Briefcase" option is unavailable, the briefcase code needed to be installed through the "Windows Setup" tab of the Add/Remove Programs control panel.

Files are added to the briefcase simply by dragging and dropping them from their original location into the Briefcase. The Briefcase automatically makes a local copy of the file and stores the relevant synchronization information. Both individual files (of any type) and entire folders may be synchronized.

To synchronize the files in the Briefcase with their originals,

  1. Establish a connection between the portable PC and the original location of the files. This connection may be established via a network adapter, docking station, Direct Cable Connect attachment, or other method.

  2. Open Briefcase. Note the "Status" column, which gives an indication of the reconciliation operations that are required.

  3. Click the "Update All" button on the toolbar. The Briefcase will display a dialog indicating the synchronization options that will be performed. To change these options, right-click on the arrow indicating the operation to be performed.

  4. When all synchronization options are correct, click on the "Update" button to start the synchronization process.

Note that the synchronization process means performing the same action on the original files was performed on Briefcase copies, and vice-versa. If a file in the Briefcase was edited, the synchronization process will attempt to perform the same edits on the original file. Likewise, if a file in the Briefcase was deleted, the Briefcase will attempt to delete the original file as well. To break the association between a file in the Briefcase and the original copy of the file, select the file in the Briefcase window, then choose "Split from Original" from the Briefcase menu.

Infrastructure Issues: How do you make the Briefcase work well?

To get the best performance and utility from the Briefcase, it makes sense to consider some issues related to your network architecture and the method the Briefcase will use to transfer data.

A UNC (Universal Naming Convention, or \\server\share) naming scheme for your network will simplify the process of tracking the original locations of files. If your network uses a remapped-drive-letter naming scheme, the Briefcase will depend on the same drive letter being mapped to the same network location each time synchronization is performed. With a UNC naming scheme, the Briefcase is able to addresses the needed server and share directly, eliminating the need to manage drive letter mappings.

The Briefcase can use virtually any manner of connection between two machines to perform synchronization. Different connection infrastructures include a hardwired network, direct cable connection, and dial-up networking.

A physical network connection via a network adapter is the best solution; it allows easy access to all servers on the network, and offers high performance, so the size of files being transferred is not of major concern.

The Windows 95 Direct Cable Connect utility is a good option when convenience and low cost are important. Direct Cable Connection enables the transfer of data between two computers using a serial or parallel cable. A Direct Cable Connection host can pass data from a client machine through to the network, enabling easy portable PC access to a larger network. However, the speed of a Direct Cable Connect link is slower than a physical network, limiting the amount of data that can be transferred.

Finally, synchronization can be performed over a Dial-Up Networking connection. This solution is best for small files or data that must be accessed remotely, since the throughput of a remote connection is limited. A Dial-Up Networking solution might be appropriate for a sales force that often needed to update small documents (like price lists or order schedules) from a variety of locations.

Briefcases on Removable Media

A special feature of the Briefcase enables it to be used to transport data between two machines that are never directly connected (for example, two desktop machines: one in the office, and one at home). The Briefcase manages the synchronization between the files on each machine, using a floppy disk or removable hard disk as the transfer medium. To synchronize files on two machines using a Briefcase on removable media, follow these steps:

  1. Create a Briefcase on the removable disk.

  2. Copy files from the original machine to the new Briefcase.

  3. Move the disk to the remote machine.

  4. Drag and drop files from the removable disk to the remote machine. The Briefcase will make synchronized copies on the remote machine's disk.

  5. Edit the files on the remote machine.

  6. Use the Briefcase to synchronize the files on the removable disk with the edited files on the remote machine.

  7. Move the removable disk to the original machine, and use the Briefcase to synchronize the original files and the updated files in the Briefcase.

By using two synchronization operations in this way, the Briefcase can manage the process of taking work home, and then updating files in the office, all automatically.

PCMCIA Support

The Problem

Although PCMCIA devices offer an extraordinarily compelling form factor, they have been extraordinarily difficult to configure and use properly. Problems with current PCMCIA software implementations include:

  • Rampant compatibility problems between cards, card services, socket services, and sockets. Oftentimes, card drivers were written to work with a particular brand of socket services software, which might or might not be the brand of software compatible with the hardware.

  • Hot swapping of PCMCIA cards was difficult, because no software infrastructure existed for dynamically loading and unloading the card drivers. Every card driver needed during a particular boot cycle needed to be loaded and in memory at all times.

  • PCMCIA services and card drivers often needed to occupy space in the below-640K memory area, severely limiting users' ability to run other software.

Windows 95 Solution

Windows 95 takes a completely new approach to supporting PCMCIA cards. Windows 95 features fully 32-bit, protected-mode PCMCIA support. Windows 95's PCMCIA support integrates the function of Card and Socket services into the base operating system. The new implementation offers compatibility with all popular sockets and most PCMCIA cards, as well as card auto-detection and installation and hot swapping through the Windows Plug-and- Play architecture. The dynamic nature of the Windows 95 operating system enables card drivers to be loaded and unloaded on the fly, thereby optimizing card support and system performance.

The improvement in functionality is dramatic: when a new card is inserted, Windows 95 identifies it, loads the appropriate driver, initializes the card, and makes it available to the system. If you insert a network card, you're logged onto the network. If you insert a disk, a new drive appears on your system. If you add a modem, you can immediately make a Dial-Up Networking connection.

Windows 95 also adds "Suspend" mode support. On a power-managed system, Windows 95 will deactivate and power down PCMCIA devices and sockets when the machine enters Suspend mode, and re-initialize all PCMCIA hardware when normal operation resumes. This helps to conserve battery life.

Implementing PCMCIA Support

The Windows 95 setup program chooses to err on the side of caution when installing the operating system. When configuring a machine with PCMCIA devices installed, Setup realizes that it will be unable to switch to the Windows 95 Protected Mode PCMCIA services if the real mode services are in use. Because users may be relying on a PCMCIA disk or network adapter to install the Windows 95 software, Setup leaves the real-mode PCMCIA support in place until the user chooses to activate the protected mode support.

This solution is implemented through the "PCMCIA Wizard" in the Control Panel. This Wizard is designed to be run once on each PCMCIA-equipped machine following the initial installation of Windows 95. The PCMCIA Wizard copies installs the new protected mode PCMCIA software, disables the real-mode PCMCIA software, and then reboots the machine, reactivating the hardware using the new protected-mode support. The Wizard ensures that the functionality of PCMCIA devices is never interrupted. Thus, it is possible to safely and reliably install Windows 95 using a PCMCIA network adapter or SCSI disk adapter.

Windows 95 PCMCIA Requirements

To function properly with Windows 95, PCMCIA card vendors must supply a 32-bit driver for their hardware. If no 32-bit driver is available, the existing real-mode support must be used. Real-mode and 32-bit PCMCIA components cannot co-exist. It is impossible to use a real-mode card drive with Windows 95's protected mode PCMCIA services. Fortunately, virtually all major PCMCIA card vendors are developing the appropriate software for Windows 95. Windows 95 is able to drive many PCMCIA devices directly, as well. For example, most PCMCIA modems can be driven directly by the PCMCIA and Unimodem subsystems – no card-specific driver is required.

PCMCIA and Older Applications

Windows 95's PCMCIA support was designed to be backwards-compatible with applications written for MS-DOS implementations of PCMCIA. In the MS-DOS world, PCMCIA software mapped devices to drive letters or COM: port designators.

In the Windows 95 world, PCMCIA devices can be addressed directly by newer Windows 95 applications. For example, all of the Windows 95 system software, like Dial-Up Networking, uses "Friendly" device names. Instead of referring to "COM2:", this software refers to the "BrandX PCMCIA Data/Fax Modem." The user is shielded from having to know the physical slot location of the card or which logical device it has been mapped to.

Behind the scenes, Port and Drive Letter mapping is maintained for most card types, such as modems and disks. This enables older software to access PCMCIA devices as they normally do.

Finally, some devices, such as network cards, are driven directly by Windows 95. Although older software may have depended on a particular card configuration which is no longer maintained, that older software can be replaced by Windows 95-based software, just as the older PCMCIA software was replaced. Again, the intent of Windows 95's PCMCIA support is to prevent any loss of functionality. Either legacy software will continue to be supported, or the functionality of the legacy software (primarily drivers, in this case) will be completely replaced by new Windows 95 functionality.

Remote Network Access

The Problem

Traditionally, remote network access software has been difficult to use, had a relatively low level of reliability, and exacted high support costs. Furthermore, it was very difficult to adapt applications to low-speed remote links. These factors combined to constrain the popularity of remote network access, and to limit its deployment, so that only people in technologically aggressive companies or who had an overwhelming business need for remote access used the technology. Remote network access required more training, more support, and more hardware. For many companies, it didn't make business sense.

At the same time, LAN-based tools such as electronic mail, client-server applications, and groupware are becoming ever more prevalent. Effective use of these tools requires easy connectivity. If your day-to-day business relies on e-mail, being unable to access email while away from your desk is a very serious problem. Likewise, many people may find it impossible to do business without access to critical client-server applications.

Windows 95 Solution

Windows 95 offers a completely redesigned approach to remote network access. Rather than being an add-on accessory, remote LAN access is built in to the Windows 95 networking architecture. Windows 95 offers a consistent connection model for network resources, whether you're connected to a high-speed network or using a slow-speed link. The user interface for creating Dial-Up Networking connections is integrated into the Windows 95 shell; there are no more separate dialing utilities. Finally, the Windows 95 network architecture supports applications that rely on network connectivity: the operating system both supports these applications by replicating the on-line environment as closely as possible when using Dial-Up Networking, and offers applications the opportunity to be network- and link-speed-aware.

Dial-Up Networking Capabilities

Windows 95's Dial-Up Networking capabilities break down into three areas. First, Windows 95 is a universal network client, with the ability to dial in to a wide variety of different servers. Second, Windows 95 maintains security across the network. Finally, Windows 95 supports a variety of connection models, to present users and applications with consistent, intuitive, easy-to-use methods of accessing the network.

Server Types (Universal client)

Windows 95 has been designed with an extensible network architecture that enables different components to be augmented and replaced at will. This extensible architecture enables Windows 95 to support a wide variety of dial-in servers. Windows 95 will ship with built in support for three major classes of servers:

  • Point to Point Protocol (PPP). Point-to-point protocol is the emerging standard for remote network access. PPP is used by many Internet service providers, and is the default protocol used by Windows 95, Microsoft Windows NT™ 3.5, the Shiva LanRover and NetModem dial-up hardware products, and many newer Unix systems.

  • Remote Access Service protocol (RAS). RAS was the protocol used by Windows NT 3.1 and Windows® for Workgroups. It is maintained for compatibility with those systems.

  • NetWare Connect protocol. This protocol is used to connect to servers based on Novell Corporation's Netware Connect product. Windows 95's support provides the same functionality as Novell's MS-DOS-based Netware Connect client software.

In addition, network hardware and software vendors can add components to Windows 95 which offer support for their products. For example, Microsoft has developed (for test purposes) a dial-up networking component which enables access to Unix machines via a SLIP (Serial Line Internet Protocol) connection.

Security

Windows 95 offers full support for network and dial-in security schemes. Just as on a physical network, Windows 95 Dial-Up Networking supports pass-through security on NT and NetWare networks. Windows 95 also supports Password Encryption for access to dial-in ports and for user authentication. Encryption support prevents clear-text passwords from being transmitted over network connections.

As part of Windows 95's networking architecture, third parties can augment the provided security services. For example, a software vendor might provide a product which offers encryption and decryption of data transmitted over remote links. This additional functionality could be transparently incorporated into the networking subsystem.

Explicit, Implicit, and Application-initiated connections

Windows 95 offers a variety of different connection models, each designed to simplify the tasks of users and application writers who need to use network resources.

  • Explicit Connections enable remote users to create a connection to a particular network. For example, a user could choose to explicitly dial a corporate network or information service, and then use the resources provided by that network.

  • Implicit Connections are automatically created by Windows 95 when the user requests a network resource. For example, if a user tries to use a shortcut that points to data on a remote computer, Windows 95 will automatically dial the remote computer in order to retrieve the requested data, with little user interaction required.

  • Application-initiated Connections are, as the name implies, created by applications. If an application attempts to access a particular resource that is not on the current network, Windows 95 will automatically create a connection to the requested network so that the application's request can be fulfilled.

Point-to-Point Protocol

The latest operating systems from Microsoft, Windows 95 and Windows NT 3.5, both use Point-to-Point protocol (PPP) for their remote access software, in preference to other protocols such as RAS. Point to Point protocol is the emerging remote-access standard; it has been adopted as a communications protocol by many hardware, software, and information-services companies. To ensure openness and connectivity with a variety of systems, Windows 95 has implemented this protocol as well. If you are implementing or updating a remote access server, Microsoft recommends PPP as the protocol of choice.

One of the great advantages of PPP is that it enables multi-protocol routing. A single PPP connection can carry traffic based on a wide variety underlying network protocols. In fact, any protocol that could ordinarily be sent over a physical network connection can also be routed over a PPP connection. PPP accomplishes this feat by inserting itself at the network driver layer. Instead of sending TCP/IP packets (say) to a physical network adapter, they are routed instead to the PPP driver. The PPP driver packages the individual packets from each protocol and sends them over the Dial-Up Networking connection. On the remote machine, the PPP "packaging" is stripped away, and the original packets are routed along. So, a PPP client and server can provide remote access to virtually any network, whether it uses IPX, TCP/IP, NetBEUI, some other protocol, or a combination of protocols.

Implementing Dial-Up Networking

The setup of Dial-Up Networking is relatively straightforward. However, Windows 95's functionality in this area is rich enough that significant benefits in terms of productivity and reduced support can be realized with some additional minor customization. In summary, the steps required to implement a customized Dial-Up Networking environment are as follows:

  1. Install Dial-Up Networking software.

  2. Remote Access Wizard.

  3. Create additional connections.

  4. Define additional Dialing Properties.

  5. Create Shortcuts.

  6. Test Shortcuts & Associate with Connections.

Each of these steps is discussed in more detail in the following sections.

Installing Dial-Up Networking Software

The first step in implementing Dial-Up Networking is installing the Dial-Up Networking software and properly configuring it to run on the client computer. These tasks are performed by the Windows setup program and the Remote Access Wizard.

Install Dial-Up Networking

The basic Dial-Up Networking software is installed at the time of initial Windows 95 installation or by the "Windows Setup" tab of the Add/Remove Programs control panel. Once the Dial-Up Networking software is installed, a "Dial-Up Networking" folder will appear in the "My Computer" folder on the desktop.

Run Remote Access Wizard

The Remote Access Wizard takes care of most of the initial setup steps for Dial-Up Networking in the process of creating your first connection. Even if you will configure your systems with predefined connections (as described below), you should still use the Remote Access Wizard to properly configure the Dial-Up Networking software on each computer.

Running the Remote Access Wizard will install a modem to use for remote access, and also add the Dial-Up Adapter to the network configuration, properly adjusting all of your network and protocol settings. To run the Remote Access Wizard, open Dial-Up Networking in the "My Computer" folder on the desktop, then double-click on "Make New Connection." The wizard will lead you though the appropriate configuration steps and help you create your first connection definition. Additional connection definitions can be created by re-running the Remote Access Wizard.

Dialing Properties

The first time you attempt to use a Remote Access connection, you should configure Dialing Properties appropriate to the place that you are calling from. Unlike earlier operating systems, the TAPI (Telephony Applications Programming Interface) within Windows 95 takes over responsibility for figuring out how to operate the telephone and modem. Rather than requiring you to define a modem command string with the appropriate codes, pauses, and numbers in it, TAPI combines information on where you are calling from (contained in the Dialing Properties) and where you are calling to (contained in the connection definition), and figures out the appropriate way to dial and connect the call.

Windows 95 creates properties for a "Default Location" based on the country, area code, and other profile information you supplied when you created your first connection. Using the "Edit Locations" button found on all Dial-Up Networking connection dialogs, you can create new location profiles for the different places you call from. For example, you might create dialing properties for your favorite hotels, for airports in cities you frequently travel to, or for your home telephone and your office telephone. Windows 95 can use any set of dialing properties with any connection definition, giving you great flexibility in the types of calls which can be handled by the system.

Each Dialing Property sheet contains the following information:

  • Area code and country. Windows 95 matches this information against the area code and country of the computer you are calling to, in order to determine whether the call is local, long distance, or international. Windows 95's telephone database contains the appropriate dialing instructions and country code for virtually every country and telephone exchange in the world. Want to know how to dial Egypt from Lithuania? Ask Windows 95!

  • Outside line codes. Depending on whether the call is local or not, Windows 95 uses the information to get the appropriate type of outside line.

    Hint If you are using a phone that is directly connected to the telephone exchange, you don't dial anything to get an outside line, so leave this space blank. If you are on a PBX which takes a long time to set up an outside line, you may want to enter the access code as "9," (assuming "9" is the number for an outside line). The additional comma instructs the modem to wait a while longer for the outside line to get ready. This is one of the few places in Windows 95 where modem-specific commands like the comma are still useful.

  • Calling Card. Windows 95 is capable of dialing calls that involve the use of a telephone credit card. You must define both the access method used with the card (whether you dial a 10+code prefix or a 1-800 number, for example) and the card number itself. Calling cards are handled most successfully with newer modems that have the ability to wait for the "gong" tone, signifying that the long-distance carrier is ready to accept the card number.

Creating & Using Shortcuts

The "Shortcut" facility in Windows 95 is especially useful in conjunction with Dial-Up Networking. By creating shortcuts to commonly used network resources, you will have one consistent access method for these resources, whether you are on a physical network or using Dial-Up Networking. For example, you could preconfigure a set of shortcuts to common server locations that you (or the users you support) access frequently. Rather than needing to remember the network paths to each resource, and how to connect to the appropriate servers when out of the office, users can rely on Windows 95 to manage this information.

To create shortcuts to network resources and associate them with dial-up connections, follow these steps:

  1. Establish a connection to the desired network server or resource. In the interests of speed, use a physical network connection for this step.

  2. Drag-and-drop resources into the Network Neighborhood. Windows 95 will prompt you to create shortcuts. Note that to accomplish this step properly, you need to access the network one level up from the resource you want. For example, to create a shortcut to a particular network share, you need to access the server containing the share, then drag-and-drop the folder representing the share into the Network Neighborhood.

  3. Disconnect from the physical network (make sure that Windows 95 unloads the physical network drivers. On nonPlug-and- Play or PCMCIA systems, this may require a reboot).

  4. Open the Network Neighborhood and double-click on the shortcuts you've created. Notice that Windows 95 will present an error message and prompt you to connect by Dial-Up Networking. It is important that you successfully establish a connection to the remote network to verify that the shortcut is working.

  5. As you use each shortcut, Windows stores information on which Dial-Up Connection to use to access each network resource. The next time you double-click on a shortcut, Windows 95 will go directly to the appropriate Dial-Up Networking connection.

The result of these efforts is a consistent connection model. The rules become very simple: to connect to a network resource, double-click on the shortcut. If you are on a physical network (or have an active Dial-Up Networking connection to the appropriate system), Windows 95 will immediately resolve the shortcut and display the desired resource. If you are not connected to the right system, Windows 95 will prompt you to log into the remote server, and will then dial the computer, establish a connection, and display the desired resource – all automatically.

Implicit Connections

Underlying Windows 95's support for network shortcuts is the idea of "implicit connections." Windows 95 tries to create a connection whenever the user implies that one is needed. If Windows 95 can create the connection by a physical network, the operation is usually transparent. If a Dial-Up Networking connection is required, the user must OK the "Connect To" dialog box.

Windows 95 uses Dial-Up Networking to create an implicit connection in three situations:

  • A Network operation (such as accessing a file server) is attempted with no network active.

  • Access is attempted to a UNC name which is not on the local network.

  • Access is attempted to a remote shortcut, mapped drive, named pipe, printer, or OLE object not on the local network.

Note the last statement. Windows 95's support for implicit connections means that mapped drives, client-server applications using named pipes, and remote OLE operations (as well as shortcut use and printing) are all supported "behind the scenes" by Windows networking. All of these operations work the same from the road as they do in the office – with no intervention required on the part of the user or the application writer.

Propagating Dial-Up Settings

When configuring a large number of machines for users, it is counterproductive to repeat the process of creating new connections, defining dialing properties, and creating shortcuts on every machine. By working with the Windows 95 registry, telephone information files, and shortcut definitions, it is possible to propagate Dial-Up Networking settings to multiple machines.

Remote Connection Definitions and Implicit Connection Associations

Remote Connection definitions (the contents of the "Dial Up Networking" folder) and the associations between shortcuts to network resources and particular connection definitions, you need to move data from the Windows 95 Registry from one machine to another.

  1. Start the Regedit program.

  2. Use RegEdit to export the registry key

    \HKEY_CURRENT_USER \Remote Access

    Save the exported data to a floppy disk or network directory where it is accessible by the other machines you need to set up.

  3. Start Regedit on the machine you need to set up, and import the registry data. When you restart the computer, the data you imported will appear in the Dial Up Networking folder.

Dialing Properties

Dialing property information is stored in the [Locations] section of the TELEPHON.INI file, which is stored in the Windows directory. In this case, .INI files are used to maintain backwards compatibility with earlier telephony applications. To move Dialing Properties definitions to a new machine, copy the [Locations] section of the TELEPHON.INI file, and replace the entire [Locations] section in the new machine's TELEPHON.INI file with this information. If you want all telephony information (including calling cards and other data) to be transferred to the new machine, you may copy the entire TELEPHON.INI file.

Caution: Do not copy individual lines from one TELEPHON.INI file to another. At the least, move the entire [Locations] section.

Network Neighborhood Shortcuts

Network Neighborhood shortcut definitions may be copied between machines like any other file. They are stored in the \NetHood subdirectory off the main Windows 95 directory. Or, you can simply drag and drop the shortcut definitions out of the Network Neighborhood. Note that you must also transfer the shortcuts' associations as described in "Remote Connection Definitions and Implicit Connection Associations" (above) for the shortcuts to work properly on the new system.

Conclusion

Windows 95 is the first operating system with extensive mobile computing support designed in. Windows 95 reduces the support burden associated with mobile computer users, and increases the productivity of users themselves. Windows 95 helps mobile computer users get the most out of their portable PC hardware, stay in touch with other people and with information resources, and stay organized when moving between different work environments.

Where Do We Go From Here

Next steps in implementing a mobile computing program based on Windows 95 might include:

  • Participating in the Windows Preview Program. This program will give you the opportunity to test the final beta release of Windows 95 in your environment. Through the Preview Program, you can gain experience with the product and be prepared to deploy Windows 95 as soon as it is available in quantity.

  • Subscribe to the WinNews service. This electronic mail service will keep you up-to-date on the status of the Windows 95 project and supply you with important, timely product information. To subscribe, send Internet electronic mail to "enews@microsoft.nwnet.com" with "SUBSCRIBE WINNEWS" as the only text in your message.

  • Conduct a Windows 95 pilot with mobile users in your organization. To best understand how Windows 95's mobile computing support can benefit your environment, equip a small number of users with Windows 95 Preview Program systems. A controlled pilot affords the opportunity to experiment with different configurations and determine the optimum setup for your computing environment and objectives.

  • Begin Implementation planning as with the deployment of any new product, a thorough implementation plan will smooth the process of bringing users on-line with Windows 95. The Windows Preview Program and the resources listed below give you the opportunity to get a head start on planning your implementation, so you can realize the benefits of Windows 95 mobile computing that much earlier!

Resources

Introducing Windows 95 and Inside Windows 95.

Microsoft Press®

These publications provide in-depth background information on the mobile computing features and architecture of Windows 95.

Windows 95 Resource Kit

Microsoft Press and Microsoft TechNet

The Resource Kit provides invaluable technical insights and implementation hints for Windows 95. Much of the information in this paper was extracted from the Resource Kit.

Windows 95 SDK (Software Development Kit)

The SDK contains detailed information and code samples that show methods for implementing mobile computing support in applications. Power management, networking, configuration and Briefcase reconciliation support are fully described, along with other features of interest to the developers of Windows applications.