Interfaces On Trial
eBook - ePub

Interfaces On Trial

Intellectual Property And Interoperability In The Global Software Industry

  1. 392 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Interfaces On Trial

Intellectual Property And Interoperability In The Global Software Industry

Book details
Book preview
Table of contents
Citations

About This Book

This book presents the history of one of the key debates in the continuing effort to develop a legal framework for intellectual property rights in the burgeoning computer software industry. It is the first full account of the interoperability debate -the controversy over the protectability of interface specifications and the permissibility of

Frequently asked questions

Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes, you can access Interfaces On Trial by Jonathan Band in PDF and/or ePUB format, as well as other popular books in Jura & Verwaltungsrecht. We have over one million books available in our catalogue for you to explore.

Information

Publisher
Routledge
Year
2019
ISBN
9780429723612
Edition
1
Topic
Jura

1
The Technology and Industry Contexts

Courts and policy-makers have had difficulty comprehending the issues in the interoperability debate, not so much because the legal arguments are difficult—indeed, they are quite straightforward—but because of the complexity of the underlying facts: computer technology and the computer industry. Computers and the programs they execute are highly sophisticated works of engineering, science, and logic. Moreover, since the 1950s the technology has progressed at a breathtaking pace few in the industry could reasonably have predicted. Computers have become ever smaller and more powerful, while computer programs have become ever more complex and capable of solving a wider range of problems.
As the technology has evolved, so has the structure of the industry. From a state of relative anarchy in the 1950s, the industry fell under the domination of IBM during the 1960s and 1970s. During the 1980s, Microsoft and Intel emerged as standard setters. But even as these firms have presided over the industry, the industry has always been divided into discrete segments in which literally thousands of firms participate.
There are, of course, entire fields of study devoted to hardware and software engineering. Similarly, as a visit to a book store can attest, a whole literature has emerged examining the history of this industry and its colorful characters.1 This chapter can only scratch the surface of this rich and complex subject, and unfortunately must make generalizations which inevitably can be contradicted by specific instances. With these qualifications, we turn to a brief overview of computer technology.

The Technology Context

I. Computer Basics

In general, a computer system comprises two elements: the hardware and the software. We will examine these elements in turn.2

A. Hardware

The hardware—the physical computer equipment—consists of three basic elements: the central processing unit, memory, and the input/output system. See Figure 1-1. The input/output system receives information from the outside world, transforms it into electrical pulses, and then communicates those pulses to the brain of the computer. The input/output system also converts the electrical pulses emanating from the computer into a useable form and conveys them to the outside world. The input/output system includes devices such as keyboards, printers, screens, and disk drives. Because the input/output devices often are physically separated from the core hardware, they are referred to as peripherals.
FIGURE 1-1 — COMPUTER HARDWARE
FIGURE 1-1 — COMPUTER HARDWARE
The electrical pulses from the input/output system are transmitted to the next hardware element, the central processing unit (CPU). In personal computers, the CPU is contained within a single silicon chip called a microprocessor. Intel produces most of the microprocessors used in IBM compatible personal computers (PCs), while Motorola produces the microprocessors used in Apple Macintosh personal computers. The CPU has three functions. First, it accesses the computer's memory, a separate hardware element. Second, it controls the interaction among the various components of the system and the timing of those interactions. Third, it performs arithmetic and logical operations.
Computer systems possess several kinds of memory, the most important of which is main memory, also referred to as RAM (Random Access Memory). The CPU accesses the main memory directly; RAM holds the program or programs the computer is executing, along with some of the programs' data. The contents of the RAM change as the computer executes a program. Conversely, the contents of another form of memory, ROM (Read Only Memory) remain fixed, even when the user turns off the computer. Accordingly, ROM is well suited to store programs the computer uses repeatedly, such as the basic input/output system (BIOS) software. The programs preserved in ROM are known as firmware because they are stored in the silicon ROM chips and thus have attributes of both hardware and software.

B. Software

The term software refers to computer programs, which are defined as sets of instructions used in a computer to bring about a certain result. Programmers typically write these instructions in a programming language. Unlike the physical hardware which an engineer can alter only by manually reconfiguring circuitry, a programmer sitting at a terminal can revise software by changing the program's instructions; software is malleable. Further, a programmer can write different kinds of programs which in effect transform the general purpose computer into a range of different computing machines: a word processor, a spreadsheet, a tax preparer. Computer programming is a discipline within computer science, and is a form of engineering. Universities devote courses of study to teaching proper programming technique.3 It is convenient to speak of two broad types of software: operating system software and application programs.
1. Operating System Software. Operating system software consists of the operating system and related utility programs. The operating system is the computer program which controls and coordinates the interaction among the various hardware elements and between the hardware and the application programs. The operating system also allocates shared elements among the competing demands of the system. Without some form of operating system, the hardware cannot function.
MS-DOS (Microsoft Disk Operating System), is the most widely used operating system in the world.4 Like all computer programs, operating systems are comprised of instructions for the computer. The operating system typically is stored in a disk drive, and is copied into the main memory as soon as the user turns on the computer. Users refer to this loading of the operating system into main memory as "booting up" the computer. Once in the main memory, the operating system can control the operation of the computer. See Figure 1-2.
2. Application Programs. Application programs, as the term suggests, are programs designed to perform particular applications. Application programs include widely distributed packaged software such as the word-processing program WordPerfect or the spreadsheet program Lotus 1-2-3 as well as customized payroll and inventory management programs. Although application programs often perform sophisticated tasks, their complexity as programs dwarfs in comparison to operating systems. When the computer is not in use, application programs typically are stored in a disk drive. Like the operating system, application programs must be copied into main memory before they can be used. Once in the memory, the application interacts with and depends on both the operating system and the hardware.
FIGURE 1-2 — SYSTEM INTERACTION
FIGURE 1-2 — SYSTEM INTERACTION

