Non-Patentable Software Architecture

I was working at Rational Software when IBM bought it almost 10 years ago. After the acquisition, we got emails and trainings encouraging us to file patent disclosures. As you may have known, IBM has been the top patent holder in the USA, maybe worldwide as well. At that time, I coined the term “non-patentable software architecture.”

Pattern system was invented to protect and encourage innovations. There are three criteria for a valid pattern: novelty, usefulness, and non-obviousness. Those are all in relative terms. As I can tell, there is rarely anything that is totally novel. Most, if not all, of the patents are built on top of something else with incremental innovations.

Bothered by SLOW Web UI to manage vSphere? Want to manage ALL your VMware vCenters, AWS, Azure, Openstack, container behind a SINGLE pane of glass? Want to search, analyze, report, visualize VMs, hosts, networks, datastores, events as easily as Google the Web? Find out more about vSearch 3.0: the search engine for all your private and public clouds.

Anyway, the purpose of this article is not to discuss the patent itself, but one of the requirements: non-obviousness. It means that a patent has to be not obvious. In other words, if something is obvious then it cannot be a patent.

Like other innovations, software is protected by patent laws as well. We can find many patents around new methods/approaches in algorithm, data format, even software process.

When it comes to software architecture, things become a little tricky. My take is that software architecture should NEVER be patentable. Why? Software architecture should ALWAYS be obvious therefore violates the non-obviousness requirement. If you are a software architect and want to patent your work, good luck!

I do have seen many architects coming up with patentable architectures however. You see nice diagrams with layers over layers and with long arrows going here and there. In the end, none of them work.

To understand why architecture should not be patentable, it’s important to understand why architecture is needed and serving what purpose.

First of all, architectural diagrams are optional because it’s NOT part of the final deliverable even though the idea is embodied there. You can skip it if you have thought it through your mind in one person project. In a team project, however, you got to communicate it over to others. Therefore it’s better to document it in some way, mostly with diagrams and a written document.

The architectural documentation not only keep everyone in the same page but also force the team to go through a high level exercise on what to build and how to build it. Although an architect is responsible for architecture but it really need everyone’s involvement and buy-in.

As you can see, the more obvious the architecture the easier and faster it can be communicated and followed. If architecture is not understood, it cannot be followed through the development cycle. With that in mind, you can see the value to make the architecture non-patentable.

This entry was posted in Software Development and tagged , . Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

One Comment

  1. Jim Michaels
    Posted October 14, 2014 at 4:13 am | Permalink

    Not sure I totally understand this article. I have not been involved in the world of patents, and was hoping to get one on a software architecture I designed, which I think could be pretty important. I don’t understand about the relationship between the patent documentation and “obviousness”. if it’s documented clearly, it’s obvious, yes?

    I would assume that if you obtain use of the patent, you have the documentation. I agree with you that whatever is written should be clearly written. diagrams don’t fit every architecture.

    UML as a diagram has no concept of a C struct or data record to my knowledge, closest thing is a class, which isn’t the same thing – I suppose you could lump database structures, records, and structs and unions all into 1 lump and call it a class, but I don’t think it fits well with a union – and the concept of a struct is in a lot of languages, union in at least C and C++.

    I don’t know if a software patent somehow requires a diagram or not (I hope not). I could put up a UML diagram, it could be workable in my case.

    it sounds like once a person has the patent, they have no contact with the author. or does it become overwhelming to the author if they do, so they just avoid that and just make the papers available?

    I would appreciate correction where I am wrong.

Post a Comment

Your email is never published nor shared. Required fields are marked *


You may use these HTML tags and attributes <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


    My company has created products like vSearch ("Super vCenter"), vijavaNG APIs, EAM APIs, ICE tool. We also help clients with virtualization and cloud computing on customized development, training. Should you, or someone you know, need these products and services, please feel free to contact me: steve __AT__

    Me: Steve Jin, VMware vExpert who authored the VMware VI and vSphere SDK by Prentice Hall, and created the de factor open source vSphere Java API while working at VMware engineering. Companies like Cisco, EMC, NetApp, HP, Dell, VMware, are among the users of the API and other tools I developed for their products, internal IT orchestration, and test automation.