The strategic use of information technology has placed a growing burden on corporate information departments. These departments are now asked to deploy better systems at a faster pace and, at the same time, keep up with rapid advances in software technology.
Increasingly, businesses are using information system technology as a strategic tool to provide long-term competitive advantage. The growing role of information systems as an integral part of corporate strategy has been enabled by advances in computing technology, and has been driven by the dynamic nature of a global economy. As corporations adjust to increased competitive pressures, they have turned to information technology not only to reduce costs and improve workflow management, but also to deliver better products and service to their customers. At the same time, advances in personal computer hardware and software technology, such as client-server computing, have enabled information systems to meet these new needs.
The strategic use of information technology, however, has also placed a growing burden on corporate information departments. These departments are now asked to deploy better systems at a faster pace and, at the same time, keep up with rapid advances in software technology. While various development tools have helped ease the burden to some extent, most corporate information departments still face a growing application backlog, and deal on a day-to-day basis with complex programming and system deployment issues.
Object-oriented programming: not the solution
The proponents of object-oriented programming (OOP) promised that this new style of programming would help solve all of these application deployment problems. In fact, C++, the most widely used OOP language, has proved to be the language-of-choice for independent software vendors developing commercial applications, and also for the architectural components of many corporate information systems. On the other hand, OOP languages have not achieved all of their promised benefits, and the vision of a world of reusable, interchangeable business objects to aide in software development and system deployment has not been achieved. In fact, many corporate developers find object-oriented programming hard to learn and even harder to integrate into existing business systems. The main concern of corporate developers is to build custom applications that meet specific business requirements, and to build them quickly and efficiently. And users focus on the quality of their applications and the extent to which these applications make them more productive and resourceful. They don't care if these applications are object oriented or not.
There is a new technology, however, that focuses on direct and tangible customer benefits, and is relevant to both users and corporate developers. Although many refer to this technology as another form of object technology, it really isn't about objects at all: it's about components. The technology is OLE, and it is transforming the software industry into a component industry, with tremendous benefits to users and corporate developers alike.
The solution: component software
To understand the power of components as opposed to objects, consider their differences. An object is a piece of software source code-or a specification that can be used to build part of an application. A component, on the other hand, is not merely a specification, it is an actual working software module. The difference is akin to the difference between a stereo component like a CD player, and the engineering specification for the CD player. The engineering specification contains complex information that is useful to engineers, but it is of little use for consumers trying to put together a home stereo system. The component itself, the CD player, is very useful to consumers and provides immediate value. OLE is a technology that allows software to be manufactured and used as components, and this makes it applicable to both users and corporate information system specialists. The time for such a technology has come, and the benefits are so extensive that it is hard to believe that the technology is just now being incorporated into mainstream software.
Why is OLE necessary?
To understand what OLE is, and why it is necessary to achieve a marketplace of component software, consider again the stereo example. Consumers can integrate different stereo components because they are manufactured to adhere to a set of standard interfaces (the stereo plugs and jacks) and a standard way to communicate with other components. OLE provides a similar set of interface standards for computer software, so that different software components, supplied by different vendors, can be connected to form an integrated solution. Each component may be programmed in a different programming language and use a different internal design, yet because each adheres to the OLE interface standard, they can be integrated with each other.
Object-oriented programming (OOP), on the other hand, falls far short of creating an efficient market where vendors can supply components that are guaranteed to work with each other. The OOP languages have merely defined a way to specify the internal details for a component, they have not provided a standard for these components to connect. As a result, all OOP objects are dependent on the implementation of other objects: they can only connect to components with which they were specifically designed to work. In addition, OLE components are prefabricated, compiled components (also called binary components), which means that users and corporate developers never see or need to understand the component's source code or implementation details in order to immediately use the component.
OLE: the direct benefits for custom
Benefits for Corporate Developers
In short, OLE enables corporate developers to buy prefabricated components from software vendors, instead of programming these components from scratch. Because OLE-enabled components supplied by different vendors can connect together, corporate developers can integrate many components into a complete business application. The result is a significantly reduced amount of programming, and a higher quality, more flexible application. Additionally, OLE enables off-the-shelf software to be fully integrated with custom business applications for the first time.
Imagine building an innovative billing system to handle new international subsidiaries by assembling 75 percent of the new application from existing components, and delivering that system in a fraction of the time it would ordinarily have taken to develop. Imagine being able to integrate this billing system quickly and easily with global network-based information resources such as database and messaging services, even though these systems may reside on a variety of different hardware and software platforms. And imagine extending the system to incorporate charting and statistical sales analysis by simply buying off-the-shelf products and plugging them into the new system. Although this might sound unattainable, OLE is making all of this possible.
Benefits for Users
For users, OLE provides a degree of application compatibility and open interoperability that has never before been achieved. Users want their applications to work together and to be consistent. The success of integrated application suites (such as Microsoftr Office) serves as evidence of this user need. OLE provides compatibility and consistency not only between applications created by the same vendor, but also between applications created by different software vendors. And this is extremely important, because most users install multiple applications on their computers, and not all of these applications are supplied by the same software company. Users can choose any off-the-shelf application that supports OLE, and immediately know that it will work with any other OLE-enabled application. For instance, OLE Documents allow different applications to work together so that users can easily create compound documents that incorporate diverse types of information. OLE Document capabilities are fully discussed later in this backgrounder.
OLE Features
The primary feature of OLE that allows software components to be connected is called the OLE Component Object Model (COM). There are many additional OLE features, however, that directly benefit both users and corporate developers. Some of the major features of OLE are listed below.
Pictured above, an accounting application uses OLE Automation to send commands to a packaged spreadsheet application to update a table of sales figures. It then uses the spreadsheet application to create a chart and automatically insert the chart object into a quarterly report
OLE Automation
OLE Automation allows an application to take advantage of services provided by other OLE-enabled applications. These services can vary widely from application to application, but they are provided through a standard object interface. The interface is used by software vendors to expose any application-specific capability through a cross-application, object-based interface. In this way, corporate developers and system integrators use traditional programming languages and development tools to write applications that access these capabilities. Today, such tools include Microsoft Visual Basic, Microsoft Visual C++, and many third-party development tools as well. Even more development tools will soon support OLE Automation programming capability.
As an example, a custom accounting application can use OLE Automation to activate a packaged spreadsheet application, fill in and format spreadsheet cells, then use the spreadsheet application charting engine to create a graph for a quarterly report. Through OLE Automation, the graph can be automatically embedded into the quarterly report before the report is printed for distribution.
As this example shows, corporate developers and system integrators can use OLE Automation to quickly assemble larger, custom business solutions using packaged, component software as building blocks. OLE Automation allows developers to easily integrate custom software with any component software, including productivity applications, packaged vertical-market applications, and any OLE-enabled application or development tool. In short, OLE breaks down the barriers between different types of software and allows any packaged or custom application to be programmed to communicate with other applications to achieve a business solution.
OLE Controls
By merging the benefits of OLE with the existing VBX architecture, Microsoft is providing corporate developers, system integrators and independent software vendors an open, standard way to receive the benefits of component-based software development. Today, Microsoft Visual Basic provides a specific class of objects called Visual Basic custom controls (VBXes). Visual Basic custom controls are an example of the benefits of component software. Hundreds of Visual Basic custom controls are commercially available, providing a wide range of services such as report writing, data access and messaging services. These controls can be obtained from many different companies and easily incorporated into any application written in Visual Basic. The VBX architecture has been rapidly accepted by developers. It was not, however, designed to be an open, standard interface.
The VBX architecture is closely tied to the Visual Basic design environment, making it difficult for existing Visual Basic custom controls to work with other development tools, applications and objects. Thus, a particular Visual Basic custom control cannot be used in multiple development environments or on different hardware and operating system platforms.
OLE Controls
Packaged applications and development tools can be integrated with OLE Controls to form business solutions. The use of component software will significantly reduce the programming effort required to deliver new systems, while increasing system quality and flexibility. OLE Controls, however, do not have these shortcomings. By merging the benefits of OLE with the existing VBX architecture, Microsoft is providing corporate developers, system integrators and independent software vendors an open, standard way to receive the benefits of component-based software development. As an extension to the existing OLE Automation interface, the OLE control architecture will allow OLE Controls to work with today's OLE-enabled applications across multiple development environments, and across different hardware platforms and operating systems. For example, users will be able to insert different OLE Controls into a database development environment to provide a range of capabilities for their database applications. These capabilities might include specialized financial modules, equation editing, scientific analysis, run-time tutorials, messaging, or any other type of capability. The same OLE Controls will also work with other development tools, such as fourth generation programming languages. Users will even be able to incorporate the controls directly into any OLE-enabled application, including productivity applications such as spreadsheets and word processors. Because they will be able to pick and choose from a wide variety of standard, interchangeable components, users get exactly the functionality they need, in a more cost-effective manner.
Through OLE Automation and OLE Controls, component software will help lower costs for IS departments. Corporations can now use packaged OLE components to reduce the amount of programming needed to deliver a custom solution. OLE Controls are a quick, simple, efficient and standard way to incorporate reusable software components into custom and packaged applications. OLE Automation is a way to integrate packaged applications into complete custom business solutions. Additionally, solutions based on OLE component software can be easily adapted and extended by simply plugging in new OLE-enabled components.
OLE Component Management
The graceful evolution of applications over time is one of the most fundamental requirements for achieving a component software market. OLE's Component Management handles the problems associated with upgrading to updated versions of software components. In upgrading a component that operates within existing applications, there are three basic requirements that must be met to ensure that the upgrade will proceed smoothly:
OLE Component Management provides robust versioning control meeting all three of these requirements. Source code libraries, compiled software modules (including dynamic link libraries) and objects created in object-oriented programming languages do not meet any of these requirements. OLE Component Management is a major breakthrough for maintaining applications over time, and is a fundamental requirement for achieving the benefits of a component software market.
OLE Documents
OLE Documents, an exciting advance for personal computing, improve the process of creating documents. OLE can also dramatically improve the content of business documents. Thus, OLE Documents not only enhance user productivity by creating a seamless computing experience, but also enable users to communicate their ideas more effectively. OLE and OLE Document services are available for the Microsoftr WindowsTM family of operating systems, as well as the Appler Macintoshr. Over 120 applications currently support OLE Document features, and hundreds more will soon be available, including applications from all major software vendors.
Creating OLE Documents
OLE Documents, like compound documents, can contain any type of information, including text, spreadsheet tables, pictures, graphics, video, sound, or any information object. The information contained in an OLE Document can be created using any supporting OLE-enabled application, such as a spreadsheet application, graphics application, or multimedia application. These applications can be supplied by different software vendors, because OLE components work together.
Embedding is one way a user can insert different types of information into a document. For instance, in a business memo that details monthly sales performance, it might be useful to include a table and a chart comparing the current month's sales numbers to sales figures from previous months. In many companies, such sales information is tracked in spreadsheets. With OLE, the user can directly embed a spreadsheet chart within a word processing document such as a business memo.
It is important to note that this sharing of information is not limited to word processing documents and spreadsheets. Any OLE-enabled application can share information with other OLE-enabled applications. For example, a user of a drawing application, such as CorelDraw (by Corel Systems, Inc.), may want to include graphics in a memo or spreadsheet. OLE allows native CorelDraw graphics to be directly embedded in documents created by other applications. Any type of information, including photographs, video clips, sound clips, charts, presentation slides, and text can be embedded into an OLE Document.
A Business Memo with Embedded Spreadsheet Data - This memo was created in a word processing application. It contains an embedded spreadsheet table and an embedded spreadsheet chart.
OLE Linking
Embedding is an easy way to create documents rich with different types of information. Another way to incorporate information in OLE Documents is to link information between documents. With OLE Linking, a document can contain information that maintains a data link to another document. For instance, in the previous example a user created a business memo with embedded monthly sales data from a spreadsheet. The user could easily use OLE Linking to link the spreadsheet table and spreadsheet chart in the monthly business memo. Then, as new sales figures are entered into the spreadsheet each month, the business memo will be updated automatically. The user can simply print the memo, and because it is linked to the spreadsheet, the memo will print with all the latest spreadsheet data.
Similarly, graphics, text, or any other type of information can be linked between OLE Documents. OLE Linking can save users a significant amount of time by automating routine document maintenance tasks. And in addition to allowing different documents to share information in this fashion, OLE Documents also offer another important feature, called Visual Editing.
OLE Visual Editing
As a user edits an OLE Document that contains different types of information, the specific tools necessary to edit the different types of information are automatically made available to the user within the context of the document. This is called OLE Visual Editing. For instance, as the user works within the text portion of a document, the word processor's menu and toolbar are visible for use. But as the user starts to edit a different portion of the document that contains a different type of information (for example a graphic), the menu and tools for editing this type of information automatically replace the menu and tools of the word processor. Now the user can edit the graphic, without ever leaving the document and switching to the graphics application. In this way the user can make changes and immediately see how they will impact the presentation.
OLE Visual Editing saves time, since users do not have to continually switch back and forth between applications to make adjustments to embedded information. Also, this document-centric notion of computing is more intuitive; users can always work in their document while OLE makes available the different application components as required. OLE components from different vendors work together to help make users more productive.
OLE Documents also allow users to edit any object in its own separate window, when desired. Depending on the size and complexity of the object being edited, this is sometimes a more effective way of editing embedding information.
OLE Drag and Drop
OLE allows users to directly exchange information between applications, without worrying about saving files to disk or converting information to different formats. By making data exchange graphical and intuitive, user productivity is further enhanced. In short, OLE Documents have no barriers-information can be moved in and out of OLE Documents and between different applications at will. An excellent example of this is OLE Drag and Drop.
OLE-enabled applications can include other types of applications such as electronic mail applications. So, to create a mail message with pictures, spreadsheet tables, or other type of information, users can simply drag that information from the source application to their mail message. In fact, with the next version of Microsoft Windows, such an OLE-enabled electronic mail client will be provided. This will allow users to easily exchange information with other users directly through mail, without worrying about exchanging files or converting data.
Three types of OLE Drag and Drop exist, as follows:
Inter-object dragging. Objects can also be dragged to other objects and dropped inside them. Objects nested within other objects can be dragged from their containing objects and dropped into another window or another container object.
Dropping onto icons. Objects can be dragged over the desktop and dropped onto system resource icons such as printers and mailboxes. The appropriate action will be taken with the object, depending on the resource the icon represents.
OLE is available for the Microsoft Windows family of operating systems, including Windows, WindowsTM for Workgroups, and Windows NTTM. Windows NT provides both 32-bit OLE and 16-bit OLE, allowing complete interoperability between 16-bit and 32-bit Windows-based applications. OLE is also available on the Apple Macintosh. This means that OLE Documents can be shared easily between these two types of computers. In fact, the cross-platform support for OLE goes beyond Windows and the Apple Macintosh- OLE is being licensed by third parties so that it can be provided on other platforms as well, such as different varieties of UNIXTM. Because of its cross-platform support, OLE is an excellent integrating technology for building business solutions across heterogeneous systems.
The Open Process
Hundreds of applications that support OLE 2.0 are either shipping or soon to be released, and OLE 2.0 won the 1993 PC Magazine Technical Excellence Award, as well as the MVP: Software Innovation Award from PC-Computing and the Technology Award for Excellence from BYTE Magazine.
OLE was refined through an open forum Microsoft calls the Open Process. Through the Open Process, Microsoft freely distributes and discusses preliminary technology specifications with hardware and software vendors, software architects, OEMs, and corporate developers a year or more before the scheduled release. They, in turn, offer alternative approaches and solutions that help refine and shape the system technology. Early access to the design process also allows independent developers to build applications that fully exploit the new technology, giving users more innovative and robust applications. Major software vendors, including Lotus Development Corporation, Borland International, Inc., Apple Computer, Inc., WordPerfect Corporation and many others participated in open design reviews for OLE. In addition, preliminary OLE specifications were distributed to more than 150 other software vendors for review and feedback. As a fully published and open specification, OLE has enjoyed tremendous industry acceptance. Hundreds of applications that support OLE 2.0 are either shipping or soon to be released, and OLE 2.0 won the 1993 PC Magazine Technical Excellence Award, the MVP: Software Innovation Award from PC-Computing and the Technology Award for Excellence from BYTE Magazine. In addition, OLE Controls won the Most Significant New Technology award at the 1994 spring Comdex computer trade show.
The Evolution of Microsoft Windows
Future versions of Windows will include integrated OLE support, extending OLE services to system services such as multimedia services, data-access services, name services, and distributed security. These OLE services will gradually become pervasive, providing easily replaceable components within the Windows operating system itself.
This evolution will protect a corporation's investments in existing software, since current Windows-based applications will continue to operate on future versions of Windows. The OLE interface will become the single standard interface not only for applications to interact with each other, but also for applications to interact with operating system services. As the object capabilities of Windows expand, existing applications will get many new object-based features for free. All existing OLE 2.0 applications, for instance, will be able to work seamlessly across a network through OLE with distributed capabilities. And existing OLE-enabled applications will support extensive drag-and-drop capabilities within the Windows user-interface.
OLE innovations that will be incorporated into future versions of Windows include the following:
The next version of Microsoft Windows (a major upgrade from Windows 3.1, code-named "Chicago"), as well a future release of the Windows NTTM operating system (code-named "Cairo"), will incorporate an object-based user-interface. This interface will treat all files and applications as objects, unifying the Program Manager and File Manager. The interface will allow users to manipulate files, programs, printers, utilities and other system resources in a consistent fashion. Users will be able to group logical combinations of objects into folders, and place frequently used objects on the desktop for easy access.
Through extensive OLE support, OLE-enabled applications will be seamlessly integrated with the Windows user-interface, supporting drag-and-drop to the desktop and between system resources. The entire Windows user interface will follow consistent OLE guidelines, making the system more intuitive and easier to learn. A new Windows help system will be OLE-enabled, as will a universal e-mail client supplied with the operating system. Additionally, most Windows accessories will support OLE. Objects such as files and system resources will have a new feature called property sheets, which will present identifying information. This information will allow users to browse and configure objects without actually opening them or having to use special system utilities.
The next generation of Windows NT will incorporate an object file system that will allow for very easy and exceptionally fast retrieval of information. Through object cataloging, a user will be able to search an entire network for all documents meeting a specified criteria. As it evolves, the next generation of Microsoft Windows NT will incorporate all of these advances, plus additional, advanced capabilities for high-end workstations (Windows NT) and server platforms (Windows NTTM Advanced Server). Windows NT "Cairo" will incorporate an object file system that will allow for very easy and exceptionally fast retrieval of information. Through object cataloging and properties a user will be able to search an entire network for all documents meeting a specified criteria. For example, a user could ask for all documents written by John Adams that contain 1994 budgeting information. Of course, there will continue to be full security to protect files and resources from unauthorized access.
Windows NT "Cairo" will also add distributed OLE capabilities. A key feature of the OLE Component Object Model is its ability to facilitate communication between components across a network. This capability will allow the seamless interoperation of OLE-enabled applications running on different machines, using a standards-based Remote Procedure Call (RPC) mechanism. The RPC mechanism, called Microsoft RPC, is based on and compatible with the Open Software Foundation's Distributed Computing Environment RPC (DCE RPC). OLE with distributed object support will require no changes to existing OLE 2.0-enabled applications, and will allow applications to be divided into components that can run remotely on different computers. This will allow OLE-enabled applications to transparently tap into the processing power available on the network.
OLE: continuing innovation
Microsoft continues to refine its programming environments, applications and system software to deliver more functionality and increased ease of use. In the future Microsoft will continue to:
Conclusion
Our goal is simple: deliver innovative, best-of-breed software based on the needs of our customers.
Today, advances in personal computing are helping corporations compete in a dynamic, global economy. Businesses, however, need new ways to deliver information systems in a faster, more cost-effective manner. OLE and component software will help businesses meet these needs. OLE is based on the Component Object Model, an object standard that allows components written by any company in any programming language to interact. OLE addresses a critical system software requirement that object-oriented programming languages do not: the need for true application interoperability-- on a single computer and across computers operating on the network.
OLE will allow corporations to use packaged, component software as building blocks for complete business solutions, lowering costs and helping information departments to work more efficiently. Furthermore, Microsoft will continue to evolve the Windows family of operating systems (Windows, WindowsTM for Workgroups, Windows NT and Windows NT Advanced Server) to incorporate advanced object capabilities through OLE. These capabilities will include distributed object support; object-based system services; an easy to use object-based graphical interface; integrated OLE Controls; and a new object file system.
Finally, Microsoft will continue to publish object specifications and garner feedback through the Open Process, ensuring the broad interoperability and availability of OLE on other platforms. Our goal is simple: deliver innovative, best-of-breed software based on the needs of our customers. By playing a leadership role in advancing OLE, we move closer to realizing the vision of Information at Your Fingertips.
For more information
For more information call the Microsoft Developer Solutions Team toll-free at (800) 227-4679. In Canada, call (800) 563-9048. Outside the 50 United States and Canada, contact your local Microsoft subsidiary. You can also contact Microsoft by fax at (206) 936-7329. Specify Developer Services Team, RWF on your cover sheet. A TDD/TT (text telephone) is available for the hearing impaired: call (206) 635-4948.
The Microsoft Developer Network
The Microsoft Developer Network is an annual membership program created to support all developers who write software for the Microsoft Windows family of operating systems or who use Microsoft products for development. Members receive technical and resource information on a regular basis through three channels: the Microsoft Developer Network CD, the Microsoft Developer Network News and the MSDNLIB Forum on CompuServer. For more information call (800) 759-5474, seven days a week, 24 hours a day.
OLE backgrounders, technical summaries, and technology comparisons can be ordered by contacting the Microsoft Developer Solutions Team at (800) 227-4679.