[ Previous | Next | Contents ] ... copyright 1996 George North. Frozen in time 1-Dec-96

Ubiquitous Software: An Information Network Paradigm



Chapter 2.
Another Paradigm


"Networking technologies, developed during the '60s and '70s and very well grounded in the research community, were completely ignored by the PC industry -- only to be rediscovered in the past few years."
Douglas C. Engelbart



This chapter takes note of the fact that moving from the industrial age to an information age will require that most of us to be lifelong learners. Computer skils will be as necessary as reading, writing and arithmetic. document-centric software engineering is proposed as a model that can make the goal of universal computer literacy easier to reach.

A paradigm is a guideline that serves as a pattern or model. From the standpoint of computer/user interface (CUI)(1), the current paradigm in Software Engineering is application-centric and architecture-dependent. This model of computing has existed in its current form since ENIAC, the first programable electronic computer of fifty years ago. To be computer literate is to understand this paradigm and take advantage of it to perform useful work. For much of the past fifty years, very few people were required to be computer literate.

Literacy, the ability to read and write, is a necessity of modern society. Computer literacy is quickly becoming as necessary. The telephone is an important technology in modern society, but telephone literacy is not an issue. Becoming telephone literate is easy. For many people, becoming computer literate is difficult. Like telephones, computers will pervade our lives. In the "Information Age," we are quickly moving towards a new paradigm where entertainment, education, and business will use information networks. We will use them not only for connectivity and transportation, but also for information services. Computer literacy benefits everyone.



application-centric, architecture-dependent

application-centric software has a predefined feature set. Before anything, users must choose an application to use. Next, it is launched, work is performed, maybe documents saved, finally that application is terminated.

architecture-dependent software is closely coupled to a particular computer architecture and its related operating system. Even when applications are available for multiple architectures, users are required to buy and install multiple copies. Choosing and using computer software solutions is tightly coupled to computer architecture.

A major goal of Software Engineering is to develop abstractions to hide complexity because, once hidden, complexity never needs to be dealt with again. Abstractions do not lessen complexity. Abstractions move complexity to someone else's domain.

Currently, computer scientists conceive of four relatively discrete "levels of abstraction" in a working computer. At the lowest level is the hardware, or physical component of the computer. Above that level exists the operating system, which handles much of the input, output and hardware interface. Above the operating system are the application layer and the network layer. Applications enable the user to do abstract tasks like balancing a checkbook, playing a video game, or wordprocessing an article. The network provides an infinite hard-drive for information and connections between different computers. Because the architecture of early PCs ignored their potential, network support is a patchwork of hardware and software support constructed over the last fifteen years. For some, a network is a modem connected to the phone system.

This model suffers from some important drawbacks. First, changing the choice at one level of abstraction can drastically affect the other levels. Changing to a different operating system requires new or updated applications. Long time PC owners have been through this cycle four or more times--from CP/M to DOS, to Windows 3, to Windows 95.

Second, there is an incredible amount of unnecessary redundancy built into the model. Decompiling two radically different applications, like a word processor and a spreadsheet, one will find that the applications are, at the code level, surprisingly the same. This means that twenty independent applications on a typical computer, used to accomplish twenty different tasks, is considerably wasteful.

Third, not everything fits neatly into this model. Web browsers have increased the importance of another niche in the computer ecology, wedged at the boundary between the application layer and the network layer. A program like Netscape's Navigator can be thought of as a strange hybrid, encompassing some of the functions of an application, such as enabling users to perform database queries, and some of the functions of the network, in the form of increased access to, presentation of, and interaction with information, such as email and network news.

The growth in complexity and features of web browsers is startling. Only 24 months ago, web browsers such as Lynx and Mosaic were small, machine specific applications with few features other than the ability to present static documents.


Figure C2.1:
Mosaic,
made the Web wildly popular

In the months following Netscape 1.0's release, browsers rapidly assumed more and more of the duties of the applications layer, allowing for off-line viewing and authoring of documents. Browsers assume more and more network layer applications like accessing ftp, email, and network news. The browser is engulfing more and more of the functions of the computer.

