[Contents] [Previous] [Next]

Application systems

All this has resulted in the large operating systems and large applications that dominate the market today. In effect, application developers are pushing down into the domain of system software, spending more and more energy filling in the pieces they need to build advanced applications. At the same time, system software designers continue to expand their application libraries to meet new user demands, pushing up into the application domain. As the system expands, it becomes more difficult for proliferating teams of software engineers to make all the pieces work together seamlessly, so costs and time to market keep increasing, especially for multiplatform development efforts. Complex new system solutions don't address the portability needs of distributed applications.

It's as if system software engineers have built a wonderful house of cards as high as it can possibly be built. Now only a few gurus have hands steady enough to reach into the interior and change something without knocking the whole structure down. And if you can't get a guru when you want to insert a new card, you have to hire armies of people to hold all the cards steady.

The tension between the needs of developers and the increasing complexity of operating systems is leading in the 1990s toward a new category of system software that Taligent calls an application system, as suggested by the right side of Figure 1. Instead of requiring programmers to incorporate system-related code into their programs, an application system provides a comprehensive set of integrated application and distributed services capabilities, freeing the programmer to concentrate on code related to a single application's problem domain.

Environments such as HyperCard for the Mac OS, IBM's CICS , Lotus Notes, and Smalltalk each resemble certain aspects of an application system, because they allow application developers to create applications without necessarily using the underlying operating system directly. Although the lines between these application environments and their underlying operating systems aren't always clear-cut, they provide many default behaviors that save application developers time and effort and ultimately benefit users as well.

Unlike any of these precursors, however, a comprehensive application system must facilitate the rapid construction of full-featured distributed applications for deployment across heterogeneous peer-to-peer and client-server environments. In addition, the application system should provide for a high degree of interoperability among applications--both those built with the application system and existing applications running locally or remotely on the host operating system.

Traditional operating systems like those introduced in Figure 1 abstracted the underlying hardware for application developers, and in some cases, such as the UNIX" system, allowed the applications to be portable across different hardware platforms. Taligent's application system abstracts the underlying operating system for application developers and thereby allows applications created with those abstractions to be portable across different operating systems.


[Contents] [Previous] [Next]

Addison-Wesley Publishing Company, Copyright©1995 by Sean Cotter and Taligent,Inc. All rights reserved.