Last week we reported the last minute backtrack by the New Zealand government, deleting a controversial provision in its new Patents Bill stating that ‘a computer program is not a patentable invention’, and replacing it with a controversial provision which still says that ‘a computer program is not an invention’, but only to the extent that it is ‘a computer program as such’. (See NZ Government Backtracks – to Europe – on Software Patents.)
The basic idea behind this change is to import about 30 years of European and UK jurisprudence on what it means for something to be a computer program ‘as such’, in the expectation that this will allow – amongst other things – inventions implemented using embedded software systems to be patented.
Not unexpectedly, some people are unhappy with this ‘watering down’ of the proposed computer program exclusion. In particular, a group calling itself No Software Patents in NZ has set up a site no.softwarepatents.org.nz with an online petition requesting that the ‘as such’ caveat be replaced with a clause specifying that the computer program exclusion ‘does not prevent an invention that makes use of an embedded computer program from being patentable.’
In our view, this would be a bad idea for at least two reasons. Firstly, there is no agreed definition of an ‘embedded computer program’, leaving huge scope for uncertainty, and for any patent applicant whose application is rejected on this basis to go running to court armed with arguments and expert evidence in support of an assertion that their particular invention does (or perhaps merely ‘can’) relate to an embedded computer program. And even if there were a clear definition today, it is unlikely – based on past experience – that it will survive the test of time.
Secondly, while the NZ debate appears to have become strangely fixated on embedded software controllers for home appliances such as washing machines, these are not the only types of software for which there is a clear benefit in allowing patent protection to be granted.
It has been our observation, over time, that those who are opposed to software patents have a very limited view of the role that software plays across a whole range of scientific and engineering applications. Objections to patents on common web technologies, widespread operating system features, and components of extensively deployed consumer and developer applications such as word processors, web browsers and compilers, are actually quite understandable. But the typical response to these objections – to call for the banning of all software patents, or all except for some narrowly-defined exceptions – makes no sense at all.
WHAT IS ‘EMBEDDED SOFTWARE’?We are not sure what it says about the subject that Wikipedia’s article on ‘embedded software’ is currently just a stub – and not a very good one, at that. It opens by stating that:
Embedded software is computer software that plays an integral role in the electronics it is supplied with.
Embedded software's principal role is not information technology (i.e. it is not about information and the technologies related to providing information services), but rather the interaction with the physical world. It's written for machines that are not, first and foremost, computers.
We suppose that what this is intended to mean is that embedded software is not written for general purpose computers.
The entry for ‘embedded system’ is much better:
An embedded system is a computer system designed for specific control functions within a larger system, often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer (PC), is designed to be flexible and to meet a wide range of end-user needs. Embedded systems control many devices in common use today.
However, the many and various applications of embedded systems listed in the article include:
- telephone switches in communications networks, as well as mobile phones at the end-user;
- computer networking elements including dedicated routers and network bridges;
- consumer goods such as personal digital assistants (PDAs), MP3 players, videogame consoles, digital cameras, DVD players, GPS receivers, and printers;
- household appliances, including microwave ovens, washing machines and dishwashers;
- transportation applications, including aircraft and automobile systems; and
- medical equipment and imaging systems.
It is also now hard to distinguish an embedded system by its user interface:
Embedded systems range from no user interface at all — dedicated only to one task — to complex graphical user interfaces that resemble modern computer desktop operating systems. Simple embedded devices use buttons, LEDs, graphic or character LCDs (for example popular HD44780 LCD) with a simple menu system.
More sophisticated devices which use a graphical screen with touch sensing or screen-edge buttons provide flexibility while minimizing space used: the meaning of the buttons can change with the screen, and selection involves the natural behavior of pointing at what's desired.
Even trying to spot an embedded system by its basic hardware profile is getting difficult:
A long but still not exhaustive list of common [processor] architectures are: 65816, 65C02, 68HC08, 68HC11, 68k, 78K0R/78K0, 8051, ARM, AVR, AVR32, Blackfin, C167, Coldfire, COP8, Cortus APS3, eZ8, eZ80, FR-V, H8, HT48, M16C, M32C, MIPS, MSP430, PIC, PowerPC, R8C, RL78, SHARC, SPARC, ST6, SuperH, TLCS-47, TLCS-870, TLCS-900, TriCore, V850, x86, XE8000, Z80, AsAP and others.
There are a few on that list which you will find inside tablets and smartphones, as well as notebook and desktop PCs, and a range of general and special purpose computing devices in between.
You might try arguing that if you can run Angry Birds on a device, then it is too ‘general purpose’ to qualify as an embedded system. But that argument will probably not hold up for long, as this YouTube video demonstrating Android-powered home appliances proves!
Not only is there no longer any clear dividing line between embedded systems and general-purpose computing, much of this change has occurred in less than a decade, and we can only guess at what might happen in the next 10, 20 or 30 years. Perhaps we will see an increasing range of special purpose devices being embedded in the human body (pacemakers, bionic ears, and other implanted medical devices already qualify), though it is only a matter of time before people become more highly-integrated with their general purposes devices.
It seems clear that it would be a pretty foolish parliament that would pass legislation containing such a contentious, and contemporary, term as ‘embedded software’.
IT’S NOT JUST ABOUT ‘EMBEDDED SOFTWARE’But the problem is not just that embedded software is not well-defined. There are other types of software, including applications run on general-purpose computers, which have a strong claim to being worthy of patent protection.
Back in October last year we wrote about a UK decision relating to a computer implemented invention developed by Halliburton Energy Services Inc (see Computer-Aided Design Method Held Patentable in UK). The invention is question was entirely implemented in software. It did not directly control anything operating out in the ‘physical world’. It could be (and presumably was) executed as an application program running on a general purpose computer, such as a desktop workstation or PC.
In other words, no matter which characteristics of ‘embedded system’ you might choose from the examples above, the Halliburton invention would not qualify.
Yet we would argue (and the UK High Court agreed) that the invention in question was exactly the sort of thing which is deserving of patent protection. The court described it thus:
A computer-implemented method of designing drill bits that includes simulation of the performance of the drill bit based on calculating a three dimensional mesh for each cutting element and for the earth formation and using that to determine the forces acting on each mesh segment of the cutting element and then the forces and stresses acting on each cutting element.
It was an invention developed specifically for the mining sector. It enabled efficient custom design of drill bits for cutting into specific rock formations. Its output was not an actual drill bit, but a design for a drill bit – i.e. a data file containing specifications which could be used to make a drill bit.
We have some experience with computer-aided design and engineering (CAD/CAE) systems, as this patent demonstrates. Our invention was a method of improving the accuracy with which the expected error performance of an optical fibre transmission system could be estimated via a combination of Monte Carlo simulation and analytical techniques. The existing methods were known to overestimate performance, meaning that actual installed systems needed to be designed conservatively to allow for the additional error margin. A better technique could reduce the amount of guesswork involved, and potentially save millions of dollars that might be spent on installing an over-engineered system.
When you read the patent – assuming you can understand the maths – it all seems quite straightforward. However, developing the theory, the algorithms and the actual implementation to the point at which it was sufficiently robust to be deployed in a commercial product took about six months in total, and involved a team which included not only the programmers, but also a PhD-qualified mathematician, and a PhD-qualified optical fibre technology engineer.
And having produced something which was able to produce sensible results – or, failing that, sensible and helpful error messages – no matter what the end-user threw at it, we then had to publish the underlying algorithms in our manuals! Why? Because the communications engineers who used the product were not willing to trust results of calculations based on ‘secret’ algorithms. So without patent protection, there would be nothing to stop our competitors from simply copying the results of our R&D effort from our own documentation.
Our software ran on desktop PCs and Unix (Solaris or Linux) servers. It was application software, and by no stretch of the imagination could it be described as ‘embedded’. It was also something, we would imagine, well outside the experience of most anti-software patent campaigners.
And CAD/CAE applications are not the only software having these types of associated development costs, and requirements for meaningful IP protection. We would not want to try to pre-empt the needs of present and future software developers in a wide range of fields, by creating specific exclusions or exceptions. What we do know, however, from the UK experience, is that allowing patents on computer-implemented inventions, so long as they are not for computer programs as such, permits these – and other inventions which make a technical contribution – to be patented.
CONCLUSIONAt the end of the day, if a business can be more successful in developing and taking an innovative new product to market, if it can be more viable on a long-term basis, if it can more effectively grow, service and expand its market, and if it can create employment and a net economic benefit, by obtaining patent protection for its key new technologies, then it should be permitted and encouraged to do so. It should make no difference that those technologies may happen to be wholly or partly software implemented. Arbitrary exclusions deny entire industries the intellectual property protections that are available to others.
Nobody is forcing anyone to obtain patents on their computer-implemented inventions. And nobody is enforcing patents where it is clearly uneconomic to do so. Not getting sued is as easy as not getting out into the market and making money, or taking market share from an incumbent market participant.
Denying patent protection to an entire technology sector denies businesses in that sector a choice that is almost universally available to other innovators. This is not something that should be done without very good reason. There are many software developers and engineers out in the commercial world who would like to see the abolitionists just butt out. Patents are not right for every business, but for those cases in which patent protection makes sense and adds real value to the enterprise, developers should be crying out: ‘my software, my choice!’ In this context, the anti-software-patent activists are choice-deniers.
The debate over software patents is not going to end any time soon. What is most disappointing, however, is how little progress has been made in understanding and communicating the complexity of the issues around software and patents in the decades since the first patents were granted for computer-implemented inventions. Can it really be that the most nuanced discussion we can have is based upon an artificial distinction between ‘embedded software’ and ‘all other software’? Let us hope not.