Windows Interface Source Environment (WISE)

Ramesh Parameswaran

January 1995

For more information on WISE/UNIX, contact Ramesh Parameswaran at (206) 936-2154.
For more information on WISE/Macintosh, contact Bart Wojciehowski at (206) 936-5278.

Overview

The Microsoft® Windows® Interface Source Environment, known simply as "WISE," is a licensing program from Microsoft to enable customers to integrate Windows-based solutions with UNIX® and Macintosh® systems. If you are developing applications simultaneously for the Windows operating system family, UNIX, and Macintosh platforms, WISE software development kits (WISE SDKs) will help make your job easier by significantly reducing development and maintenance time. WISE SDKs remove the need for developers to learn multiple application program interfaces (APIs). With WISE SDKs, developers can write for a standard, consistent, and well-documented set of APIs and leverage their solution for the Windows family, UNIX, and Macintosh platforms.

WISE emulators run existing Windows-based applications unmodified on UNIX and Macintosh systems. WISE emulators make thousands of Windows-based applications available to users on UNIX and Macintosh systems. With WISE emulators, users can purchase inexpensive Windows-based applications off the shelf and use them on UNIX and Macintosh systems.

WISE SDKs leverage a developer's knowledge of Windows for UNIX and Macintosh platforms. WISE emulators maximize investments in inexpensive, shrink-wrapped Windows-based applications for UNIX and Macintosh systems. WISE helps MIS managers reduce costs for software development, maintenance, and training.

The WISE Solution: Compatibility with Macintosh and UNIX Systems

Users on UNIX systems who need applications such as word processors and spreadsheets either buy expensive UNIX applications or a PC and PC-based applications. Users who buy a UNIX application are restricted to using the application only for that particular UNIX system. Users cannot change over to another UNIX system of their choice and still use the same application they bought earlier.

Independent software vendors (ISVs) of Windows-based applications do not readily port their applications to Macintosh and UNIX systems because of the huge differences between Windows and the other systems. ISVs selling native UNIX applications have the burden of writing to operating system APIs differing from one UNIX system to another. In addition, the binaries of the applications written for one vendor's UNIX system are not portable to another vendor's UNIX system.

Corporations typically use a wide variety of platforms and therefore need applications to run on multiple platforms. Corporate developers in such a multiplatform environment either develop applications separately for each platform or develop applications for one platform and manually port the applications to the other platforms. Such developers have to be concerned with the differences between the Windows, Macintosh, and UNIX operating systems as well as the differences between the several UNIX systems themselves.

Using Windows-Based Applications

Previously, developers resorted to the complex task of manually porting applications to enable users to use the same application on different platforms. With an increasing number of users needing access to a wide variety of platforms and applications, there is an increasing demand for a way to run applications on multiple platforms easily and enable users to choose applications independent of platforms. The increasing pressure in corporations to control costs further accelerates the demand for compatible applications. The availability of more than 10,000 high-quality, inexpensive, shrink-wrapped Windows-based applications makes them popular applications among users.

Writing to Windows APIs

The lack of a consistent set of APIs among the different versions of UNIX systems makes it difficult for developers to write to UNIX APIs. The Windows family provides developers with a standard and consistent set of APIs. Developers get access to technologies such as OLE object technology when they use the Windows family of products.

What Is WISE?

The Windows Interface Source Environment (WISE) is a licensing program from Microsoft to enable customers to integrate Windows-based solutions with UNIX and Macintosh systems. Microsoft has licensed the Windows family source code to Mainsoft Corporation, Bristol Technology Inc., Insignia Solutions Inc., and Locus Computing Corporation. Using the products being developed by Mainsoft and Bristol, developers will be able to write to the Win32® API and OLE on different UNIX platforms. Insignia Solutions provides a product that enables shrink-wrapped Windows-based applications to run on Macintosh and non-Intel®-based UNIX systems. Locus provides a product that enables shrink-wrapped Windows-based applications to run on Intel based UNIX systems.

WISE SDKs enable developers to write to Windows APIs and use the resulting applications on Macintosh and various UNIX systems. To get a Windows-based application running on a Macintosh or UNIX system using a WISE SDK, the application source code must be recompiled on those systems.

WISE emulators enable users to run inexpensive, shrink-wrapped Windows-based applications unmodified on UNIX and Macintosh systems. WISE emulators make more than 10,000 off-the-shelf, Windows-based applications available to users on UNIX and Macintosh systems and can increase the users' productivity. WISE emulators run binaries of Windows-based applications on Macintosh and UNIX systems and therefore do not require the source code of applications to be recompiled.

