COMBINING PATENT, COPYRIGHT, AND TRADE SECRET PROTECTION
Different aspects of an invention, product or business can be protected by employing different intellectual property laws. The example below describes computer software; however, inventions in other fields of technology, as well as other products and businesses, can be amenable to protection with a plurality of intellectual property laws.
In the case of computer software, a software developer can invent a new method of doing something useful and write a program to execute the method on a computer. The program, fixed in a tangible medium of expression, may enjoy copyright protection. A computer program can be written in a variety of languages such as FORTRAN, C, C++, Java, etc. Different ways to perform a task can be coded within a single language; for-next loops, do-while, etc. Different computer programs can be written to perform the same task with different languages and logical structures, or even different logical structures within the same language, and each may enjoy copyright protection. The "idea" embodied within the method remains outside of the protection afforded by copyright.
If the method meets the tests of novelty and non-obviousness, the inventor may pursue patent protection for both the method, a computer readable medium containing the method, and the novel computer system for implementing the method. A patent obtained for the method could conceivably provide claim scope coverage broad enough to encompass a plurality of computer programs such as those mentioned above. Either patent or copyright or both can be the basis of an infringement action and a consideration of the damages afforded by both is in order.
It is possible to meet the requirements for patent protection while withholding the source code of a computer program, thus maintaining it as a trade secret. A patent must meet the best mode and enablement requirements. However, source code is not a required element of a software patent application. Generally, the best mode requirement is satisfied by a description of the functions contained within the computer program.