When the patent system was first introduced, the most common inventions were mechanical and electrical devices. The time required to develop a prototype, put it on the market, and its useful life established time limits to which the patent system was very well adapted.
The emergence of new fields of technology with a faster rate of evolution and improvement than in the past, raises the question of whether the patent system has time limits that are excessively long. This is the case of software, where a source code can even be updated every few hours.
Is the patent system keeping up with the pace of change in software?
In this context, the evolution of software does not necessarily imply that a patent which describes and protects an earlier version of the same is obsolete. The key to this is whether the developments affect the essential features of the software as stated in the patent.
Developments are often optimisations of the initial software that do not alter the fundamental principles of its earlier version. Therefore, in these situations the value of the patent will not be affected as an effective instrument of protection.
It is true, however, that there will be cases where the software evolves significantly and does in fact affect the essential features as set out in the patent. But despite the evolution of the software, keeping the protection of the software’s earlier version may be of interest from a business perspective.
Important examples of the rapid popularisation of an algorithm (such as the well-known method of compressing images in “jpg” format or music in “mp3” format) are known, where the emergence of alternative algorithms with better performance did not necessarily imply that they were adopted by most users. In this case, any patent protection of older software can remain effective for many years.
The evolution of software over time in the form of modifications and improvements must be compared with what is protected by a patent, assessing whether said patent continues to grant protection because the changes do not differ from the invention as claimed or whether a new invention has been created.
In either case, protection of the software and its developments through other legal instruments, which can be an alternative or complement to patent protection, must be assessed in all scenarios.
Protecting source code: patent, copyright or trade secret?
Source code is understood to be the set of lines of text providing the steps that the computer must follow to execute a program. These lines of text are usually expressed in a specific programming language that is translated into machine code, the code directly understandable by the processor, after being translated either by an interpreter or by a compiler.
When a programmer modifies a program, they modify the source code and later reuse one of the “translators” to make it executable.
Copyright and patent
Copyright is mainly intended to protect works that remain unchanged over time. In practice, for a computer program to be useful, it must be properly maintained by finding bugs or including new features. Otherwise it would be considered a dead project and would no longer be used. Although it is possible to protect software by copyright, protection is limited to the combination of lines of code that comprise the computer program and the version of the code is “frozen” to the version deposited with the intellectual property registry.
Another limitation of copyright protection is that a computer program is considered a literary work expressed in words (stop words for the programming language), numbers or other symbols regardless of the nature of the object it represents.
The consequence of this limitation is that copyright protection does not extend to the underlying feature or technique as a computer-implemented solution. A third party could develop a software that replicates the same feature by even using the same solution in a different programming language and without having to invade the scope of protection conferred by the copyright.
As explained in the first part of this article (here), patent protection involves selecting essential and non-essential features and these features arise regardless of their implementation; that is, regardless of the programming language used for their implementation. In other words, patent protection does not depend on the specific way in which a computer program is expressed, for example, through the programming language used.
Moreover, the evolution of software over time always implies that the code protected by copyright through the registry is different from the code marketed or used by third parties. This fact complicates any action that aims to exercise the rights granted by copyright protection.
On the other hand, as discussed above, the evolution of software may still be covered by the set of claims of an older patent, and therefore the patent remains effective against copying.
Despite this important limitation of the copyright, it is also true that protecting the code through this instrument is a good addition, it is cost-effective and very fast, and in circumstances where there is no noteworthy modification of the software by a third party infringer, it greatly facilitates infringement actions in court.
CII trade secret
As an alternative, it is possible to distribute computer programs only in the form of executable programs. In other words, programs made up of specific instructions for the machine on which they will be executed. The advantage of this form of distribution is that it prevents or greatly hinders access to encryption. Without access to the source code it is very difficult to know what a certain computer program does.
Nevertheless, there is still a risk of confidential information leaks about the source code. Information leaks to third parties can occur mainly from within the very company where development takes place. Even when a computer-implemented solution is disclosed through the publication of a patent or with another type of disclosure, there is a large volume of source code that is not disclosed and a major effort in terms of resources (human, technical, monetary, etc.) is required to arrive at it, even if its implementation is obvious to a person skilled in the matter.
Moreover, in these cases and in those with little risk of reverse engineering by third parties, it is still advisable to use a plan to implement reasonable measures for protecting trade secrets in order to shield oneself against the aforementioned sensitive information leaks.
The new European Directive 2016/943, implemented even more recently in Spain through Law 1/2019 on Trade Secrets, strengthens the protection framework of trade secrets so that a certain know-how can acquire the status of trade secret in the courts.
In a company, although all know-how begins as a secret in the common sense of the language, a good basis for protection in all business activities should begin with the implementation of a trade secret protection plan so that the know-how can also be considered secret in the legal sense.
The implementation of a trade secret protection plan requires, among other reasonable protection measures, that the evolution of the developed software be registered by certifying authorities intended to generate a timestamp and a hard-coded content summary (hash) that is used to verify that the timestamp has been generated on said content, and not another.
Compatible protection instruments
Given that patent protection and copyright protection are not incompatible, it is a good idea to make use of both modalities and thus benefit from the advantages that each one provides.
The same happens with the implementation of a trade secret protection plan. Combining all the instruments is key to achieving maximum exclusivity over use of the invention and preventing third parties from economically, commercially or strategically benefiting from the effort that has been made.
Patents and use of open source software
In the field of programming, the use of software in which the source code is made available to the public is increasingly widespread, the type of licence under which it is distributed being an interesting aspect in this case.
Software whose source code is made available to the public is known as open source software. This does not mean that the owner cannot do business with the software or that certain rights are reserved.
Open source includes free software where the licences under which the owner distributes the software grant for any purpose, whether in the modified form or in its original form:
- a) the right to use,
- b) to modify, and
- c) redistribute the software.
In either case, whoever redistributes the software is required to license the software under the same terms; hence it is considered viral software.
The use of free software to develop solutions that are later patented implies the acceptance of licence agreements that limit the ability to enforce patents.
For this reason, if a computer-implemented invention is to be protected, it is necessary to review the libraries used in case their licences set an unwanted limitation. If this is the case, it is common to find so-called proprietary libraries that avoid the limitations imposed by the free software.
The example of Apple
One example that everyone knows is the Apple operating system. Apple, in its early days, wrote its operating system from scratch but ran into severe limitations, for example, when implementing multitasking. The multitasking that it came to develop allowed two or more applications to be open at the same time, but only one was truly in the foreground while the rest were “asleep”.
This problem and others are solved very efficiently in UNIX-like operating systems. As an alternative, Apple considered using the Linux kernel to include a UNIX-like implementation, in a fairly advanced and widespread development stage at the time, and then add an attractive visual layer that would hide the complexity of the operating system as we are used to it.
However, it preferred to be based on an alternative BSD kernel developed at the University of California, Berkeley, since the licence under which the latter was distributed allowed it to produce a derivative product (Apple’s customised operating system) under a proprietary, non-free licence, an option that does not accept a Linux kernel with a GPL (General Public Licence) that requires any derived product to be published while maintaining the free licence.
The key: libraries with free licences
Simply put, in a project based on complex software that is to be protected and revalued with patents, it must exclude libraries with free licences, with the reason being twofold: because it is possible to keep the code undisclosed and because the patents granted on one or more implemented solutions do not have a scope of protection limited by the acceptance of the clauses included in any free licence.
Software patent infringement
This question is one that recurs when software patent protection is assessed. Doubts, which are very relevant in many cases, arise because when it comes to assessing the infringement of a software patent (“computer-implemented inventions”, for example), due to the commercialization of a specific computer program, or because it is suspected that a production process is managed by a software that reproduces the patent, this assessment requires comparing the steps executed by a computer with the steps claimed in the patent.
Executed steps vs claimed steps
It is not easy to determine the steps executed by a computer when only an executable file is available. Many times this work requires the application of reverse engineering techniques, an effort that may be available to very few and may require years of work in some cases.
That said, these difficulties are no greater than others encountered when assessing the infringement of a method that is only executed “behind closed doors” and to which there is no direct access in order to verify how it is carried out.
However, in the context of software, in most cases there are several advantages over any of the methods executed “behind closed doors” which make it easier to assess infringement. Some of them are identified below:
- Commercial software is distributed with manuals and specifications that provide information about what it does and often how it does it.
- The software owners may publish scientific/technical articles describing the techniques that are then implemented in the marketed software.
- Although reverse engineering based on disassembling the machine code, which is the code directly executable by the computer, is a very complex task, there is evidence on the code that demonstrates its behaviour without this disassembly task, for example, being necessary.
Like any other technical field, in the process of drafting a patent it is important to find whether a certain method leaves traces of its use and that these traces are reflected in the description.
Even when all the evidence obtained on the infringement of the patent is indirect and only remains as “strong indications”, there are legal remedies such as the request for verification of facts that provide instruments for obtaining evidence that would allow access even to the source code or, moreover, information that guides the interpretation of the code to later assess with a greater degree of precision whether a certain software infringes a patent or not.
In any case, the remedies to exercise the rights conferred by the patent are, at least, the same as in any other technical field and additional remedies may be available that allow carrying out what is known as “forensic analysis” for which there are several specialised companies.
Combining protection instruments
In summary, it should first be mentioned that all business value in a company starts out as a secret. Thus, a good basis for protection in all business activities should begin with the implementation of a trade secret protection plan.
The know-how must always be disclosed under control. The development and commercialization of software involves a disclosure whose scope depends on the specific way in which software is made available to the market.
When the software involves a technical solution to a technical problem, the patent system is then a form of controlled disclosure that allows it to be protected since it is considered a “computer-implemented invention”. This protection does not exclude the possibility of protecting the code by copyright where it will be necessary to keep the registrations updated as the code undergoes changes.
In either case, the implementation of a trade secret protection plan requires, as a reasonable measure, that the evolution of the developed software be registered by certifying authorities intended to generate a timestamp and a hard-coded content summary “hash” that is used to verify that the timestamp has been generated on said content and not another.
The evolution of software over time (in the form of modifications and improvements) implies that it must also be compared with what is protected by a patent, assessing whether said patent continues to grant protection because the changes do not differ from the invention as claimed or whether a new invention has been created.
Therefore, protecting software requires constant monitoring and a combination of the different instruments so as not to lose the exclusivity and benefits conferred by industrial and intellectual property rights.