Figure 1. WISE provides open, cross-platform flexibility.

Benefits of WISE:

What's in a WISE SDK?

A WISE SDK is an implementation of Windows APIs on Macintosh or UNIX APIs. Developers can write a Windows-based application on a Macintosh or UNIX system and compile and run it using a WISE SDK. WISE SDKs are available on Macintosh or UNIX systems. A WISE SDK consists of tools to port code from a PC and libraries to compile Windows code on the Macintosh or UNIX system.

What's in a WISE Emulator?

WISE emulators enable Windows-based applications to run on Macintosh systems and on a wide variety of UNIX systems such as Solaris, SCO® Open Desktop®, and HP-UX®. If users primarily work on a Macintosh or UNIX system and need other applications such as editors, spreadsheets, personal organizers, and so on, they can buy Windows-based applications off the shelf and use a WISE emulator to run the applications on the Macintosh or UNIX system.

A WISE emulator uses the Windows-based application when the application is running and translates requests from the application into requests understood by the host Macintosh or UNIX system. If the host system's processor is not an Intel x86 processor, the emulator translates the application's instructions (which are x86 instructions) into the host processor's instructions. Because of the translation of instructions while the application is running, the application will run more slowly than native Macintosh and UNIX applications on the host system.

Choosing Between WISE SDKs and WISE Emulators

WISE emulators should be used when Windows-based commercial off-the-table software (COTS) is needed on UNIX and Macintosh systems. If good performance is required on the UNIX or Macintosh system, WISE SDKs must be used to enable the Windows-based application to run on the UNIX or Macintosh system.

When WISE emulators are used to run a Windows-based application on UNIX or Macintosh systems, access to the source code of the application is not required. Developers using WISE SDKs require access to the Windows-based application source code and must recompile the code on the Macintosh or UNIX system. An application that is run on a Macintosh or UNIX system using a WISE emulator will run more slowly than when ported over using a WISE SDK.

How MIS Managers Benefit Using WISE

MIS departments in corporations typically use a wide variety of platforms and therefore need applications that run on several platforms. With pressure to cut costs, MIS managers are increasingly faced with the need to provide more functionality to their clients at lower costs. The trend towards downsizing to new client/server systems and the costs associated with that make it difficult for MIS managers to work with the existing resources. Changes in technology are invariably accompanied by increased training costs and questions from end-users. MIS managers can use WISE to ease the transition to open systems and efficiently manage the systems in their organization. WISE provides the following benefits:

WISE Is Open

A open system must facilitate compatibility among the products of several vendors. Software systems compatible at the source level permit applications to be recompiled and run natively on a wide variety of platforms. Software systems compatible at a binary level can run out-of-the-box applications on other hardware platforms. WISE SDKs provide compatibility at the source level, and WISE emulators provide compatibility at the binary level.

Reducing Client/Server Migration Costs

While downsizing to a client/server system, MISs will typically migrate mainframe applications to a mix of heterogeneous systems. This requires expertise in all of the targeted platforms and the extra work of porting the same mainframe application to multiple client platforms. With WISE, MIS professionals can migrate mainframe software once to Windows and use WISE to run the migrated software on UNIX and Macintosh systems. In addition, MISs can choose the target platforms for migration independent of the issues involved in software migration. For instance, an MIS team without much UNIX system expertise can choose to downsize to UNIX platforms by downsizing software to Windows and using WISE to run the software on the UNIX platforms.

Reducing Training Costs

Using WISE, MIS can reduce training costs for MIS professionals. MIS professionals need to be trained only in Windows, and they can leverage their Windows training for Macintosh and UNIX systems. Because users need not learn to use different technologies, they will need less help from MISs in day-to-day activities. MIS management can thus reduce the number of help requests from users to the MIS helpdesk.

Reducing Product Cycle Time and Software Maintenance Costs

Using WISE SDKs, MIS departments can easily develop and maintain applications simultaneously for Windows, Macintosh, and UNIX platforms. Developers write only to Windows APIs and use the applications on Windows, Macintosh, and UNIX systems. MIS developers need to maintain only one code base for an application running on Windows, Macintosh, and UNIX platforms. Thus, MIS managers reduce product cycle time and maintenance costs for such multiplatform application development.

Reducing Software and Hardware Costs