Inside the current computer paradigm, Navigator is just another feature-rich, monolithic, application-centric, architecture-dependent program. But the user interface of Web browsers provide a working example that shows the benefits of a document-centric environment. Web browsers give end users the look and feel of component base document systems. They support linking and embedding, nested containment, and some direct manipulation. The complexity of computer networks is hidden by Web browsers. Navigating from server to server, context switching, program linking are all supported using text and graphics contained within documents. Creating and maintaining documents is technology familiar to every literate person. The popularity of the Web is due in part to its document-centric CUI.

Web browsers also hide the complexity of managing persistent data. Users create, update and access multimedia data, perform complex database queries, update documents, without concern for where information sources are located, how information is secured, or how to share access with other participants. To take advantage of this, many computer vendors are now marketing a less-complex architecture model called Networked Computers (NCs).



document-centric, architecture-neutral

A paradigm shift occurs when a new or another pattern is used to solve similar problems. Information networks with their need to manage heterogenous data can benefit from another CUI paradigm. The goal is a new CUI where users can obtain services without concern for the details of the networking environment, the geographic location of the information sources, or other participants. This is an information network as easy to use as existing telephone networks.

Figure C2.2:
World Wide Web creator -
Tim Berners-Lee

World Wide Web creator Tim Berners-Lee says "The notion of having a separate piece of software called a 'browser' will disappear. A browser is something that (a) only allows you to read and not write, and (b) is a single window on the world. Instead, your entire screen should be a window on the information world. Browser and operating-system interfaces will become so interlinked that they will, for all practical purposes, become one. You won't see a browser, you will see a document. The very idea of software will become a bit more submerged. It will be seen less as a discrete entity that you go out and buy and more as a support to the objects that are part of the information space. The software will move on and off your machine without your having to worry about it. Far more people will write software than do now, but they won't think of it as creating a program. They will just be creating documents. The software needed to view and manipulate these documents will be part of the document. The openness of the Web is a powerful attraction. Everyone can not only read what's on the Web but contribute to it, and everybody is in a sense equal. There's a sense of boundless opportunity."(2)

Enormous efforts are needed to turn Berners-Lee's dream to reality. Software developers need to change their application-centric mindset. I propose Ubiquitous Software (U_S), a new paradigm for software engineering. A new paradigm changes the way we think about problems and provides another framework.

This paradigm is not only a set of CUI guidelines, it defines the procedure to develop document-centric, network aware software. This paradigm is not to replace application-centric models; it is in addition to that methodology. It is especially useful in the development of products for Information Networks.

Ubiquitous Software environment is built up with a set of existing technologies:

  1. Object-oriented architecture-neutral programing language such as Java.
  2. Reusable components such as JavaBeans
  3. Document containers such as OpenDoc, OLE, ActiveX, and VLPs
  4. Information Network.

U_S is built into document containers with object-oriented reusable components that are available via a pervasive network. The goal is to build generic tools for nonspecialists to use for authoring and presenting multimedia information. Users can obtain these services without concern for their geographic location. Object-oriented software engineering is the foundation technology. Reusable components provide interoperability across object languages, tools, and computing architecture. To accomplish this, a component software object model specifies standards for defining interfaces in terms of a language neutral format, an Interface Definition Language (IDL). Document containers are used to hold related components. Containers provide the context for components to be arranged and interact with one another. They not only hold software components, they provide a directory structure for heterogenous data. Containers can also be components. This kind of recursive definition provides a powerful design, abstraction, and implementation environment.

Ubiquitous Software is a paradigm for building Information Network infrastructure. Chapter 3 describes the layers of document-centric Software Engineering.




1. CUI, computer user interface, should not to be confused with graphic user interface (GUI), CUI is all aspects of interaction between user and computer hardware, software, and network.

1. The Web Maestro: An Interview with Tim Berners-Lee, The MIT Technology Review, July 1996
Annotation: Anniversary Issue, 50 Years of Computing




[ Previous | Next | Table of Contents | Top ]