II. Interoperability and Interfaces

As the preceding discussion demonstrates, a computer system consists of separate hardware and software elements which must interact with one another. The ability to interact—interoperability—has two principal dimensions: interchangeability and connectability. See Figure 1-3, based on U.S. Congress, OTA, Finding a Balance: Computer Software, Intellectual Property, and the Challenge of Technological Change 127, OTA-TCT-527 (May 1992) (OTA Report).
Interchangeability refers to the degree to which one product can substitute for another. WordPerfect and Microsoft Word are both word processing programs designed to function in an IBM PC environment; although they have comparative strengths and weaknesses, they are relatively interchangeable.
FIGURE 1-3 — COMPARISON OF ATTACHING AND COMPETING PROGRAMS
FIGURE 1-3 — COMPARISON OF ATTACHING AND COMPETING PROGRAMS
Connectability refers to the degree to which a product can participate in a joint activity without requiring other connected products to alter their mode of operation, Both Word and WordPerfect can connect to Microsoft Windows, but could not replace it.
The ultraprotectionists have argued that interoperability and its synonym, compatibility, properly refer only to connectability, and not to interchangeability. Limiting the term interoperability in this manner, however, ignores the reality of the computer industry, where one vendor often produces several different elements of the computer system. WordPerfect, for example, connects to Microsoft Windows, but is interchangeable with Microsoft Word. Accordingly, in this text we will use interoperability to mean both interchangeability and connectability.5
The functional characteristics of any element's interoperability with the rest of the computer fall into three categories: the controls to the element; permissible inputs into the element; and permissible outputs from the element. These functional characteristics are the element's interfaces. If the output from the application program is not a permissible input into the operating system, they have incompatible interfaces, and they cannot interact properly.
Interfaces exist throughout the computer: between hardware elements (e.g., between the CPU and the main memory); between software and hardware elements (e.g., between the operating system and the CPU); and between two software elements (e.g., between the operating system and the application program). The interfaces between hardware elements are of little concern to the interoperability debate. Hardware interfaces are, of course, critical to interoperability, but even the ultra-protectionists conceded early on that copyright did not protect hardware interfaces (this will be discussed below in Chapter 2 in greater detail). Conversely, the ultraprotectionists argued that copyright did protect software/hardware interfaces and software/software interfaces. These software interfaces, therefore, are the subject matter of the interoperability debate. Unless specified otherwise, the term "interface" in this text refers to software/hardware and software/software interfaces.6
The most frequently used analogy for an interface is an electrical plug and wall socket. If the plug has a different shape from the socket, the plug simply will not fit into the socket. To truly understand the nature of software interfaces, however, we must pursue the analogy further. A description of the shape of the socket would not completely define the interface; one would also have to describe the nature of the electrical current running through the socket. Is it AC or DC? 110 volts or 220? If the current in the wall is not a permissible input for the appliance attached to the plug, slipping the plug into the socket can have unfortunate consequences even if the plug and socket have matching shapes.
Significantly, the nature of the electrical current flowing through the socket is as much an interface as is the shape of the socket, even though the current, unlike the socket, is not a rigid object. Similarly, in some instances the interface between an operating system and a CPU will consist of specific, identifiable instructions within the operating system, but in other cases will concern the acceptable length, sequence, and format of electronic impulses. Thus, some software interfaces are like the shape of the socket, while others are like the electrical current. Regardless of whether the interface is concrete (a specific instruction) or abstract (the syntax and semantics of permissible inputs), it can be described in great technical detail in an interface specification. A program's interface specifications should be thought of as the rules governing the program's interaction with other elements of the computer. The complete set of interface specifications for an operating system can easily fill more pages than this book.
For two elements of a computer system to achieve interoperability, they must conform to the same set of interface specifications. MS-DOS, the Microsoft operating system, cannot run on Macintosh hardware because MS-DOS does not conform to the Macintosh hardware interface specificatio...

Table of contents

  1. Cover
  2. Half Title
  3. Title
  4. Copyright
  5. Dedication
  6. Contents
  7. List of Figures
  8. Acknowledgments
  9. Introduction
  10. 1 The Technology and Industry Contexts
  11. 2 The Intellectual Property Law Context
  12. 3 The Unprotectability of Interface Specifications
  13. 4 The Permissibility of Software Reverse Engineering
  14. 5 The EC Software Directive and Its Progeny
  15. 6 The Interoperability Debate in Japan
  16. 7 The Next Frontiers
  17. List of Acronyms
  18. Table of Authorities
  19. About the Book and the Authors
  20. Index