The cost of personal productivity applications is kept to a minimum because of the availability of inexpensive Windows-based applications. Several MIS professionals use UNIX systems for running some applications and PCs for personal productivity applications. Such users can use WISE emulators to run the personal productivity applications on their UNIX systems. WISE thus eliminates the need for extra PCs used in this manner.

Making Communication Easier

MIS professionals can use the same applications used by senior management and the sales force, even though MISs may be working on different platforms. This helps in easier communication of information between MISs, senior management, and the sales force. For instance, MISs can download data from a database onto a UNIX workstation, read the data into an application such as Microsoft Excel running on a UNIX system, embed the Microsoft Excel spreadsheet into a Microsoft Word document using OLE, and send the data to the sales force in a presentable form. Because the sales force can use similar applications, they can easily access this information and increase their productivity.

This integration between MISs and other groups in a company is brought about by the ability to run similar applications on several different platforms.

Choosing Applications from Several Vendors

MIS professionals can choose from more than 10,000 Windows applications offered by a large number of vendors. They can run these easy-to-use applications on Windows, Macintosh, and several UNIX systems and increase their productivity.

Developing Solutions for UNIX Systems with WISE

Programmers developing simultaneously for Windows and UNIX systems can write to the Windows API and use the Windows SDK on the PC and the WISE SDK on the UNIX system. Admittedly, more programming discipline is required for such simultaneous development, but developers get the tremendous benefit of developing and maintaining only one code base. While writing code, it is important not to write code that is specific to a platform or a compiler. Because the underlying architecture of Windows and UNIX systems is different, code that uses features specific to one of the systems will not be adaptable to the other system.

Platform Differences

Source code of existing Windows-based applications is likely to contain platform-specific features that differ from those on UNIX systems, for example:

Several potential problems can be identified by compiling sources using the compiler's highest warning level and writing prototypes for all functions. By writing safe code, developers can easily adapt the application to UNIX systems.

Architectural Differences

Windows-based applications may need to be re-architected before they can be ported to UNIX systems because of differences in the basic architecture of Windows and the X Window System™. For example:

A WISE SDK provides developers with Windows libraries and tools to port Windows-based applications to UNIX systems. A WISE SDK provides the following: source code preprocessor, makefile generator, Windows libraries, resource compiler, MFC for UNIX, and online help.

Source code preprocessor

The source code preprocessor changes PC source code to make it compatible with a UNIX system. Windows uses "\" as a filename separator in a path, while the UNIX operating system uses "/". The source code preprocessor changes separators in a path name from \ to /. Files on Windows have two characters to separate lines (the end-of-line and the control-feed characters), while UNIX files use only the end-of-line character. The preprocessor goes through the PC source code files and removes the extra character from each line to make the file compatible with a UNIX system.

Makefile generator

If a software project has several files and dependencies between files, a makefile will automate the building process. If you modify a file that several other source code files depend on, the make utility will ensure that all the dependent files are recompiled. Typically, a developer would write a makefile manually, but the makefile generator automatically generates a makefile.

Windows libraries

Applications call Windows APIs implemented by the Windows libraries. The WISE SDK implements Windows APIs using X Window System and UNIX system functions. X Window System functions can be either low level window creation and manipulation functions (Xlib functions) or high-level toolkit functions (such as Motif), which provide easy-to-call functions for creating objects such as menus, dialog boxes, pushbuttons, and so on. The Motif functions are built on Xlib functions and provide the Motif interface to a user.

Figure 2. X Window System architecture

WISE SDKs offer developers a choice of enabling the resulting application to have a Windows interface or a Motif interface. If developers choose to have a Motif interface for their application, the libraries they need to use will be those that implement Windows APIs using Motif.

Figure 3. (A) Windows SDK on a PC running Windows. (B) WISE SDK on Xlib: Resulting application has a Windows interface. (C) WISE SDK on Motif: Resulting application has a Motif interface.

Resource compiler

Developers can use the resource compiler to compile Windows resources used by their applications. If a Windows-based application uses menus, dialog boxes, icons, cursors, strings or bitmaps, it will have a resource script file that specifies details of these and other associated files that store a graphic description of objects such as cursors, bitmaps, or icons. After you transfer these files to the UNIX system, you can use the resource compiler to compile these and generate the resource file. The final UNIX application will use this resource file.

Microsoft Foundation Classes (MFC) for UNIX

MFC for the Windows platform makes it easier for developers to write event-based code and spend less time on mundane work. WISE SDKs offer MFC on UNIX systems, and developers on UNIX systems can increase their efficiency by using MFC.

Online help

