Interoperability.
In the early days of the telephone, several competing companies sprang
up. Each had their own telephone lines, and the customers of one
company could only make calls to other subscribers to the same
company. Businesses would often have several different telephones,
one for each company, so that anyone could phone them.
In the early decades of the twentieth century--between 1910 and 1920,
if I recall correctly--things began to change. Telephone systems were
hooked together so that anyone with a telephone could call anyone
else. History was repeated in the early days of online computing
services. Industry leader CompuServe, America Online, and Prodigy
each had their own networks, with their own content providers.
Sometimes major content providers, e.g., news organizations, would
have different keywords or commands on different online services.
Subscribers to one could e-mail only subscribers of the same service.
Then in the early 1990s, all of these services established Internet
gateways so their clients could send mail to any Internet address,
including e-mail addresses of their competitors' subscribers.
Content providers migrated to the World-Wide Web, so they were
accessible from any service.
These are two examples of interoperability, which is becoming
critically important in today's software systems. Wordprocessors,
for example, need to be able to import graphics files, and desktop-publishing
programs need to be able to import wordprocessor files. If they did not,
prospective purchasers would probably not buy them.
The need for interoperability raises several ethical issues. How can
a new software package be made interoperable with an existing software
package without violating the intellectual-property rights of the
existing software manufacturer? Is it ethical for a software publisher
to design its software in such a way that it is hard or impossible for
other programs to become interoperable with it? Does it make any
difference if the software publisher is a market leader trying to keep
new entrants out of the field? Is it ethical for a company to arrange
its hardware or software so that all competitors that desire their
products to be interoperable must pay the first company a royalty for
use of its patent? Many of these issues have been settled legally,
but ethical questions still persist.
User-interface copyright. Let us first revisit the issue
of user-interface copyright, which arose first in
Lecture 3. We found that there
are many reasons why user-interface copyright might be considered
harmful. Prominent among them was the fact that it discourages
interoperability. One of the first cases in this area was
Lotus v. Paperback Software. In 1987, Lotus sued Paperback
Software for copyright infringement because its VP-Planner spreadsheet
program had an identical user interface. Paperback had advertised
their program as "a workalike for 1-2-3 ... designed to work like
1-2-3, keystroke for keystroke. ... everything that 1-2-3 does,
VP-Planner does ..." The two programs were entirely interoperable;
VP-Planner could open 1-2-3 files and even execute 1-2-3 macros, and
vice versa. The court decided that Paperback had infringed
the Lotus copyright. It decided that the menu structure was part
of "the expression of an idea," which is protected by copyright,
rather than an idea, which is not copyrightable. The decision
noted that other spreadsheet programs, such as Microsoft Excel,
were successful despite using a different menu structure.
Moreover, since VP-Planner didn't do anything that 1-2-3 couldn't
do, the functionality of one was just a copy of the functionality
of the other.
Thus, legally it is established that a program that aims to duplicate
another program's functionality completely is an illegal copy.
Suppose the functionality is only partially duplicated? In this case,
courts have reached different conclusions. Flush from its victory
over Paperback Software, Lotus went on to sue Borland International, whose Quattro
spreadsheet program had similar functionality to 1-2-3, including
keystroke sequences, but had different menu structures and visual
appearances. The judge ruled in favor of Lotus in this case too. The
decision seemed to ignore the advantages that compatibility and
standardization bring to the computer industry. In 1988, however,
Apple sued Hewlett-Packard and Microsoft, alleging that the GUI in
their Windows and New Wave operating systems, respectively, were
illegal copies of the Macintosh user interface. Ultimately, in 1992,
the court ruled that Windows and New Wave did not infringe on the
Apple copyright, except for New Wave's file-folder and trash-can
icons. So, the legality of copying "look and feel" remains an
open question.
Gaining competitive advantage. If programs need to interoperate
smoothly to be successful, then Company A might seek competitive advantage
by making it hard for their competitors' programs to interoperate with
Company A's programs. Obviously this only makes sense if Company A is much
larger than its competitors. This could be deemed an anticompetitive
practice. In previous semesters of this course, we used to consider anticompetitive
practices in general, focusing on the Microsoft case. Now that it has
passed from the headlines, let us consider only anticompetitive denials of
interoperability.
The best known allegation of anticompetitive use of interoperability
is the Windows 98 browser controversy. In its antitrust case against
Microsoft, the Justice Department contended that Microsoft made it difficult
for users to make Netscape Navigator their default browser on Windows
98, thus contributing to Internet
Explorer's increasing market share.
Microsoft, for its part, had said that Win 98 was going to make
it easier to make Navigator the default.
If the charges against Microsoft are true, then that would be an
ethical as well as legal violation. Consumers--the public--are better
off when companies compete to produce better products. If one accepts
this premise, then from a utilitarian view, it is better to have
competition. Therefore, actions that seek to restrict free
competition are unethical. Companies may see their own self-interest
as enhanced by driving all competitors out of business, so there are
laws that prevent them from attempting to do so by "unfair" means.
Another case involving Microsoft is Sun's allegation that Microsoft
violated their license agreement by extending Java in a way that
compromised interoperability. Java is touted as a language that
permits programmers to "write once, run anywhere." Sun
sued Microsoft for extending Java to make it run better with Windows.
This meant that programmers could now write code in Microsoft's Java
that would run on Windows systems but nowhere else, thus violating the
principle that Java programs are supposed to be interoperable cross
platform. Since Windows has such a large market share, many Java
programs might have been written with Microsoft's version, eventually
outnumbering the Java programs that can "run anywhere," and thus
obviating one of the major advantages of the language. A federal
court agreed with Sun that this violated Sun's license agreement for
Java, and forced Microsoft to make its Java interoperable with Sun's.
Again, an ethical analysis might begin by considering the benefits
of interoperability, and weighing them against the benefits of
better integration with a single operating system. It would also
have to take into account that Microsoft agreed not to (or at least
Sun thought they were agreeing not to) make incompatible changes to
Java. Under this interpretation, Microsoft was breaking a promise
and thus was guilty of an ethical transgression.
Interoperability is the reason that industry standards are set. In
the computer field, a lot of standards relate to buses, because if
different devices can attach to the same bus, a system designer can
choose among competitive products in building a system. The
technology involved in the design of a bus is often patented. The American National Standards Institute
(ANSI) will not let a company holding a patent use standard-setting as
an excuse to take advantage of its competitors. If the patent owner
actively
promotes a patented invention as an industry standard, it can
expect to have limitations be placed on the exercise of its patent
rights. For example, it may be required to license the patent to
companies that implement the standard on reasonable, nondiscriminatory
terms.
In 1992, a standard was set for a new VL-bus for carrying video
information between a computer and its peripherals. Dell Computer was a member of the industry
standard-setting organization. When the standard was under
negotiation, a Dell representative signed a certificate stating that
"to the best of [his] knowledge," the standard did not "infringe on
any trademarks, copyrights, or patents" held by Dell. Then about
eight months after the VL-bus standard was approved, after the
standard had been widely adopted, Dell informed certain companies that
their implementation of the standard infringed a 1991 Dell
patent. The Federal Trade Commission called this an "unfair
method of competition, outlawed by Section 5 of the FTC Act. It
stepped in and issued a proposed consent decree that prevented Dell
from asserting its patent rights in the standard.
Reverse engineering.
Suppose you are developing a new application which needs to be
compatible with an existing piece of software from another vendor.
That vendor may or may not give you the interface specs that you
need in order to make your application interoperate. If the other
vendor is unwilling to cooperate with you, you may decide to figure
out what your program needs to do to be compatible by examining the
code for the application it needs to interoperate with.
Most applications are distributed in object-code format. Obviously
you can't work with that; you need a human-readable version. So
you decompile or disassemble it into a format you can read. You
have just made a copy, unauthorized by the vendor. Have you
violated the copyright?
No, you have probably not violated the copyright. In the case of Sega v. Accolade, the Ninth Circuit
Court of Appeals found that decompilation does not violate copyright when
there is no other way to gain access to the functional requirements for
interoperability, which are not protected by copyright. Accolade was a
developer of home computer games that wanted to expand its line to include
games compatible with the Genesis console produced by Sega. Sega was
willing to allow Accolade and other developers to develop games for its
console, but only if Sega could manufacture the games themselves. Toward
this end, they withheld information that Accolade would have needed to
develop compatible games. To discover the withheld interface requirements,
Accolade decompiled Sega's copyrighted microcode.
The Sega decision certainly makes it easier for startups in
the software field, since it might otherwise be expensive to license
competitive technology.
In other fields, which rely on patent rather
than copyright protection, it is legal to reverse-engineer competitors'
products; why should the software field be any different?
If a company refuses interface specs to those who want to produce
interoperable software, it is probably not going to be happy if they
reverse-engineer its code. So, we should not be surprised that such
companies frequently develop "lock-out" defenses to make it harder to
reverse-engineer. In the Sega case, when Accolade was trying
to reverse-engineer the code for the Sega console, Sega changed its
console to search for four bytes of data at a specific location, and
if those bytes did not match, the console would not allow the game to
operate. Accolade's engineers managed to figure this out, and
modified their games to include the required data. It was at this
point that Sega sued. Sega prevailed in district court, but the
decision was overturned on appeal.
A similar case is Atari v. Nintendo. To ensure that only
video games developed by Nintendo or its authorized licensees would
operate on its NES console, Nintendo developed a "security system" for
the NES. The system consists of two chips, one in the console and
one in the game cartridge. The two chips exchange a sequence of
values generated from a random-number seed. The console then compares
the results. If the last five digits match, the console accepts
the cartridge and starts the game. Otherwise, the game will not
operate.
Atari tried to reverse-engineer a chip that could allow its game
cartridges to work in Nintendo's console. But, initially unsuccessful,
they negotiated to become a Nintendo licensee. Unhappy with Nintendo's
terms, they continued their reverse-engineering efforts, and ultimately
produced a program that could fool the Nintendo console. Nintendo sued
for copyright and patent violation. The court sided with Nintendo.
This case was different from Sega in two salient facts:
First, Nintendo's security system was patented, and as we have seen,
independent development violates a patent but not a copyright.
Second, Atari got a copy of Nintendo's security chip's program
from the Copyright Office, on the grounds that they were a
defendant in a copyright-infringement suit involving the program.
Since no suit had been filed at that point, Atari had committed
fraud on the Copyright Office.
In this case, it was not the reverse engineering that was illegal, but
rather fraud and patent infringement. That is not to say, however,
that reverse engineering itself is always ethical. The Online Ethics Center raises a
hypothetical
case in which one device misleads another as to its manufacturer.
Serious questions arise as to whether this is ethical.
However, recent court decisions have begun to
erode
the right to reverse-engineer. Most of these decisions are based
on trade-secrecy laws or shrink-wrap license agreements. Two prominent
decisions from last year prohibited programmers from placing on the Web
programs that
unscrambled
encryption protections on DVDs, and revealed a parent's password to
the CyberPatrol Web filtering program and the list of sites blocked
by the parent. While these programs may have had nefarious intents,
programmers are worried that the trend toward outlawing reverse-engineering
may spread, especially if shrink-wrap licenses gain greater protection
under the proposed legislation known as
UCITA.
Open source. While some companies see a competitive
advantage in keeping their code secret, other companies are succeeding
by making their code publicly available. This code is called
open source.
The idea is that when code is kept secret, and only a few people
can find and fix bugs, or extend the software, progress is much
slower than when the code is made available to everyone on the
Internet to study, document and improve. This idea owes its
origin to the Gnu
Manifesto, but the movement was really started by Eric Raymond's 1997
essay "The
Cathedral and the Bazaar." Only a few months later,
Netscape
decided to make its Web browser open source. But the best example
of successful open-source development is
Linux.
To conclude this week's reading, read the three cases for open
source
("for business", and
"for customers", and
"for hackers").
Also examine the reasons why some software companies such as Microsoft
are
wary of it, and the possibility that it could
render
code vulnerable to hackers, as well as the retort that the open-source
Apache Web server has not
proved vulnerable to hackers. However, whether open source is actually
more secure is still an open question.