Apple's patent attack
HTC is not normally thought of as a Linux company; it is a Taiwanese manufacturer which provides cellular phone handsets to a number of other companies. HTC has only recently begun promoting phones under its own name; as it happens, a number of those run Android. Since Android increasingly looks like the base for some of the strongest competition against Apple's products, this suit certainly has the look of an attack against Android and not just an action against one hardware manufacturer. Indeed, Android is named specifically in both components to the attack.
There are some 20 patents named in Apple's actions. Ten of them are named in the patent infringement suit filed in Delaware:
- #7,362,331:
Time-based, non-constant translation of user interface objects between
states. Filed in 2001, this patent covers basic animated movement
of objects in graphics user interfaces; the core "innovation" seems to
be that the function for determining the object's velocity is not
constant. Apple has patented acceleration of objects on the screen.
- #7,479,949:
Touch screen device, method, and graphical user interface for
determining commands by applying heuristics. This patent was
filed in April, 2008; Steven Jobs is the first on a long list of
inventors. This patent claims the use of heuristics to determine
whether a finger movement on a touchscreen display is
vertical, diagonal, or is a "next item" selection.
- #7,657,849:
Unlocking a device by performing gestures on an unlock image.
This patent (2005) covers pretty much what it says; it's requirement
for "moving an unlock image" along the path suggests a fairly
straightforward workaround might be possible.
- #7,469,381:
List scrolling and document translation, scaling, and rotation on a
touch-screen display (2007). This one is complex, but seems to
cover the practice of "bouncing" the display when scrolled past the
end of a document or list.
- #5,920,726:
System and method for managing power conditions within a digital
camera device (1997). This is a hardware-related patent covering
the process of powering down a digital camera in response to a
low-power situation.
- #7,633,076:
Automated response to and sensing of user activity in portable
devices (2006). This is a technique for filtering out touchscreen
events resulting from putting a phone to one's ear. It requires the
existence of a "proximity sensor" to determine whether a human is
sufficiently close to the device.
- #5,848,105:
GMSK signal processors for improved communications capacity and
quality (1996) is a signal-processing algorithm meant to improve
interference rejection.
- #7,383,453:
Conserving power by reducing voltage supplied to an
instruction-processing portion of a processor (2005). This
hardware patent appears to be well described by its title; it covers a
processor which can turn off its clock and reduce its operating
voltage.
- #5,455,599:
Object-oriented graphic system (1995). By a broad reading, this
patent would appear to cover just about any graphical system which
maps between objects stored in memory and a representation on the
display.
- #6,424,354: Object-oriented event notification system with listener registration of both interests and methods (1999). The highly innovative technique of allowing one object to register an interest in changes to a second object and receive notifications is covered. This patent is owned by the "Object Technology Licensing Corporation" which is located at 1 Infinite Loop, Cupertino - strangely enough, that's where Apple is located too.
Additionally, Apple has filed with the US International Trade Commission with the purpose of blocking the import of HTC's products into the US. That filing names a different, generally older, and more fundamental set of patents:
- #5,481,721:
Method for providing automatic and dynamic translation of object
oriented programming language-based message passing into operation
system message passing using proxy objects (1994). This patent
covers sending messages between two objects in separate processes by
way of "proxy objects" which translate the message for transmission.
Remote procedure calls, in other words.
- #5,519,867:
Object-oriented multitasking system (1993) covers the entirely
non-obvious technique of supplying an object-oriented wrapper around a
procedural operating system's process creation and manipulation system
calls.
- #5,566,337:
Method and apparatus for distributing events in an operating
system (1994). Here Apple claims the technique of maintaining a
list of events and processes interested in those events, then
distributing notifications to the processes when the events happen.
Broadly read, this patent could cover Unix signals, the
select() system call, or the X Window System event
notification mechanism - all of which predate the patent by years.
- #5,929,852:
Encapsulated network entity reference of a network component
system (1998). An object is created to provide a graphical
representation of a "network resource." When the user clicks on the
representation, information about the resource is displayed.
- #5,946,647:
System and method for performing an action on a structure in
computer-generated data (1996). This technique covers
"recognizing structures" in data and allowing users to act upon those
structures. Think, for example, of recognizing a phone number on a
web page, then allowing the user to call the number or store it in a
contacts list.
- #5,969,705:
Message protocol for controlling a user interface from an inactive
application program (1997). This one covers the idea of an
interactive program forking a worker process to do some processing and
letting that worker process provide information which is shown in the
user interface.
- #6,275,983:
Object-oriented operating system (1998). Another Object
Technology Licensing Corp. special, this one covers the concept of
providing object-oriented wrappers to procedural system calls; the one
additional twist is that those wrappers are dynamically loaded at run
time if need be.
- #6,343,263:
Real-time signal processing system for serially transmitted data
(1994). A computer with a "realtime signal processing subsystem" and
a programming API allowing that subsystem to be used. Something that
looks, say, like a computer with a cellular network radio attached.
- #5,915,131:
Method and apparatus for handling I/O requests utilizing separate
programming interfaces to access separate I/O services (1995).
This patent appears to cover the idea of providing different APIs for
access to different types of devices. Something like
ioctl(), perhaps.
- #RE39,486: Extensible, replaceable network component system (2003, a reissue of 6,212,575 from 1995). Essentially, this is the technique of building objects around different network protocols so that they all appear the same to higher-level software and users.
A few of the patents are hardware-related and don't have much to do with Linux. Many of the rest, however, purport to cover fundamental programming techniques. It would appear that Apple wants to take Android out of the picture - or at least extract substantial rents for its continued existence. But many of these patents, if upheld, could have an influence far beyond Android.
Needless to say, the validity of many of these patents is questionable. Proving a patent invalid is a lengthy, expensive, and highly risky process, though; it's not something that one can automatically expect a litigation defendant to jump into. So there is no saying how HTC will react, or what sort of assistance HTC will get from the rest of the industry.
In summary: this may be the software patent battle that many of us have feared for a
long time. An outright victory by Apple could well leave it "owning" much
of the computing and mobile telephony industry - in the US, at least. One
assumes that the rest of the industry is going to take note of what is
happening here. Nokia is already involved in its own patent disputes with
Apple, but this battle could spread well beyond Nokia and HTC. It will be
in few companies' interest to let Apple prevail on these claims and
entrench their validity. This battle is going
to be an interesting one to watch.