Programmers can port rich text format files and help instructions from a PC and use the WISE SDK help compiler to compile these and generate a help file on a UNIX system. The help engine displays the help file to a user. Applications can use the help engine to display help to users.

How WISE Benefits Users

With the increasingly large number of inexpensive shrink-wrapped applications available for Windows, users of UNIX and Macintosh systems can save money and increase productivity by using these applications. WISE emulators provide users with a way to use these inexpensive applications on UNIX and Macintosh systems. Users can buy applications independent of platforms and can save money by choosing inexpensive applications and standardizing across platforms.

Information at Your Fingertips

Users working on UNIX workstations often need to access data from corporate databases, organize the data, generate reports, and send the data to other people in the organization. In the past, users would first download the data to the UNIX system and either get a printout of it and pass it on to others or copy it over to a PC using some networking software. The user would then read the data into an application such as Microsoft Excel and send the data over to other users. With WISE on the UNIX system, users can download the data, run an application such as Microsoft Excel on the UNIX system itself, and read in the data. Applications like Microsoft Word can embed the Microsoft Excel spreadsheet using OLE and make the data more presentable to others. Users can run a Windows-based mail application on the UNIX system using WISE and send the data over to other users.

Similarly, clients of an MIS department can now easily communicate data to the MIS department independent of the platforms used by MIS. The key to this easy information exchange is that the applications used by everyone are similarly independent of the platform used to run the applications.

Current Status

WISE SDKs

MAINWin

MAINWin from Mainsoft implements the Windows APIs on UNIX systems and provides tools for migrating PC source code to the UNIX systems. MAINWin runs on the following platforms:

Sun® SPARC™ Solaris 2.3 or later X11 R5
Sun SPARC SunOS 4.1 or later X11 R5
HP® 700 HP-UX® 9.0 or later X11 R5
IBM® RISC System/6000™ AIX® 3.25 or later X11 R5
Silicon Graphics® IRIX 5.1 or later X11 R5

Customers have the option of running Windows-based applications on the UNIX systems and having either a Windows interface or a Motif interface.

MAINWin provides an implementation of MFC on the SunOS, Solaris and HP-UX platforms. Customers can transfer Windows resource scripts and resources and use MAINWin's resource compiler. MAINWin provides a help compiler to compile rich text format files and a help engine to display help files. OLE support will be available in future.

For further information contact Mainsoft Corporation at (800) MAINWIN.

Wind/U

Wind/U from Bristol is a WISE SDK that runs on the following platforms:

Sun SPARC Solaris 1 (SunOS 4.1.3) X11 R5/Motif 1.2
Sun SPARC Solaris 2.2 (SunOS 5.2) X11 R5/Motif 1.2
HP 700 HP-UX 8.0 X11 R4/Motif 1.1
HP 700 HP-UX 9.0 X11 R5/Motif 1.2
IBM RS 6000 AIX 3.2 X11/R4/Motif 1.1
Intel x86 SVR4 X11 R4/Motif 1.1

Unlike MAINWin, Wind/U runs on top of Motif and provides customers with a Motif interface. Wind/U provides a resource compiler, HyperHelp (a help engine that allows users to maintain the same help files for both the Windows and UNIX platforms) and Xprinter (a PostScript® and PCL® printer library with a common graphics programming interface). OLE support will be available in future.

For further information, contact Bristol Technology Inc. at (203) 438-6969.

Both Mainsoft and Bristol will provide Win32 API support on UNIX platforms in the future. Microsoft provides the Win32 APIs on the Macintosh through the Visual C++™ development system.

WISE Emulators

Softwindows

Softwindows from Insignia emulates most Windows-based applications that run on the following platforms:

Hewlett-Packard® PA RISC HP-UX 9.0+
Sun SPARC Solaris 2.x+, SunOS 4.1+ or Solaris 1.x
IBM RS/6000 AIX 3.2.4+
IBM PowerPC™ AIX 3.2.5+
DEC® Alpha AXP™ OSF for DEC Alpha AXP
Silicon Graphics IRIX 4.0.5 or IRIX 5.1

For more information, contact Insignia Solutions at (508) 682-7600.

Merge

Merge from Locus runs on Intel-based (80386 and above) UNIX systems and emulates Windows applications on the following platforms:

SCO UNIX
UNIXWare
Solaris
UNIX implementations from Unisys® Esix, Argus, and Dell®

For more information contact Locus Computing Corporation at (310) 670-6500.

Both Insignia and Locus are working on providing Win32 emulation.